{"version":3,"file":"vendors.986309489f0618ce3813.js","mappings":";oTAQO,SAASA,EAAQC,EAAMC,GAC1B,IAAIC,EAAS,IAAIC,KAAKH,EAAKI,WAE3B,OADAF,EAAOG,QAAQH,EAAOI,UAAYL,GAC3BC,CACX,CAOO,SAASK,EAASP,EAAMQ,GAC3B,OAAOT,EAAQC,EAAMQ,EAAQ,IAAcC,cAC/C,CASO,SAASC,EAAUV,EAAMW,GAC5B,IAAIT,EAAS,IAAIC,KAAKH,EAAKI,WACvBQ,EAAWV,EAAOW,WAAaF,EASnC,OARAT,EAAOY,SAASF,GAIZV,EAAOW,cACLD,EAAW,IAAcG,eAAkB,IAAcA,gBAAkB,IAAcA,iBAC3Fb,EAASH,EAAQG,GAASA,EAAOI,YAE9BJ,CACX,CASO,SAASc,EAAShB,EAAMiB,GAC3B,IAAIf,EAAS,IAAIC,KAAKH,EAAKI,WAS3B,OARAF,EAAOgB,YAAYlB,EAAKmB,cAAgBF,GAIpCf,EAAOW,cACLb,EAAKa,WAAa,IAAcE,eAAkB,IAAcA,gBAAkB,IAAcA,iBAClGb,EAASH,EAAQG,GAASA,EAAOI,YAE9BJ,CACX,CAMO,SAASkB,EAAcpB,GAC1B,OAAO,IAAIG,KAAKH,EAAKmB,cAAenB,EAAKa,WAAY,EAAG,EAAG,EAAG,EAAG,EACrE,CAMO,SAASQ,EAAYrB,GACxB,OAAO,IAAIG,KAAKH,EAAKmB,cAAenB,EAAKa,WAAa,EAAG,EAAG,EAAG,EAAG,EAAG,EACzE,CAMO,SAASS,EAAatB,GACzB,OAAO,IAAIG,KAAKH,EAAKmB,cAAe,EAAG,EAAG,EAAG,EAAG,EAAG,EACvD,CAMO,SAASI,EAAWvB,GACvB,OAAO,IAAIG,KAAKH,EAAKmB,cAAgB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3D,CASO,SAASL,EAASd,EAAMwB,GAC3B,OAAOd,EAAUV,EAAMwB,EAAQxB,EAAKa,WACxC,CAKO,SAASY,EAAaC,EAAOC,GAChC,OAAKD,IAAUC,MAGLD,IAAUC,IAIRD,EAAMP,gBAAkBQ,EAAMR,eAClCO,EAAMb,aAAec,EAAMd,YAC3Ba,EAAMpB,YAAcqB,EAAMrB,SAEtC,CAQO,SAASsB,EAAgBF,EAAOC,GACnC,OAAOE,EAAqBH,GAASG,EAAqBF,EAC9D,CAYO,SAASG,EAAkB9B,EAAM+B,EAAeC,EAAgBC,EAAcC,QACnD,IAA1BA,IAAoCA,EAAwB,GAChE,IACIC,EADAC,EAAa,IAAIC,MAEjBC,EAAU,KAKd,OAJKL,IACDA,EAAe,CAAC,KAAUM,OAAQ,KAAUC,QAAS,KAAUC,UAAW,KAAUC,SAAU,KAAUC,SAE5GT,EAAwBU,KAAKC,IAAIX,EAAuB,GAChDH,GACJ,KAAK,KAAce,IAEfR,EAAUvC,EADVoC,EAAYY,EAAY/C,GACKkC,GAC7B,MACJ,KAAK,KAAcc,KACnB,KAAK,KAAcC,SAEfX,EAAUvC,EADVoC,EAAYe,EAAmBH,EAAY/C,GAAOgC,GACrB,IAAcvB,eAC3C,MACJ,KAAK,KAAc0C,MAEfb,EAAU5B,EADVyB,EAAY,IAAIhC,KAAKH,EAAKmB,cAAenB,EAAKa,WAAY,GAC3B,GAC/B,MACJ,QACI,MAAM,IAAIuC,MAAM,sBAAwBrB,GAGhD,IAAIsB,EAAWlB,EACf,IACQJ,IAAkB,KAAckB,WAIkB,IAA7ChB,EAAaqB,QAAQD,EAASE,YAFnCnB,EAAWoB,KAAKH,GAKpBA,EAAWtD,EAAQsD,EAAU,UACvB5B,EAAa4B,EAAUf,IACjC,OAAOF,CACX,CAOO,SAASqB,EAAmBzD,EAAM0D,GACrC,IAAK,IAAIC,EAAK,EAAGC,EAAcF,EAAWC,EAAKC,EAAYC,OAAQF,IAE/D,GAAIlC,EAAazB,EADC4D,EAAYD,IAE1B,OAAO,EAGf,OAAO,CACX,CASO,SAASG,EAAsBC,EAAc/B,EAAgBgC,EAAiBC,GACjF,IAAIC,EAAeD,EAAc9C,cAC7BgD,EAAgBF,EAAcpD,WAC9BuD,EAAa,EACbC,EAAiB,IAAIlE,KAAK+D,EAAcC,EAAeC,GACvDE,EAAiBF,GAChBpC,EAAiB,IAAcvB,cAAgB,GA+HxD,SAAuBuB,EAAgBuC,GACnC,OAAOvC,IAAmB,KAAUwC,QAAUD,EAAcvC,EACtDuC,EAAc,IAAc9D,cAC5B8D,CACV,CAlIQE,CAAczC,EAAgBqC,EAAed,UAC7CmB,EAAiB,IAAIvE,KAAK+D,EAAcC,EAAeG,GAC3DF,EAAaM,EAAepE,UAE5B,IADA,IAAIqE,EAAa,GACRC,EAAI,EAAGA,EAAIb,EAAca,IAE9BD,EAAWnB,KAAKqB,EAAcH,EAAgB1C,EAAgBgC,IAC9DI,GAAc,IAAc3D,cAC5BiE,EAAiB,IAAIvE,KAAK+D,EAAcC,EAAeC,GAE3D,OAAOO,CACX,CASO,SAASE,EAAc7E,EAAMgC,EAAgBgC,GAGhD,OAAQA,GACJ,KAAK,KAAgBc,cACjB,OAAOC,EAAsB/E,EAAMgC,EAAgB,IAAcvB,eACrE,KAAK,KAAgBuE,iBACjB,OAAOD,EAAsB/E,EAAMgC,EALzB,GAMd,QACI,OAkFZ,SAA+BhC,EAAMgC,GACjC,IAAIiD,EAAMC,EAAalF,GAAQ,EAE3BmF,GADOnF,EAAKuD,SAAY0B,EAAM,IAAcxE,cAC7BuB,EAAiB,EAAI,IAAcvB,eAAiB,IAAcA,cACrF,OAAOmC,KAAKwC,OAAOH,EAAME,GAAQ,IAAc1E,cAAgB,EACnE,CAvFmB4E,CAAsBrF,EAAMgC,GAE/C,CAOO,SAASkB,EAAmBlD,EAAMgC,GACrC,IAAIsD,EAAatD,EAAiBhC,EAAKuD,SAKvC,OAJI+B,EAAa,IAEbA,GAAc,IAAc7E,eAEzBV,EAAQC,EAAMsF,EACzB,CAOO,SAASC,EAAiBvF,EAAMgC,GACnC,IACIsD,GADgBtD,EAAiB,GAAK,EAAIA,EAAiB,EAAI,IAAcvB,cAAgB,GAChET,EAAKuD,SAKtC,OAJI+B,EAAa,IAEbA,GAAc,IAAc7E,eAEzBV,EAAQC,EAAMsF,EACzB,CAMA,SAASvC,EAAY/C,GACjB,OAAO,IAAIG,KAAKH,EAAKmB,cAAenB,EAAKa,WAAYb,EAAKM,UAC9D,CAIO,SAASuB,EAAqB7B,GAEjC,OAAOA,EAAKM,WAAaN,EAAKa,YAAc,IAAMb,EAAKmB,eAAiB,EAC5E,CASA,SAAS4D,EAAsB/E,EAAMgC,EAAgBwD,GACjD,IAAIC,EAAYP,EAAalF,GAAQ,EACjCiF,EAAMjF,EAAKuD,SAAYkC,EAAY,IAAchF,cAEjDiF,EAAaR,EADO,IAAI/E,KAAKH,EAAKmB,cAAgB,EAAG,KAAYwE,SAAU,KAC5B,EAC/CC,GAAQ5D,EAAiBiD,EAAM,EAAI,IAAcxE,eAAiB,IAAcA,cACvE,IAATmF,GAAcA,GAAQJ,IACtBI,GAAQ,IAAcnF,eAE1B,IAAI0E,EAAOM,EAAYG,EASvB,OARIT,EAAO,IAGM,IADbS,GAAQ5D,GADRiD,GAAOS,EAAa,IAAcjF,eACH,EAAI,IAAcA,eAAiB,IAAcA,gBAC9DmF,EAAO,GAAKJ,IAC1BI,GAAQ,IAAcnF,eAE1B0E,EAAOO,EAAaE,GAEjBhD,KAAKwC,MAAMD,EAAO,IAAc1E,cAAgB,EAC3D,CAkCA,SAASyE,EAAalF,GAIlB,IAHA,IAAIwB,EAAQxB,EAAKa,WACbgF,EAAO7F,EAAKmB,cACZ2E,EAAgB,EACXlB,EAAI,EAAGA,EAAIpD,EAAOoD,IACvBkB,GAAiBC,EAAYnB,EAAI,EAAGiB,GAGxC,OADAC,EAAiB9F,EAAKM,SAE1B,CAOA,SAASyF,EAAYvE,EAAOqE,GACxB,OAAO,IAAI1F,KAAK0F,EAAMrE,EAAO,GAAGlB,SACpC,gCC7WO,IAAI0F,EAcAC,EAmBAC,EAUAC,wDA1CX,SAAWH,GACPA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAqB,UAAI,GAAK,YACxCA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAoB,SAAI,GAAK,UAC1C,CARD,CAQGA,IAAcA,EAAY,CAAC,IAM9B,SAAWC,GACPA,EAAYA,EAAqB,QAAI,GAAK,UAC1CA,EAAYA,EAAsB,SAAI,GAAK,WAC3CA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAiB,IAAI,GAAK,MACtCA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAoB,OAAI,GAAK,SACzCA,EAAYA,EAAuB,UAAI,GAAK,YAC5CA,EAAYA,EAAqB,QAAI,GAAK,UAC1CA,EAAYA,EAAsB,SAAI,IAAM,WAC5CA,EAAYA,EAAsB,SAAI,IAAM,UAC/C,CAbD,CAaGA,IAAgBA,EAAc,CAAC,IAMlC,SAAWC,GACPA,EAAgBA,EAA0B,SAAI,GAAK,WACnDA,EAAgBA,EAA+B,cAAI,GAAK,gBACxDA,EAAgBA,EAAkC,iBAAI,GAAK,kBAC9D,CAJD,CAIGA,IAAoBA,EAAkB,CAAC,IAM1C,SAAWC,GACPA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CALD,CAKGA,IAAkBA,EAAgB,CAAC,IAC/B,IAAIC,EAAe,iDCxC1B,QAAe,SAXK,CAChBC,qBAAsB,MACtBC,mBAAoB,IACpBC,mBAAoB,IACpBC,qBAAsB,KACtBC,oBAAqB,KACrBC,gBAAiB,KACjBC,iBAAkB,GAClBlG,cAAe,EACfM,eAAgB,IAEQ,8ECNrB,SAAS6F,EAAgBC,EAAQC,EAAOC,QACf,IAAxBA,IAAkCA,GAAsB,GAC5D,IAAIC,GAAc,EAClB,GAAIH,GAAUC,EACV,GAAIC,EACA,GAAIF,IAAWC,EACXE,GAAc,OAId,IADAA,GAAc,EACPF,GAAO,CACV,IAAIG,GAAa,OAAUH,GAC3B,GAAIG,IAAeJ,EAAQ,CACvBG,GAAc,EACd,KACJ,CACAF,EAAQG,CACZ,MAGCJ,EAAOK,WACZF,EAAcH,EAAOK,SAASJ,IAGtC,OAAOE,CACX,2EC1BO,SAASG,EAAyBC,EAASC,GAC9C,IAAIC,GAAe,OAAqBF,GAAS,SAAUG,GAAe,OAAOA,EAAYC,aAAaH,EAAY,IACtH,OAAOC,GAAgBA,EAAaG,aAAaJ,EACrD,2ECHO,SAASK,EAAqBN,EAASO,GAC1C,OAAKP,GAAWA,IAAYQ,SAASC,KAG9BF,EAAcP,GAAWA,EAAUM,GAAqB,OAAUN,GAAUO,GAFxE,IAGf,2ECJO,SAASG,EAAYjB,EAAQkB,QACH,IAAzBA,IAAmCA,GAAuB,GAC9D,IAAIC,EAAW,GACf,GAAInB,EAAQ,CACR,IAAK,IAAIjC,EAAI,EAAGA,EAAIiC,EAAOmB,SAASnE,OAAQe,IACxCoD,EAASxE,KAAKqD,EAAOmB,SAASC,KAAKrD,IAEnCmD,IAAwB,OAAiBlB,IACzCmB,EAASxE,KAAK0E,MAAMF,EAAUnB,EAAOsB,SAASH,SAEtD,CACA,OAAOA,CACX,2ECZO,SAASI,EAAUtB,EAAOC,GAE7B,YAD4B,IAAxBA,IAAkCA,GAAsB,GACpDD,IACFC,IAAuB,OAAiBD,IAAYA,EAAMuB,YAAcvB,EAAMuB,WACxF,2ECNO,SAASC,EAAiBxB,GAC7B,IAAID,EAIJ,OAHIC,IAAS,OAAiBA,KAC1BD,EAASC,EAAMqB,SAAStB,QAErBA,CACX,+BCPO,SAAS0B,EAAiBnB,GAC7B,OAAOA,KAAaA,EAAQe,QAChC,qHCGO,SAASK,EAAsBC,EAAQ5B,GAC1C,IAAIS,GAAe,OAAqBmB,GAAQ,SAAUlB,GAAe,OAAOV,IAAWU,GAAeA,EAAYC,aAAa,IAAwB,IAC3J,OAAwB,OAAjBF,GAAyBA,EAAaE,aAAa,IAC9D,yDCbO,IAAIkB,EAAwB,sBAK5B,SAASC,EAAmBvB,GAC/BA,EAAQwB,aAAaF,EAAuB,OAChD,gCCDO,SAASG,EAAiB/B,EAAOD,GACpC,IAAIiC,EAAehC,EACfiC,EAAgBlC,EACfiC,EAAaX,WACdW,EAAaX,SAAW,CACpBH,SAAU,KAGlB,IAAIgB,EAAYF,EAAaX,SAAStB,OACtC,GAAImC,GAAaA,IAAcnC,EAAQ,CAEnC,IAAIoC,EAAQD,EAAUb,SAASH,SAAS1E,QAAQwF,GAC5CG,GAAS,GACTD,EAAUb,SAASH,SAASkB,OAAOD,EAAO,EAElD,CACAH,EAAaX,SAAStB,OAASkC,QAAiBI,EAC5CJ,IACKA,EAAcZ,WACfY,EAAcZ,SAAW,CACrBH,SAAU,KAGlBe,EAAcZ,SAASH,SAASxE,KAAKsF,GAE7C,+JCZO,IAAIM,EAAW,SAAUC,EAAOC,GACnC,IAAIC,EAAQ,CACRC,KAAMH,EAAMI,IAAM,OAElBC,EAAY,CACZF,KAA0B,iBAAbH,EAAMI,IAAkB,OAAsBJ,EAAMI,GAAIJ,IAAS,QAAKA,EAAO,CAAC,QAE/F,GAAIC,EACA,IAAK,IAAI3F,EAAK,EAAGgG,EAAcL,EAAW3F,EAAKgG,EAAY9F,OAAQF,IAAM,CACrE,IAAIiG,EAASD,EAAYhG,GACrBkG,EAAiBR,EAAMO,IAAW,CAAC,EACnCE,EAAKD,EAAeJ,GAAIM,OAAgB,IAAPD,EAAgB,OAASA,EAAI9B,EAAW6B,EAAe7B,SACxFgC,EAAoC,iBAAXD,EACzBE,EAAcD,QAA+Cb,IAA5BU,EAAe7B,SACpDuB,EAAMK,GAAUK,EAAc,IAAaF,EACnB,mBAAb/B,GACP0B,EAAUE,GAAU,CAChB5B,SAAUA,EAASuB,EAAMK,IAAS,QAAKC,EAAgB,CAAC,KAAM,eAElEN,EAAMK,GAAU,YAEXL,EAAMK,KAAY,MACvBF,EAAUE,GAAUI,GACd,OAAsBD,EAAQF,IAC9B,QAAKA,EAAgB,CAAC,OAEpC,CAEJ,MAAO,CAAEN,MAAOA,EAAOG,UAAWA,EACtC,iDChDO,IAAIQ,EAAa,WAAc,OAAO,IAAM,gCCqJ5C,SAASC,IACZ,IAAK,IAAIC,EAAI,EAAGxF,EAAI,EAAGyF,EAAKC,UAAUzG,OAAQe,EAAIyF,EAAIzF,IAAKwF,GAAKE,UAAU1F,GAAGf,OACxE,IAAI0G,EAAIlI,MAAM+H,GAAII,EAAI,EAA3B,IAA8B5F,EAAI,EAAGA,EAAIyF,EAAIzF,IACzC,IAAK,IAAI6F,EAAIH,UAAU1F,GAAI8F,EAAI,EAAGC,EAAKF,EAAE5G,OAAQ6G,EAAIC,EAAID,IAAKF,IAC1DD,EAAEC,GAAKC,EAAEC,GACjB,OAAOH,CACX,kEC3IA,ICFIK,EDEAC,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgB7I,OAAS,SAAUyI,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,GAAI,EACtEN,EAAcC,EAAGC,EAC5B,EAQWM,EAAW,WAQlB,OAPAA,EAAWL,OAAOM,QAAU,SAAkBC,GAC1C,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KAAII,EAAEJ,GAAKf,EAAEe,IAE9E,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,mMChCIsB,EAAyB,oBAEzBC,EAAyB,oBACzBC,EAAW,WACXC,EAAmB,wBACnBC,EAAqB,0BACrBC,EAA6B,UAC7BC,GAAuC,UAM3C,SAASC,EAA4B1D,EAAQ2D,GACzC,IAAItC,EAAIuC,EAAIC,EAAIC,EAAIC,EAAIC,EACpBC,EACsB,mBAAfC,WACPD,EAAQ,IAAIC,WAAW,QAAS,CAC5BC,QAAuB,QAAb9C,EAAKsC,SAAuB,IAAPtC,OAAgB,EAASA,EAAG8C,QAC3DC,QAAuB,QAAbR,EAAKD,SAAuB,IAAPC,OAAgB,EAASA,EAAGQ,QAC3DC,SAAwB,QAAbR,EAAKF,SAAuB,IAAPE,OAAgB,EAASA,EAAGQ,SAC5DC,OAAsB,QAAbR,EAAKH,SAAuB,IAAPG,OAAgB,EAASA,EAAGQ,OAC1DC,QAAuB,QAAbR,EAAKJ,SAAuB,IAAPI,OAAgB,EAASA,EAAGQ,QAC3DC,WAA0B,QAAbR,EAAKL,SAAuB,IAAPK,OAAgB,EAASA,EAAGQ,cAIlEP,EAAQ9E,SAASsF,YAAY,gBACvBC,eAAe,UAASf,GAAKA,EAAGY,UAAiBZ,GAAKA,EAAGa,WAAoBG,OACnF,EACA,EACA,EACA,EACA,IACAhB,GAAKA,EAAGQ,UAAiBR,GAAKA,EAAGW,SAAgBX,GAAKA,EAAGU,WAAkBV,GAAKA,EAAGS,QAAiB,EACpG,MAEJpE,EAAO4E,cAAcX,EACzB,CAcA,IAAIY,EAAgB,CAAC,EACjBC,EAAc,IAAIC,IAClBC,EAAsB,CAAC,OAAQ,SAAU,WAAY,QAAS,MAAO,MAAO,UAC5EC,GAAyB,EACzBC,EAA2B,SAAUC,GAErC,SAASD,EAAUE,GACf,IAAIC,EAAQF,EAAOlC,KAAKC,KAAMkC,IAAUlC,KA6SxC,OA5SAmC,EAAMC,MAAQ,cACdD,EAAME,YAAa,EAAAC,EAAA,KACnBH,EAAMI,SAAW,SAAU9B,GACvB,IAAI0B,EAAMK,uBAAuB/B,EAAG3D,QAApC,CAIA,IAMI2F,EANAtE,EAAKgE,EAAMD,MAAOQ,EAAyBvE,EAAGuE,uBAElDC,EAAkCxE,EAAGwE,gCAAiCC,EAAuBzE,EAAGyE,qBAEhGC,EAAsB1E,EAAG0E,oBAAqBC,EAAU3E,EAAG2E,QAASC,EAA2C5E,EAAG4E,yCAA0CC,EAAyB7E,EAAG6E,uBACpLC,EAAwBd,EAAMe,6BAA6BzC,EAAG3D,QAElE,GAAImG,EACAR,EAAmBhC,EAAG3D,YAItB,IADA,IAAIqG,EAAgB1C,EAAG3D,OAChBqG,GAAiBA,IAAkBhB,EAAMC,MAAMgB,SAAS,CAC3D,IAAI,QAAkBD,IAAkBhB,EAAMe,6BAA6BC,GAAgB,CACvFV,EAAmBU,EACnB,KACJ,CACAA,GAAgB,EAAA1G,EAAA,GAAU0G,EAAepB,EAC7C,CAGJ,GAAIgB,GAA4CtC,EAAG3D,SAAWqF,EAAMC,MAAMgB,QAAS,CAC/E,IAAIC,EAAsBL,GACY,mBAA3BA,GACPA,EAAuBb,EAAMC,MAAMgB,SAEnCC,IAAuB,QAAkBA,IACzCZ,EAAmBY,EACnBA,EAAoBC,UAIpBnB,EAAMmB,OAAM,GACRnB,EAAMoB,iBAENd,EAAmB,MAG/B,CACA,IAAIe,GAAyBrB,EAAMoB,eAG/Bd,GAAoBA,IAAqBN,EAAMoB,kBAC3CN,GAAyBO,IACzBrB,EAAMsB,mBAAmBhB,GAAkB,GAAM,GAErDN,EAAMoB,eAAiBd,EACnBe,GACArB,EAAMuB,qBAGVhB,GACAA,EAAuBP,EAAMoB,eAAgB9C,IAE7CmC,GAAwBD,IACxBlC,EAAGkD,kBAEHb,EACAA,EAAQrC,GAEHoC,GACLA,GA9DJ,CAgEJ,EACAV,EAAMyB,QAAU,WACZzB,EAAM0B,iBAAgB,EAC1B,EACA1B,EAAM2B,aAAe,SAAUrD,GAC3B,IAAI0B,EAAMK,uBAAuB/B,EAAG3D,UAIrBqF,EAAMD,MAAM6B,SAC3B,CAKA,IAFA,IAAIjH,EAAS2D,EAAG3D,OACZkH,EAAO,GACJlH,GAAUA,IAAWqF,EAAMC,MAAMgB,SACpCY,EAAKnM,KAAKiF,GACVA,GAAS,EAAAL,EAAA,GAAUK,EAAQiF,GAE/B,KAAOiC,EAAK9L,UACR4E,EAASkH,EAAKC,SACA,QAAkBnH,IAC5BqF,EAAM+B,kBAAkBpH,GAAQ,KAEhC,QAAmBA,MAZ3B,CAiBJ,EAIAqF,EAAMgC,WAAa,SAAU1D,EAAI2D,GAC7B,IAAIjC,EAAMK,uBAAuB/B,EAAG3D,QAApC,CAKA,IAAIqB,EAAKgE,EAAMD,MAAOmC,EAAYlG,EAAGkG,UAAWN,EAAW5F,EAAG4F,SAAUO,EAAuBnG,EAAGmG,qBAAsBC,EAAwBpG,EAAGoG,sBAAuBC,EAAuBrG,EAAGqG,qBACpM,KAAIT,IAGA5B,EAAMD,MAAMuC,WACZtC,EAAMD,MAAMuC,UAAUhE,GAGtBA,EAAGiE,sBAGHvC,EAAMwC,eAAeC,gBAAkBzC,EAAMC,MAAMgB,SAAWjB,EAAM0C,eAAxE,CAKA,IAAML,GAAwBA,EAAqB/D,IAAS6D,GAAwBA,EAAqB7D,KACrG0B,EAAMe,6BAA6BzC,EAAG3D,QAAS,CAE/C,IAAIgI,EAAY3C,EAAM4C,qBACtB,GAAID,GACA,IAAKA,EAAUxB,OAAM,GACjB,WAGH,MAAI,QAAsB7C,EAAG3D,QAM9B,OALA,IAAKqF,EAAM6C,cAAa,QAAevE,EAAG3D,OAAQ2D,EAAG3D,OAAOmI,YAAY,IACpE,MAKR,CACJ,KACK,IAAIxE,EAAGW,OACR,OAIA,OAAQX,EAAGyE,OACP,KAAKC,EAAA,EAASC,MACV,GAAIjD,EAAMkD,4BAA4B5E,EAAG3D,OAAQ2D,GAC7C,MAEJ,OACJ,KAAK0E,EAAA,EAASG,KACV,GAAIjB,IAAc,IAAmBkB,WACjCpD,EAAMqD,2BAA2B/E,GAC7B0B,EAAMsD,eAAerB,IACrB,MAGR,OACJ,KAAKe,EAAA,EAASO,MACV,GAAIrB,IAAc,IAAmBkB,WACjCpD,EAAMqD,2BAA2B/E,GAC7B0B,EAAMwD,gBAAgBvB,IACtB,MAGR,OACJ,KAAKe,EAAA,EAASS,GACV,GAAIvB,IAAc,IAAmBwB,aACjC1D,EAAMqD,2BAA2B/E,GAC7B0B,EAAM2D,gBACN,MAGR,OACJ,KAAKX,EAAA,EAASY,KACV,GAAI1B,IAAc,IAAmBwB,aACjC1D,EAAMqD,2BAA2B/E,GAC7B0B,EAAM6D,kBACN,MAGR,OACJ,KAAKb,EAAA,EAASc,SACV,IAAK1B,GAAyBpC,EAAM+D,kBAAiB,GACjD,MAEJ,OACJ,KAAKf,EAAA,EAASgB,OACV,IAAK5B,GAAyBpC,EAAM+D,kBAAiB,GACjD,MAEJ,OACJ,KAAKf,EAAA,EAASiB,IACV,GAEAjE,EAAMD,MAAMmE,aACRlE,EAAMD,MAAMoE,eAAiB,IAA0BC,KACtDpE,EAAMD,MAAMoE,eAAiB,IAA0BE,WACpDrE,EAAMsE,gBAAgBhG,EAAG3D,QAAU,CACvC,IAAI4J,GAAe,EAWnB,GAVAvE,EAAMwE,mBAAoB,EAOtBD,EANArC,IAAc,IAAmBkB,UAChCpD,EAAMyE,iBAAiBzE,EAAMoB,eAAgBlD,KAIvB,QAAO+D,IAAU3D,EAAGU,SAAWV,EAAGU,UACvBgB,EAAMsD,eAAerB,GAASjC,EAAMwD,gBAAgBvB,GAJvE3D,EAAGU,SAAWgB,EAAM2D,eAAiB3D,EAAM6D,iBAM9D7D,EAAMwE,mBAAoB,EACtBD,EACA,MAEKvE,EAAMD,MAAM2E,0CACjB1E,EAAMoB,eAAiB,KAE/B,CACA,OACJ,KAAK4B,EAAA,EAAS2B,KACV,GAAI3E,EAAM4E,0BAA0BtG,EAAG3D,SAClCqF,EAAMsE,gBAAgBhG,EAAG3D,UACrBqF,EAAM6E,sBAAsBvG,EAAG3D,QAAQ,GAC5C,OAAO,EAEX,IAAImI,EAAa9C,EAAMC,MAAMgB,SAAWjB,EAAMC,MAAMgB,QAAQ6B,WAC5D,GAAI9C,EAAMC,MAAMgB,SACZ6B,GACA9C,EAAM6C,cAAa,QAAe7C,EAAMC,MAAMgB,QAAS6B,GAAY,IACnE,MAEJ,OACJ,KAAKE,EAAA,EAAS8B,IACV,GAAI9E,EAAM4E,0BAA0BtG,EAAG3D,SAClCqF,EAAMsE,gBAAgBhG,EAAG3D,UACrBqF,EAAM6E,sBAAsBvG,EAAG3D,QAAQ,GAC5C,OAAO,EAEX,IAAIoK,EAAY/E,EAAMC,MAAMgB,SAAWjB,EAAMC,MAAMgB,QAAQ8D,UAC3D,GAAI/E,EAAMC,MAAMgB,SACZjB,EAAM6C,cAAa,QAAmB7C,EAAMC,MAAMgB,QAAS8D,GAAW,GAAM,GAAM,IAClF,MAEJ,OACJ,KAAK/B,EAAA,EAASgC,MACV,GAAIhF,EAAMkD,4BAA4B5E,EAAG3D,OAAQ2D,GAC7C,MAEJ,OACJ,QACI,OAEZ,CACAA,EAAG2G,iBACH3G,EAAGkD,iBArIH,CAjBA,CAuJJ,EACAxB,EAAMkF,iCAAmC,SAAUC,EAAWC,EAAYC,GAEtE,IAAIC,EAAgBtF,EAAMuF,gBAAgBpC,MAAQnD,EAAMuF,gBAAgBC,GAAK,EAKzEC,EAAgB3Q,KAAKwC,MAAM+N,EAAWK,KACtCC,EAAmB7Q,KAAKwC,MAAM8N,EAAWQ,QACzCC,EAAmB/Q,KAAKwC,MAAM+N,EAAWO,QACzCE,EAAgBhR,KAAKwC,MAAM8N,EAAWM,KAG1C,OAFmCP,GAAaM,EAAgBE,IAC9BR,GAAaU,EAAmBC,EAE1DR,GAAiBD,EAAWlC,MAAQmC,GAAiBD,EAAWlC,KAAOkC,EAAWU,MAC3E,EAEJjR,KAAKkR,IAAIX,EAAWlC,KAAOkC,EAAWU,MAAQ,EAAIT,GAExDtF,EAAMyE,iBAAiBzE,EAAMoB,eAAgBnD,GAG3CE,EAFIC,CAGf,GAEA,EAAA6H,EAAA,GAAuBjG,GAUvBA,EAAMkG,KAAM,EAAAC,EAAA,GAAM,aAClBnG,EAAMuF,gBAAkB,CACpBpC,KAAM,EACNuC,IAAK,GAET1F,EAAMwE,mBAAoB,EACnBxE,CACX,CAisBA,ODzhCG,SAAmBhD,EAAGC,GAEzB,SAASmJ,IAAOvI,KAAKwI,YAAcrJ,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEW,UAAkB,OAANV,EAAaC,OAAOoJ,OAAOrJ,IAAMmJ,EAAGzI,UAAYV,EAAEU,UAAW,IAAIyI,EACnF,CCoCIG,CAAU1G,EAAWC,GAkTrBD,EAAU2G,cAAgB,WACtB,OAAO/G,EAAYgH,IACvB,EAMA5G,EAAU6G,kBAAoB,SAAUpI,GAEhCA,EAAGyE,QAAUC,EAAA,EAASiB,KACtBxE,EAAYkH,SAAQ,SAAUC,GAAQ,OAAOA,EAAKrF,mBAAqB,GAE/E,EACA1B,EAAUlC,UAAUkJ,kBAAoB,WACpC,IAAInL,EAAOmC,KAAKoC,MAAMgB,QAEtB,GADAzB,EAAc3B,KAAKqI,KAAOrI,KACtBnC,EAAM,CACNmC,KAAKiJ,gBAAiB,EAAAC,EAAA,GAAUrL,GAEhC,IADA,IAAIsF,GAAgB,EAAA1G,EAAA,GAAUoB,EAAMkE,GAC7BoB,GAAiBA,IAAkBnD,KAAK2E,eAAezI,MAAmC,IAA3BiH,EAAcgG,UAAgB,CAChG,IAAI,QAAmBhG,GAAgB,CACnCnD,KAAK6E,cAAe,EACpB,KACJ,CACA1B,GAAgB,EAAA1G,EAAA,GAAU0G,EAAepB,EAC7C,CACK/B,KAAK6E,eACNjD,EAAYwH,IAAIpJ,MACZA,KAAKiJ,gBAAuC,IAArBrH,EAAYgH,MACnC5I,KAAKiJ,eAAeI,iBAAiB,UAAWrH,EAAU6G,mBAAmB,IAGrF7I,KAAKoC,MAAMgB,SAAWpD,KAAKoC,MAAMgB,QAAQiG,iBAAiB,OAAQrJ,KAAK4D,SAAS,GAEhF5D,KAAK0D,oBACD1D,KAAKkC,MAAMc,wBAAuE,iBAAtChD,KAAKkC,MAAMc,uBACvDhD,KAAKuD,eAAiBvD,KAAK2E,eAAe2E,cAActJ,KAAKkC,MAAMc,wBAG9DhD,KAAKkC,MAAMqH,uBAEhBvJ,KAAKuD,eAAiBvD,KAAK2E,eAAe2E,cAActJ,KAAKkC,MAAMqH,uBAEnEvJ,KAAKkC,MAAMsH,oBACXxJ,KAAKsD,OAEb,CACJ,EACAtB,EAAUlC,UAAU2J,mBAAqB,WACrC,IAAI5L,EAAOmC,KAAKoC,MAAMgB,QAClBsG,EAAM1J,KAAK2E,eACf,GAAI+E,GACA1J,KAAK2J,iBACJD,EAAI9E,gBAAkB8E,EAAIxN,MACD,OAAtBwN,EAAI9E,gBACF5E,KAAKkC,MAAM0H,yBAA2BF,EAAI9E,gBAAkB/G,GAAQ,CAE1E,IAAIgM,GAAiB,QAAwBhM,EAAMmC,KAAK2J,gBACpDE,GACA7J,KAAKkE,kBAAkB2F,GAAgB,GACvCA,EAAevG,QACftD,KAAK6D,iBAAgB,IAKrB7D,KAAK6D,iBAAgB,EAE7B,CACJ,EACA7B,EAAUlC,UAAUgK,qBAAuB,kBAChCnI,EAAc3B,KAAKqI,KACrBrI,KAAK6E,eACNjD,EAAYmI,OAAO/J,MAEfA,KAAKiJ,gBAAuC,IAArBrH,EAAYgH,MACnC5I,KAAKiJ,eAAee,oBAAoB,UAAWhI,EAAU6G,mBAAmB,IAGpF7I,KAAKoC,MAAMgB,SACXpD,KAAKoC,MAAMgB,QAAQ4G,oBAAoB,OAAQhK,KAAK4D,SAAS,GAEjE5D,KAAKuD,eAAiB,KACtBvD,KAAKiK,qBAAuB,IAChC,EACAjI,EAAUlC,UAAUoK,OAAS,WACzB,IAAI/H,EAAQnC,KAER7B,EAAK6B,KAAKkC,MAAOiI,EAAMhM,EAAGL,GAAIsM,EAAcjM,EAAGiM,YAAaC,EAAYlM,EAAGkM,UAAWC,EAAkBnM,EAAGmM,gBAAiBC,EAAiBpM,EAAGoM,eAAgBC,EAAYrM,EAAGqM,UAC/KC,GAAW,QAAezK,KAAKkC,MAAO,MACtCwI,EAAMP,GAAOC,GAAe,MAMhCpK,KAAK2K,6BAEL,IAAIvG,GAAQ,UACZ,OAAQ,gBAAoBsG,EAAKhL,EAAS,CAAE,kBAAmB6K,EAAgB,mBAAoBD,GAAmBG,EAAUJ,EAAW,CAIvIG,WAAW,EAAAI,EAAA,IA1ad3L,IACDA,GAAkB,EAAA4L,EAAA,GAAY,CAC1BC,UAAW,CACP,SAAU,CACNC,QAAS,UApCR,iBAyCV9L,GAiagCuL,GAE/BQ,IAAKhL,KAAKqC,WAAWrC,KAAKkC,MAAM+I,WAAYjL,KAAKoC,OAAQ,oBAAqBpC,KAAKqI,IAEnF5D,UAAW,SAAUhE,GAAM,OAAO0B,EAAMgC,WAAW1D,EAAI2D,EAAQ,EAAGtB,QAAS9C,KAAKuC,SAAU2I,mBAAoBlL,KAAK8D,eAAiB9D,KAAKkC,MAAM7F,SACvJ,EAOA2F,EAAUlC,UAAUwD,MAAQ,SAAU6H,GAElC,QAD8B,IAA1BA,IAAoCA,GAAwB,GAC5DnL,KAAKoC,MAAMgB,QAAS,CACpB,IAAK+H,GAC2D,SAA5DnL,KAAKoC,MAAMgB,QAAQtH,aAAamE,IAChCD,KAAK6E,aAAc,CACnB,IAAIuG,EAAmBpL,KAAKqL,cAAcrL,KAAKoC,MAAMgB,SACrD,GAAIgI,IAAqBpL,KAAKoC,MAAMgB,QAAS,CACzC,IAAIkI,EAAY3J,EAAcyJ,EAAiBtP,aAAaoE,IAC5D,QAASoL,GAAaA,EAAUtG,aAAahF,KAAKoC,MAAMgB,QAC5D,CACA,OAAO,CACX,CACK,IAAK+H,GACNnL,KAAKuD,iBACL,EAAAtI,EAAA,GAAgB+E,KAAKoC,MAAMgB,QAASpD,KAAKuD,kBACzC,QAAkBvD,KAAKuD,gBAEvB,OADAvD,KAAKuD,eAAeD,SACb,EAGP,IAAI2B,EAAajF,KAAKoC,MAAMgB,QAAQ6B,WACpC,OAAOjF,KAAKgF,cAAa,QAAehF,KAAKoC,MAAMgB,QAAS6B,GAAY,GAEhF,CACA,OAAO,CACX,EAKAjD,EAAUlC,UAAUyL,UAAY,WAC5B,GAAIvL,KAAKoC,MAAMgB,QAAS,CACpB,IAAI8D,EAAYlH,KAAKoC,MAAMgB,SAAWpD,KAAKoC,MAAMgB,QAAQ8D,UACzD,OAAOlH,KAAKgF,cAAa,QAAmBhF,KAAKoC,MAAMgB,QAAS8D,GAAW,GAAM,GAAM,GAC3F,CACA,OAAO,CACX,EASAlF,EAAUlC,UAAUkF,aAAe,SAAUvJ,EAAS+P,GAElD,IAAIrN,EAAK6B,KAAKkC,MAAOuJ,EAAgBtN,EAAGsN,cAAeC,EAAqBvN,EAAGuN,mBAC/E,QAAKA,IAAuBA,EAAmBjQ,IAAcgQ,IAAkBA,EAAchQ,KAGzFA,IAEAuE,KAAKkE,kBAAkBzI,EAAS+P,GAC5BxL,KAAKuD,gBACLvD,KAAKuD,eAAeD,QAEjB,GAGf,EAMAtB,EAAUlC,UAAU6L,kBAAoB,SAAUC,GAC9C5L,KAAK0H,gBAAkBkE,CAC3B,EACA5J,EAAUlC,UAAU6K,2BAA6B,WAC7C,IAAI9M,EAAOmC,KAAKoC,MAAMgB,QAClBsG,EAAM1J,KAAK2E,eACf,GAAI+E,EAAK,CACL,IAAImC,EAAiBnC,EAAI9E,cAEzB,GAAIiH,IAAmBhO,EAAM,CACzB,IAAIiO,GAAqB,EAAA7Q,EAAA,GAAgB4C,EAAMgO,GAAgB,GAC/D7L,KAAK2J,eAAiBmC,GAAqB,QAAoBjO,EAAMgO,QAAkBrO,CAC3F,CACJ,CACJ,EAOAwE,EAAUlC,UAAU+D,gBAAkB,SAAUkI,GAC5C,IAAIlO,EAAOmC,KAAKoC,MAAMgB,QAClBvF,GAAQmC,KAAKgM,YAAcD,IAC3B/L,KAAKgM,UAAYD,EACbA,GACK/L,KAAKkC,MAAM+J,iBACZjM,KAAKkM,gBAAkBrO,EAAK/B,aAAa,YACzC+B,EAAKZ,aAAa,WAAY,OAElCY,EAAKyF,SAECtD,KAAKkC,MAAM+J,iBACbjM,KAAKkM,iBACLrO,EAAKZ,aAAa,WAAY+C,KAAKkM,iBACnClM,KAAKkM,qBAAkB1O,GAGvBK,EAAKsO,gBAAgB,aAIrC,EACAnK,EAAUlC,UAAUoE,kBAAoB,SAAUzI,EAAS+P,GACvD,IAAIY,EAAwBpM,KAAKuD,eACjCvD,KAAKuD,eAAiB9H,EAClB2Q,KACI,QAAmBA,IACnBpM,KAAK0D,kBAAkB0I,GAE3BA,EAAsBC,UAAY,GAElCrM,KAAKuD,iBACAvD,KAAK0H,kBAAmB8D,GACzBxL,KAAKyD,mBAAmBhI,GAAS,GAAM,GAE3CuE,KAAKuD,eAAe8I,SAAW,EAEvC,EACArK,EAAUlC,UAAU0F,2BAA6B,SAAU/E,GACvDT,KAAKkC,MAAMoK,2BAA6B7L,EAAG2G,gBAC/C,EAIApF,EAAUlC,UAAUuF,4BAA8B,SAAUkH,EAAe9L,GACvE,IAAI3D,EAASyP,EACb,GAAIzP,IAAWkD,KAAKoC,MAAMgB,UAAYpD,KAAKkC,MAAMsK,kBAC7C,OAAO,EAEX,EAAG,CACC,GAAuB,WAAnB1P,EAAO2P,SACY,MAAnB3P,EAAO2P,SACY,UAAnB3P,EAAO2P,SACY,aAAnB3P,EAAO2P,QACP,OAAO,EAEX,GAAIzM,KAAKkD,6BAA6BpG,IACc,SAAhDA,EAAOhB,aAAamE,IACiC,SAArDnD,EAAOhB,aAhnBW,+BAknBlB,OADA0E,EAA4B1D,EAAQ2D,IAC7B,EAEX3D,GAAS,EAAAL,EAAA,GAAUK,EAAQiF,EAC/B,OAASjF,IAAWkD,KAAKoC,MAAMgB,SAC/B,OAAO,CACX,EAIApB,EAAUlC,UAAUiF,mBAAqB,SAAU2H,GAE/C,KADAA,EAAcA,GAAe1M,KAAKuD,gBAAkBvD,KAAKoC,MAAMgB,SAE3D,OAAO,KAEX,IAAI,QAAmBsJ,GACnB,OAAO/K,EAAc+K,EAAY5Q,aAAaoE,IAGlD,IADA,IAAI/E,EAAQuR,EAAYC,kBACjBxR,GAAO,CACV,IAAI,QAAmBA,GACnB,OAAOwG,EAAcxG,EAAMW,aAAaoE,IAE5C,IAAI0M,EAAQ5M,KAAK+E,mBAAmB5J,GACpC,GAAIyR,EACA,OAAOA,EAEXzR,EAAQA,EAAM0R,kBAClB,CACA,OAAO,IACX,EACA7K,EAAUlC,UAAUgN,WAAa,SAAUxF,EAAWyF,EAAuBtM,EAAIuM,QACtD,IAAnBA,IAA6BA,GAAiB,GAClD,IAAIvR,EAAUuE,KAAKuD,eACf0J,GAAqB,EACrBC,OAAmB1P,EACnB2P,GAAe,EACfC,EAAkBpN,KAAKkC,MAAMmC,YAAc,IAAmBgJ,cAClE,IAAK5R,IAAYuE,KAAKoC,MAAMgB,QACxB,OAAO,EAEX,GAAIpD,KAAKyG,gBAAgBhL,KAChBuE,KAAKgH,sBAAsBvL,EAAS6L,GACrC,OAAO,EAGf,IAAIC,EAAa6F,EAAkB3R,EAAQ6R,wBAA0B,KACrE,EAAG,CAIC,GAHA7R,EAAW6L,GACL,QAAetH,KAAKoC,MAAMgB,QAAS3H,IACnC,QAAmBuE,KAAKoC,MAAMgB,QAAS3H,IACzC2R,EAiBC,CACDF,EAAmBzR,EACnB,KACJ,CAnBI,GAAIA,EAAS,CACT,IACI8R,EAAkBR,EAAsBxF,EAD3B9L,EAAQ6R,yBAEzB,IAAyB,IAArBC,IAAiD,IAAvBN,EAA0B,CACpDC,EAAmBzR,EACnB,KACJ,CAKA,GAJI8R,GAAmB,KAA6B,IAAvBN,GAA4BM,EAAkBN,KACvEA,EAAoBM,EACpBL,EAAmBzR,GAEnBwR,GAAqB,GAAKM,EAAkB,EAC5C,KAER,CAMR,OAAS9R,GAET,GAAIyR,GAAoBA,IAAqBlN,KAAKuD,eAC9C4J,GAAe,EACfnN,KAAKgF,aAAakI,QAEjB,GAAIlN,KAAKkC,MAAMsL,sBAAwBR,EACxC,OAAI1F,EACOtH,KAAKgF,cAAa,QAAehF,KAAKoC,MAAMgB,QAASpD,KAAKoC,MAAMgB,QAAQuJ,mBAAmB,IAG3F3M,KAAKgF,cAAa,QAAmBhF,KAAKoC,MAAMgB,QAASpD,KAAKoC,MAAMgB,QAAQqK,kBAAkB,GAAM,GAAM,IAGzH,OAAON,CACX,EACAnL,EAAUlC,UAAUkG,eAAiB,WACjC,IAAI7D,EAAQnC,KACR0N,GAAa,EAEbjG,EAAgBzH,KAAK0H,gBAAgBpC,MAAQtF,KAAK0H,gBAAgBC,GAAK,EAC3E,QAAI3H,KAAK8M,YAAW,GAAM,SAAUvF,EAAYC,GAC5C,IAAImG,GAAY,EAKZ/F,EAAgB3Q,KAAKwC,MAAM+N,EAAWK,KACtCC,EAAmB7Q,KAAKwC,MAAM8N,EAAWQ,QAC7C,OAAIH,EAAgBE,EACX3F,EAAMyE,iBAAiBzE,EAAMoB,eAAgBnD,GAG3CE,EAFIC,KAIK,IAAfmN,GAAoB9F,GAAiBE,GAAqBF,IAAkB8F,KAC7EA,EAAY9F,EAER+F,EADAlG,GAAiBD,EAAWlC,MAAQmC,GAAiBD,EAAWlC,KAAOkC,EAAWU,MACvE,EAGAjR,KAAKkR,IAAIX,EAAWlC,KAAOkC,EAAWU,MAAQ,EAAIT,IAG9DkG,EACX,MACI3N,KAAKyD,mBAAmBzD,KAAKuD,gBAAgB,GAAO,IAC7C,EAGf,EACAvB,EAAUlC,UAAUgG,aAAe,WAC/B,IAAI3D,EAAQnC,KACR0N,GAAa,EAEbjG,EAAgBzH,KAAK0H,gBAAgBpC,MAAQtF,KAAK0H,gBAAgBC,GAAK,EAC3E,QAAI3H,KAAK8M,YAAW,GAAO,SAAUvF,EAAYC,GAC7C,IAAImG,GAAY,EAKZ3F,EAAmB/Q,KAAKwC,MAAM+N,EAAWO,QACzCH,EAAgB3Q,KAAKwC,MAAM+N,EAAWK,KACtCI,EAAgBhR,KAAKwC,MAAM8N,EAAWM,KAC1C,OAAIG,EAAmBC,EACd9F,EAAMyE,iBAAiBzE,EAAMoB,eAAgBnD,GAG3CE,EAFIC,KAIK,IAAfmN,GAAoB1F,GAAoBC,GAAkBL,IAAkB8F,KAC7EA,EAAY9F,EAER+F,EADAlG,GAAiBD,EAAWlC,MAAQmC,GAAiBD,EAAWlC,KAAOkC,EAAWU,MACvE,EAGAjR,KAAKkR,IAAIX,EAAWlC,KAAOkC,EAAWU,MAAQ,EAAIT,IAG9DkG,EACX,MACI3N,KAAKyD,mBAAmBzD,KAAKuD,gBAAgB,GAAO,IAC7C,EAGf,EACAvB,EAAUlC,UAAU2F,eAAiB,SAAUrB,GAC3C,IAAIjC,EAAQnC,KACR4N,EAAa5N,KAAK4G,iBAAiB5G,KAAKuD,eAAgBlD,GAC5D,QAAIL,KAAK8M,YAAW,QAAO1I,IAAQ,SAAUmD,EAAYC,GACrD,IAAImG,GAAY,EAoBhB,QAlBI,QAAOvJ,GAKeyJ,WAAWrG,EAAWK,IAAIiG,QAAQ,IAAMD,WAAWtG,EAAWQ,OAAO+F,QAAQ,IAG7ED,WAAWrG,EAAWO,OAAO+F,QAAQ,IAAMD,WAAWtG,EAAWM,IAAIiG,QAAQ,MAGnGtG,EAAW9B,OAAS6B,EAAW7B,OAC/BvD,EAAMD,MAAMmC,YAAc,IAAmBkB,SAC7CoI,EAAWpG,EAAW7B,MAAQ8B,EAAW9B,MAEnCkI,IACND,EAAWpN,GAERoN,CACX,QAAGnQ,EAAkBoQ,KACjB5N,KAAKyD,mBAAmBzD,KAAKuD,gBAAgB,GAAM,IAC5C,EAGf,EACAvB,EAAUlC,UAAU6F,gBAAkB,SAAUvB,GAC5C,IAAIjC,EAAQnC,KACR4N,EAAa5N,KAAK4G,iBAAiB5G,KAAKuD,eAAgBlD,GAC5D,QAAIL,KAAK8M,aAAY,QAAO1I,IAAQ,SAAUmD,EAAYC,GACtD,IAAImG,GAAY,EAoBhB,QAlBI,QAAOvJ,GAKeyJ,WAAWrG,EAAWO,OAAO+F,QAAQ,IAAMD,WAAWtG,EAAWM,IAAIiG,QAAQ,IAG7ED,WAAWrG,EAAWK,IAAIiG,QAAQ,IAAMD,WAAWtG,EAAWQ,OAAO+F,QAAQ,MAGnGtG,EAAWlC,MAAQiC,EAAWjC,MAC9BnD,EAAMD,MAAMmC,YAAc,IAAmBkB,SAC7CoI,EAAWnG,EAAWlC,KAAOiC,EAAWjC,KAElCsI,IACND,EAAWpN,GAERoN,CACX,QAAGnQ,EAAkBoQ,KACjB5N,KAAKyD,mBAAmBzD,KAAKuD,gBAAgB,GAAM,IAC5C,EAGf,EACAvB,EAAUlC,UAAUoG,iBAAmB,SAAUoB,EAAW0F,QACjC,IAAnBA,IAA6BA,GAAiB,GAClD,IAAIvR,EAAUuE,KAAKuD,eACnB,IAAK9H,IAAYuE,KAAKoC,MAAMgB,QACxB,OAAO,EAEX,GAAIpD,KAAKyG,gBAAgBhL,KAChBuE,KAAKgH,sBAAsBvL,EAAS6L,GACrC,OAAO,EAGf,IAAIyG,GAAmB,QAAqBtS,GAC5C,IAAKsS,EACD,OAAO,EAEX,IAAId,GAAqB,EACrBC,OAAmB1P,EACnBkQ,GAAa,EACbM,GAAgB,EAChBC,EAAWF,EAAiBG,aAC5B3G,EAAa9L,EAAQ6R,wBACzB,GAII,GAHA7R,EAAU6L,GACJ,QAAetH,KAAKoC,MAAMgB,QAAS3H,IACnC,QAAmBuE,KAAKoC,MAAMgB,QAAS3H,GAChC,CACT,IAAI+L,EAAa/L,EAAQ6R,wBACrB1F,EAAgB3Q,KAAKwC,MAAM+N,EAAWK,KACtCC,EAAmB7Q,KAAKwC,MAAM8N,EAAWQ,QACzCC,EAAmB/Q,KAAKwC,MAAM+N,EAAWO,QACzCE,EAAgBhR,KAAKwC,MAAM8N,EAAWM,KACtC0F,EAAkBvN,KAAKqH,iCAAiCC,EAAWC,EAAYC,GAGnF,GAF0CF,GAAaM,EAAgBE,EAAmBmG,IACjD3G,GAAaU,EAAmBC,EAAgBgG,EAErF,MAEAV,GAAmB,IAEfjG,GAAaM,EAAgB8F,GAC7BA,EAAY9F,EACZqF,EAAoBM,EACpBL,EAAmBzR,IAEb6L,GAAaU,EAAmBgG,GAEtCA,EAAehG,EACfiF,EAAoBM,EACpBL,EAAmBzR,KAES,IAAvBwR,GAA4BM,GAAmBN,KACpDA,EAAoBM,EACpBL,EAAmBzR,GAG/B,QACKA,GACT,IAAI0R,GAAe,EAEnB,GAAID,GAAoBA,IAAqBlN,KAAKuD,eAC9C4J,GAAe,EACfnN,KAAKgF,aAAakI,GAClBlN,KAAKyD,mBAAmByJ,GAAkB,GAAO,QAEhD,GAAIlN,KAAKkC,MAAMsL,sBAAwBR,EACxC,OAAI1F,EACOtH,KAAKgF,cAAa,QAAehF,KAAKoC,MAAMgB,QAASpD,KAAKoC,MAAMgB,QAAQuJ,mBAAmB,IAE/F3M,KAAKgF,cAAa,QAAmBhF,KAAKoC,MAAMgB,QAASpD,KAAKoC,MAAMgB,QAAQqK,kBAAkB,GAAM,GAAM,IAErH,OAAON,CACX,EACAnL,EAAUlC,UAAU2D,mBAAqB,SAAUhI,EAAS0S,EAAcC,GACtE,GAAIpO,KAAKkC,MAAMmC,YAAc,IAAmBgJ,iBAC1CrN,KAAK0H,iBAAmByG,GAAgBC,GAAa,CACvD,IAAIC,EAAO5S,EAAQ6R,wBACfhI,EAAO+I,EAAK/I,KAAO+I,EAAKnG,MAAQ,EAChCoG,EAAQD,EAAKxG,IAAMwG,EAAKE,OAAS,EAChCvO,KAAK0H,kBACN1H,KAAK0H,gBAAkB,CAAEpC,KAAMA,EAAMuC,IAAKyG,IAE1CH,IACAnO,KAAK0H,gBAAgBpC,KAAOA,GAE5B8I,IACApO,KAAK0H,gBAAgBG,IAAMyG,EAEnC,CACJ,EACAtM,EAAUlC,UAAUoD,6BAA+B,SAAUzH,GACzD,OAAOuE,KAAKqL,cAAc5P,KAAauE,KAAKoC,MAAMgB,OACtD,EACApB,EAAUlC,UAAUuL,cAAgB,SAAU5P,GAE1C,IADA,IAAI0H,GAAgB,EAAA1G,EAAA,GAAUhB,EAASsG,GAChCoB,GAAiBA,IAAkBnD,KAAKoC,MAAMgB,SAAWD,IAAkBnD,KAAK2E,eAAezI,MAAM,CACxG,IAAI,QAAmBiH,GACnB,OAAOA,EAEXA,GAAgB,EAAA1G,EAAA,GAAU0G,EAAepB,EAC7C,CACA,OAAOoB,CACX,EACAnB,EAAUlC,UAAU4D,kBAAoB,SAAUjI,IACzCuE,KAAKuD,gBACNvD,KAAKkC,MAAMc,wBACkC,mBAAtChD,KAAKkC,MAAMc,yBAClBhD,KAAKuD,eAAiBvD,KAAKkC,MAAMc,uBAAuBhD,KAAKoC,MAAMgB,WAElE3H,GAAWuE,KAAKoC,MAAMgB,UACvBpD,KAAKiK,qBAAuB,KAC5BxO,EAAUuE,KAAKoC,MAAMgB,QACjBpD,KAAKuD,kBAAmB,EAAAtI,EAAA,GAAgBQ,EAASuE,KAAKuD,kBACtDvD,KAAKuD,eAAiB,OAK1BvD,KAAKuD,kBAAmB,QAAkBvD,KAAKuD,kBAC/CvD,KAAKuD,eAAiB,MAG1B,IADA,IAAIiL,EAAa/S,GAAWA,EAAQY,SAC3BoS,EAAa,EAAGD,GAAcC,EAAaD,EAAWtW,OAAQuW,IAAc,CACjF,IAAItT,EAAQqT,EAAWC,IAClB,QAAmBtT,GAyBgC,SAA/CA,EAAMW,aAAamE,KACnBD,KAAK6E,eACH7E,KAAKuD,gBAAmBvD,KAAKiK,uBAAyBjK,KAAKuD,iBAAmBpI,EAM3C,OAAjCA,EAAMW,aAAaqE,IACxBhF,EAAM8B,aAAakD,EAAU,OAN7BH,KAAKiK,qBAAuB9O,EACS,MAAjCA,EAAMW,aAAaqE,IACnBhF,EAAM8B,aAAakD,EAAU,QA5BjChF,EAAMW,cAA+D,UAA/CX,EAAMW,aAAamE,IACzC9E,EAAM8B,aAAakD,EAAU,OAE7B,QAAkBhF,GACd6E,KAAKkC,MAAM6B,SACX5I,EAAM8B,aAAakD,EAAU,MAEvBH,KAAK6E,eACR7E,KAAKuD,gBAAmBvD,KAAKiK,uBAAyBjK,KAAKuD,iBAAmBpI,EAM3C,OAAjCA,EAAMW,aAAaqE,IACxBhF,EAAM8B,aAAakD,EAAU,OAN7BH,KAAKiK,qBAAuB9O,EACS,MAAjCA,EAAMW,aAAaqE,IACnBhF,EAAM8B,aAAakD,EAAU,MAOd,QAAlBhF,EAAMsR,SAAyD,UAApCtR,EAAMW,aAAa,cAEnDX,EAAM8B,aAAa,YAAa,UAexC+C,KAAK0D,kBAAkBvI,EAC3B,CACJ,EACA6G,EAAUlC,UAAUiH,0BAA4B,SAAUtL,GACtD,OAAOA,GAAuD,SAA5CA,EAAQK,aAAa,kBAC3C,EACAkG,EAAUlC,UAAU2G,gBAAkB,SAAUhL,GAC5C,SAAIA,IACAA,EAAQgR,SAC2B,UAAlChR,EAAQgR,QAAQiC,eAA+D,aAAlCjT,EAAQgR,QAAQiC,cAItE,EACA1M,EAAUlC,UAAUkH,sBAAwB,SAAUvL,EAAS6L,GAE3D,IAAKtH,KAAK2G,mBACNlL,GACAA,EAAQkT,MACR7M,EAAoBnK,QAAQ8D,EAAQkT,KAAKD,gBAAkB,EAAG,CAC9D,IAAIE,EAAiBnT,EAAQmT,eAEzBC,EAAkBD,IADHnT,EAAQqT,aAEvBC,EAAatT,EAAQuT,MACrBC,EAAaxT,EAAQyT,SAQzB,GAAIL,GACCD,EAAiB,IAAMtH,IAAc2H,GACrCL,IAAmBG,EAAW7W,QAAUoP,IAAc2H,GACpDjP,KAAKkC,MAAMoE,gBACRtG,KAAKkC,MAAMiN,iCAAkCnP,KAAKkC,MAAMiN,+BAA+B1T,IAC7F,OAAO,CAEf,CACA,OAAO,CACX,EACAuG,EAAUlC,UAAU8G,iBAAmB,SAAUnL,EAAS2T,GACtD,OAAOpP,KAAKkC,MAAMmN,iBAAiB,QAAgB5T,EAAS2T,EAChE,EAIApN,EAAUlC,UAAU0C,uBAAyB,SAAU/G,GACnD,OAAOA,KAAauE,KAAKoC,MAAMgB,UAAW,EAAAvG,EAAA,GAAsBpB,EAASuE,KAAKoC,MAAMgB,QACxF,EACApB,EAAUlC,UAAU6E,aAAe,WAC/B,OAAO,EAAA2K,EAAA,GAAYtP,KAAKoC,MAAMgB,QAClC,EACApB,EAAUuN,aAAe,CACrB/B,sBAAsB,EACtBnJ,UAAW,IAAmBgJ,cAC9Bb,mBAAmB,GAEhBxK,CACX,CAn/B8B,CAm/B5B,oEC9iCK,IAWIwN,EAXAC,EAA4B,CAEnCC,KAAM,EAENnJ,IAAK,EAELC,UAAW,IAMf,SAAWgJ,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,2MCxBhD,cAAW,wBAAyB,wFCFhCG,EAAkB,CAAE1T,SAAU,YA8CvB2T,EAAoB,gBAAoB,CAC/CC,eAzCwB,SAAUC,EAAQC,GAC1C,IAAIC,EAAaD,EAAQC,WAAYlT,EAASiT,EAAQjT,OACtD,GAAKgT,KAAUA,EAAO5X,OAAS,GAA/B,CAGKxB,MAAMuZ,QAAQH,KACfA,EAAS,CAACA,IAGd,IAAII,EAAiB,GACjBC,EAAWrT,GAAU6S,EACrBS,EAAoBJ,EAAWK,IAAIF,GAClCC,IACDA,EAAoB,IAAIE,IACxBN,EAAWO,IAAIJ,EAAUC,IAE7B,IAAK,IAAIpY,EAAK,EAAGwY,EAAWV,EAAQ9X,EAAKwY,EAAStY,OAAQF,IAAM,CAC5D,IAAIyY,EAAQD,EAASxY,GAChBoY,EAAkBM,IAAID,KACvBP,EAAerY,KAAK4Y,GACpBL,EAAkBG,IAAIE,GAAO,GAErC,CACIP,EAAehY,QACf6X,EAAQY,aAAaT,EAAgBH,EApBzC,CAsBJ,EAgBIY,aAXe,SAAUb,EAAQC,GACjC,IAAIjT,EAASiT,EAAQjT,OACrB,GAAIgT,EAAO5X,QAAU4E,EAAQ,CACzB,IAAI8T,EAAe9T,EAAO+T,cAAc,SACxCD,EAAaE,YAAchB,EAAOiB,KAAK,IACvCjU,EAAOkU,KAAKC,YAAYL,EAC5B,CACJ,EAKI9T,OAA0B,iBAAX2E,OAAsBA,OAAOxF,cAAWuB,EACvDwS,WAAY,IAAIkB,4DClDTC,WAAe,mBAAoB3T,kGCDnC4T,EAAsB,SAAUC,EAAQC,EAAQC,QACzC,IAAVA,IAAoBA,EAAQ,CAAC,GACjC,IAAIC,GAAmB,EACvB,GAAIH,EACA,IAAK,IAAIrZ,EAAK,EAAGmG,EAAKkB,OAAOoS,KAAKJ,GAASrZ,EAAKmG,EAAGjG,OAAQF,IAAM,CAC7D,IAAIiG,EAASE,EAAGnG,GAEhB,IAAKwZ,EAAkB,CACnB,GAA6B,IAAzBvT,EAAOtG,QAAQ,MACf,OAAO0Z,EAEXG,GAAmB,CACvB,CACA,IAAIE,EAAUJ,EAAcA,GAAqB,YAAXrT,EAAuB,GAAK,IAAMA,GAAU,KAAOA,EACrF0T,EAAWN,EAAOpT,GAClB0T,GAAgC,iBAAbA,EACnBP,EAAoBO,EAAUD,EAASH,GAIvCA,EAAMG,GAAWC,CAEzB,CAEJ,OAAOJ,CACX,ECpBIK,GAAyB,EAAAC,EAAA,IAAW,SAAUzN,GAC9C,IAAIjG,EAAIuC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgR,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC5DlB,EAASjN,EAAMiN,OAEnB,MAAO,CACHxT,KAFcuT,EAAoBC,GAGlCnV,KAAM,CACF,CACIsW,MAAkI,QAA1H7R,EAA4E,QAAtED,EAAuB,QAAjBvC,EAAKkT,SAA2B,IAAPlT,OAAgB,EAASA,EAAGqU,aAA0B,IAAP9R,OAAgB,EAASA,EAAGxE,YAAyB,IAAPyE,OAAgB,EAASA,EAAG8R,aACtKC,WAAuI,QAA1H5R,EAA4E,QAAtED,EAAuB,QAAjBD,EAAKyQ,SAA2B,IAAPzQ,OAAgB,EAASA,EAAG4R,aAA0B,IAAP3R,OAAgB,EAASA,EAAG3E,YAAyB,IAAP4E,OAAgB,EAASA,EAAG4R,WAC3KC,WAAkF,QAArEZ,EAAuB,QAAjBD,EAAKT,SAA2B,IAAPS,OAAgB,EAASA,EAAG5V,YAAyB,IAAP6V,OAAgB,EAASA,EAAGY,WACtHC,WAAkF,QAArEX,EAAuB,QAAjBD,EAAKX,SAA2B,IAAPW,OAAgB,EAASA,EAAG9V,YAAyB,IAAP+V,OAAgB,EAASA,EAAGW,WACtHC,SAAgF,QAArEV,EAAuB,QAAjBD,EAAKb,SAA2B,IAAPa,OAAgB,EAASA,EAAGhW,YAAyB,IAAPiW,OAAgB,EAASA,EAAGU,SACpHC,oBAA2F,QAArET,EAAuB,QAAjBD,EAAKf,SAA2B,IAAPe,OAAgB,EAASA,EAAGlW,YAAyB,IAAPmW,OAAgB,EAASA,EAAGU,oBAC/HC,oBAA2F,QAArET,EAAuB,QAAjBD,EAAKjB,SAA2B,IAAPiB,OAAgB,EAASA,EAAGpW,YAAyB,IAAPqW,OAAgB,EAASA,EAAGU,sBAI/I,mDClBIC,ECKwB,SAAUC,QAClB,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIC,GAAY,QAAgBD,EAAQC,WAAa,GAAK,CAAC,UACvDF,EAAa,SAAUpW,GAEvB,IADA,IAAIuW,EAAW,GACNrb,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCqb,EAASrb,EAAK,GAAK2G,UAAU3G,GAEjC,IAAK,IAAImG,EAAK,EAAGmV,EAAaD,EAAUlV,EAAKmV,EAAWpb,OAAQiG,IAAM,CAClE,IAAI+D,EAAQoR,EAAWnV,GACvB,GAAI+D,EACA,IAAK,IAAIxB,EAAK,EAAGC,EAAKtB,OAAOoS,KAAKvP,GAAQxB,EAAKC,EAAGzI,OAAQwI,IAAM,CAC5D,IAAI6S,EAAW5S,EAAGD,GACd8S,EAAYtR,EAAMqR,QAEJ/V,IAAdgW,IACIA,GAA+B,iBAFZA,EAGf9c,MAAMuZ,QAAQuD,GAEd1W,EAAOyW,GAAYC,GAGnB1W,EAAOyW,GAAYzW,EAAOyW,IAAa,CAAC,EACR,iBAArBzW,EAAOyW,IACd,iBAAqBC,IACpBA,GAAkC,iBAAdA,GAA0BA,EAAU/T,eAAe,aACvC,IAAjC2T,EAAUzb,QAAQ4b,GAElBzW,EAAOyW,GAAYC,EAInBN,EAAWpW,EAAOyW,GAAWC,IAInB,cAAbD,EACDC,IAEA1W,EAAOyW,IAAY,EAAA3I,EAAA,GAAI9N,EAAOyW,GAAWC,IAI7C1W,EAAOyW,GAAYC,EAG/B,CAER,CACA,OAAO1W,CACX,EACA,OAAOoW,CACX,CDzDiBO,oCEINC,EAAgB,cAAiB,SAAUxR,EAAO8I,GACzD,ICHiC8E,EAC7BC,EDEA5R,EFAsB,SAAU+D,EAAO8I,EAAKuE,GAChD,IAAIoE,GAAU,EAAAC,EAAA,GAAc5I,EAAK,SAAa,OAC1CtN,EAAQwV,EAAW,CACnBlI,IAAK2I,EACL7V,GAAI,OACLyR,EAAcrN,GAGjB,OADA,EAAA2R,EAAA,GAAsBnW,GACf,CACHA,MAAOA,EACPwM,OAAQ,IAEhB,CEZa4J,CAAiB5R,EAAO8I,EAAK,CAGlC+I,SAAUC,EAAA,EACVC,QAAS,YACT/J,EAAS/L,EAAG+L,OAAQxM,EAAQS,EAAGT,MAQnC,OChBiCoS,EDUnBpS,EAAM0G,MAAM8P,aCTtBnE,EAAU,aAAiBH,EAAA,IACvBC,eAAeC,EAAQC,GJ8C5B,SAAiCrS,GACpC,IAAIyW,EAAUvC,EAAuBlU,GACjC8M,EAAY9M,EAAM8M,UAAWyJ,EAAUvW,EAAMuW,SA9BrD,SAA6BvW,EAAO0W,GAChC,IAAIjW,EAEAkW,EAA0B,SADhB3W,EAAMuW,QAEhB/X,EAAgC,QAAxBiC,GAAK,iBAAkC,IAAPA,OAAgB,EAASA,EAAGjC,KACxE,aAAgB,WACZ,GAAKmY,GAAgBnY,EAArB,CAGA,IAAK,IAAIlE,EAAK,EAAGsc,EAAmBF,EAAgBpc,EAAKsc,EAAiBpc,OAAQF,IAAM,CACpF,IAAIuc,EAAeD,EAAiBtc,GAChCuc,GACArY,EAAKsY,UAAUpL,IAAImL,EAE3B,CACA,OAAO,WACH,GAAKF,GAAgBnY,EAGrB,IAAK,IAAIlE,EAAK,EAAGyc,EAAmBL,EAAgBpc,EAAKyc,EAAiBvc,OAAQF,IAAM,CACpF,IAAIuc,EAAeE,EAAiBzc,GAChCuc,GACArY,EAAKsY,UAAUE,OAAOH,EAE9B,CACJ,CAjBA,CAkBJ,GAAG,CAACF,EAAanY,EAAMkY,GAC3B,CAIIO,CAAoBjX,EAAO,CAACyW,EAAQtW,KAAMsW,EAAQjY,OAClDwB,EAAM8M,WAAY,EAAAI,EAAA,GAAIJ,EAAW2J,EAAQtW,KAAkB,YAAZoW,GAAyBE,EAAQjY,KACpF,CGzCI0Y,CAAwBlX,IAExB,EAAAmX,EAAA,GAAcnX,EAAMsN,KAEbd,EAAOxM,EAClB,IACAgW,EAAcoB,YAAc,0FErBrB,SAASC,EAAU3Q,EAAO4Q,GAC7B,IAAIC,EAAQ7Q,EAAM6Q,MACdC,EAAU9Q,EAAM8Q,QAASC,EAAiB/Q,EAAM+Q,eAiHpD,OAhHqB,OAAM,CACvB3C,MAAO,CACHtW,KAAM,CACFwW,WAAYyC,EAAeC,eAC3B3C,aAAc0C,EAAeE,UAGjCC,MAAO,CACH5C,WAAYyC,EAAeI,wBAC3BC,YAAaL,EAAeM,oBAC5BhD,aAAc0C,EAAeO,kBAC7BC,UAAWT,EAAQU,MACnBC,aAAcX,EAAQU,MACtBE,sBAAuBZ,EAAQU,MAC/BG,QAAS,CACLrD,WAAYyC,EAAea,+BAC3BvD,aAAc0C,EAAec,yBAC7BH,sBAAuBZ,EAAQU,MAC/BJ,YAAa,kCAEjBU,QAAS,CACLxD,WAAYyC,EAAegB,+BAC3B1D,aAAc0C,EAAeiB,yBAC7BN,sBAAuBX,EAAeiB,yBACtCZ,YAAa,iCACbG,UAAW,gCAEfU,QAAS,CACL3D,WAAY,gCACZ8C,YAAa,iCACb/C,aAAc,kCACdkD,UAAW,+BACXG,sBAAuB,2CAE3B/R,SAAU,CACN2O,WAAYyC,EAAemB,gCAC3B7D,aAAc0C,EAAeoB,mBAC7BV,aAAcX,EAAQsB,mBACtBV,sBAAuB,2CACvBN,YAAa,yCACbG,UAAW,4CAEfc,QAAS,CACL/D,WAAYyC,EAAegB,+BAC3B1D,aAAc0C,EAAeiB,yBAC7BT,UAAWR,EAAeiB,0BAE9BM,eAAgB,CACZhE,WAAYyC,EAAegB,+BAC3B1D,aAAc0C,EAAeiB,yBAC7BT,UAAWR,EAAeiB,4BAItCla,KAAM,CACFyW,WAAYsC,EAAM0B,OAAOhE,WACzBC,WAAYqC,EAAM0B,OAAO/D,WACzBC,SAAUoC,EAAM0B,OAAO9D,SACvBE,oBAAqBkC,EAAM0B,OAAO7D,oBAClCG,oBAAqBgC,EAAM0B,OAAO3D,qBAGtC4D,KAAM,CACFC,QAAS,CACLC,QAAS,CACLjE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhB7a,KAAM,CACF2W,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBC,YAAa,CACTnE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBE,SAAU,CACNpE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBG,OAAQ,CACJrE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBI,OAAQ,CACJtE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBK,OAAQ,CACJvE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBM,WAAY,CACRxE,SAAU,OACVD,WAAY,MACZmE,WAAY,QAEhBO,QAAS,CACLzE,SAAU,OACVD,WAAY,MACZmE,WAAY,WAIzB/B,EAEP,kICpHA,IAAIuC,EAAW,SAAUC,EAAWxT,GAChC,IAAK,IAAIhM,EAAK,EAAGyf,EAASzT,EAAMhM,EAAKyf,EAAOvf,OAAQF,IAAM,CACtD,IAAI0f,EAAMD,EAAOzf,GAEjB,KADAwf,EAAYA,EAAUnH,IAAIqH,IAEtB,MAER,CACA,OAAOF,CACX,EAEIG,EAAW,SAAUH,EAAWxT,EAAMgL,GACtC,IAAK,IAAI/V,EAAI,EAAGA,EAAI+K,EAAK9L,OAAS,EAAGe,IAAK,CACtC,IAAIye,EAAM1T,EAAK/K,GACXmK,EAAUoU,EAAUnH,IAAIqH,GACvBtU,IACDA,EAAU,IAAIkN,IACdkH,EAAUjH,IAAImH,EAAKtU,IAEvBoU,EAAYpU,CAChB,CACAoU,EAAUjH,IAAIvM,EAAKA,EAAK9L,OAAS,GAAI8W,EACzC,EAOO,SAAS6C,EAAW+F,GAEvB,IAAIC,EAAQ,IAAIvH,IAChB,OAAO,SAAU6C,QACG,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAI/O,EAAQ+O,EAAQ/O,MAAO2P,EAAWZ,EAAQY,SAC1C+D,GAAM,UACNC,GAAkB,SAClBC,GAAqB,SACzB5T,EAAQA,GAAS2T,GAAmB,CAAC,EAErC,IAAIE,GADJlE,EAAYA,GAAYiE,GACN1P,QACd4P,EAA6C,mBAApBN,EACzB5T,EAAOkU,EAAkB,CAACD,EAAIH,EAAK1T,GAAS,CAAC6T,EAAIH,GACjD9I,EAAQuI,EAASM,EAAO7T,GAC5B,IAAKgL,EAAO,CACR,IAAImJ,EAASD,EAAkBN,EAAgBxT,GAASwT,EACxD5I,EAAQ+E,EAASpD,aAAawH,EAAQ,CAAEC,aAAcN,EAAKO,MAAOjU,EAAMiU,MACxEV,EAASE,EAAO7T,EAAMgL,EAC1B,CACA,OAAOA,CACX,CACJ,qMCjDO,IAAIsJ,EAAsB,SAAU5a,GACvC,IAAIS,GAAK,OAAST,GAAQE,EAAQO,EAAGP,MAAOG,EAAYI,EAAGJ,UACvDqG,EAAQ1G,EAAM0G,MAAOmU,EAAoB7a,EAAM6a,kBACnD,OAAQ,gBAAoB,IAAaC,SAAU,CAAExJ,MAAO5K,GACxD,gBAAoB,IAAqBoU,SAAU,CAAExJ,MAAOtR,EAAMqW,UAC9D,gBAAoB,IAAkByE,SAAU,CAAExJ,MAAOuJ,GACrD,gBAAoB3a,EAAMC,MAAM,QAAS,CAAC,EAAGE,EAAUF,SACvE,yGCVI4a,EAAQ,EACDzE,EAAsB,CAC7B0E,MAAO,WAEH,IAAWC,cAAcC,SAAQ,WAAc,OAAOH,GAAS,GACnE,EACAnQ,MAAO,WAAc,OAAOmQ,CAAO,EACnC9H,aAAc,SAAUkI,EAAU1F,GAE9B,OAAO,OAAczc,MAAMuZ,QAAQ4I,GAAYA,EAAW,CAACA,GAAY1F,EAC3E,EACA2F,eAAgB,SAAUC,EAAU5F,GAChC,OAAO,OAAc4F,EACzB,EACAC,gBAAiB,SAAUC,GAEvB,OAAO,OAAeA,EAC1B,oFClBOC,EAAuB,gBAAoB,KAC3CC,EAAmB,WAAc,OAAO,aAAiBD,EAAuB,+ICUpF,IAAIE,EAAW,WAClB,IAAIhV,GAAQ,IAAAiV,YAAW,KACnBC,GAPG,OAAyB,CAAC,UAAUlV,MAQ3C,OAAOA,GAASkV,IAAe,OAAY,CAAC,EAChD,2KCZA,IAAIC,EAAe,IAAIjJ,IAoBZuD,EAAwB,SAAU2F,GACzC,IAAIC,EAAYD,EAAWpV,MAEvBsV,GAAc,SAEdtV,EAASoV,EAAWpV,MAAQ,WAAc,WAC1C,IAAIjG,EACAwb,GAAc,OAAYD,EAAaD,GAG3C,OAFAE,EAAYtI,QAAS,OAAUsI,EAAkC,QAApBxb,EAAKsb,SAA8B,IAAPtb,OAAgB,EAASA,EAAGkT,QACrGsI,EAAY1B,GA5BH,WAEb,IADA,IAAI2B,EAAS,GACJ5hB,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpC4hB,EAAO5hB,GAAM2G,UAAU3G,GAG3B,IADA,IAAI6hB,EAAM,GACD1b,EAAK,EAAG2b,EAAWF,EAAQzb,EAAK2b,EAAS5hB,OAAQiG,IAAM,CAC5D,IAAIiG,EAAQ0V,EAAS3b,GACrB,GAAIiG,EAAO,CACP,IAAI6T,EAAK7T,EAAM6T,IAAMsB,EAAalJ,IAAIjM,GACjC6T,IACDA,GAAK,OAAM,IACXsB,EAAahJ,IAAInM,EAAO6T,IAE5B4B,EAAIhiB,KAAKogB,EACb,CACJ,CACA,OAAO4B,EAAI9I,KAAK,IACpB,CAUyBgJ,CAAWL,EAAaD,GAClCE,CACX,GAAG,CAACD,EAAaD,IACjBD,EAAWjB,kBAAoB,WAAc,WAAc,MAAO,CAC9DyB,eAAgB,CACZC,qBAAqB,EACrBC,SAAU,CAAE9V,MAAOA,GACnB+V,eAAgB/V,EAAMgW,YAAc,CAAC,GAEzC,GAAG,CAAChW,IACJoV,EAAWpV,MAAMiU,MAAQqB,EAAYrB,MACrCmB,EAAWa,IAAMb,EAAWpV,MAAMiU,IAAM,MAAQ,MAExD,kDClBO,IAAI3Y,EAAW,WAQlB,OAPAA,EAAWL,OAAOM,QAAU,SAAkBC,GAC1C,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KAAII,EAAEJ,GAAKf,EAAEe,IAE9E,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,4FClCW2b,EAAgB,gBAAoB,CAC3C7Y,OAA0B,iBAAXA,OAAsBA,YAASjE,IAKvC+c,EAAY,WAAc,OAAO,aAAiBD,GAAe7Y,MAAQ,EAIzE+Y,EAAc,WAAc,IAAIrc,EAAI,OAAyD,QAAjDA,EAAK,aAAiBmc,GAAe7Y,cAA2B,IAAPtD,OAAgB,EAASA,EAAGlC,QAAU,EAM3Iwe,EAAiB,SAAUvY,GAClC,OAAO,gBAAoBoY,EAAc9B,SAAU,CAAExJ,MAAO9M,GAASA,EAAM7F,SAC/E,4ICpBA,IAAIqe,EAAgB,CAAC,EAEjBC,OAAOnd,EACX,IACImd,EAAOlZ,MACX,CACA,MAAOmZ,GAEP,CACO,SAASC,EAAWC,EAAaC,GACpC,QAAoB,IAATJ,EAAsB,CAE7B,IAAIK,EAAYL,EAAKM,aAAeN,EAAKM,cAAgB,CAAC,EAGrDD,EAASF,IAAiBJ,EAAcI,KACzCJ,EAAcI,GAAeC,GACbC,EAASF,GAAeE,EAASF,IAAgB,IACxDjjB,KAAKkjB,GAEtB,CACJ,CCrBAF,EAAW,wBAAyB,SCCpCA,EAAW,kBAAmB,8DCFnBK,GAAc,aAAY,CAAC,kDCC/B,IAAIC,EAAiB,CACxBC,YAAa,UACbC,UAAW,UACXC,aAAc,UACdC,aAAc,UACdC,eAAgB,UAChBC,cAAe,UACfC,WAAY,UACZC,aAAc,UACdC,gBAAiB,UACjBC,MAAO,UACPC,mBAAoB,iBACpBC,YAAa,UACbC,eAAgB,UAChBC,kBAAmB,UACnBC,iBAAkB,UAClBC,oBAAqB,UACrBC,gBAAiB,UACjB5F,mBAAoB,UACpB6F,kBAAmB,UACnBC,qBAAsB,UACtBC,aAAc,UACdC,eAAgB,UAChBC,kBAAmB,UACnBC,OAAQ,UACR9G,MAAO,UACP+G,mBAAoB,uBACpBC,WAAY,UACZC,OAAQ,UACRC,YAAa,UACbC,OAAQ,UACRC,YAAa,UACbC,cAAe,UACfC,QAAS,UACTC,IAAK,UACLC,YAAa,UACbC,QAAS,UACTC,aAAc,UACdC,WAAY,UACZC,OAAQ,UACRC,YAAa,UACbC,SAAU,UACVC,QAAS,UACTC,KAAM,UACNC,UAAW,UACXC,SAAU,UACVC,KAAM,UACNC,UAAW,UACXC,UAAW,UACXC,MAAO,UACPC,WAAY,yCCpDT,IAAIC,EAWAC,EA2BAC,sCArCX,SAAWF,GACPA,EAAoBG,QAAU,UAC9BH,EAAoBI,QAAU,UAC9BJ,EAAoBK,QAAU,UAC9BL,EAAoBM,QAAU,UAC9BN,EAAoBO,OAAS,UAC7BP,EAAoBQ,OAAS,UAC7BR,EAAoBS,OAAS,UAC7BT,EAAoBU,OAAS,SAChC,CATD,CASGV,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAAcxC,MAAQ,UACtBwC,EAAcU,QAAU,UACxBV,EAAcW,QAAU,UACxBX,EAAcY,QAAU,UACxBZ,EAAca,QAAU,UACxBb,EAAcc,QAAU,UACxBd,EAAce,QAAU,UACxBf,EAAcgB,QAAU,UACxBhB,EAAciB,QAAU,UACxBjB,EAAckB,QAAU,UACxBlB,EAAcmB,QAAU,UACxBnB,EAAcoB,QAAU,UACxBpB,EAAcqB,QAAU,UACxBrB,EAAcsB,QAAU,UACxBtB,EAAcuB,OAAS,UACvBvB,EAAcwB,OAAS,UACvBxB,EAAcyB,OAAS,UACvBzB,EAAc0B,OAAS,UACvB1B,EAAc2B,OAAS,UACvB3B,EAAc4B,OAAS,UACvB5B,EAAc6B,OAAS,UACvB7B,EAAc8B,OAAS,UACvB9B,EAAc+B,OAAS,UACvB/B,EAAczI,MAAQ,SACzB,CAzBD,CAyBGyI,IAAkBA,EAAgB,CAAC,IAEtC,SAAWC,GACPA,EAAa+B,UAAY,UACzB/B,EAAagC,MAAQ,UACrBhC,EAAaiC,MAAQ,UACrBjC,EAAakC,YAAc,UAC3BlC,EAAamC,YAAc,UAC3BnC,EAAaoC,SAAW,UACxBpC,EAAaqC,SAAW,UACxBrC,EAAasC,SAAW,UACxBtC,EAAauC,SAAW,UACxBvC,EAAawC,eAAiB,UAC9BxC,EAAayC,eAAiB,UAC9BzC,EAAa0C,cAAgB,UAC7B1C,EAAa2C,QAAU,UACvB3C,EAAa4C,QAAU,UACvB5C,EAAa6C,YAAc,UAC3B7C,EAAa8C,OAAS,UACtB9C,EAAa+C,OAAS,UACtB/C,EAAagD,OAAS,UACtBhD,EAAaiD,OAAS,UACtBjD,EAAakD,WAAa,UAC1BlD,EAAamD,WAAa,UAC1BnD,EAAaoD,OAAS,UACtBpD,EAAaqD,cAAgB,UAC7BrD,EAAasD,cAAgB,UAC7BtD,EAAauD,cAAgB,UAC7BvD,EAAawD,cAAgB,UAC7BxD,EAAayD,UAAY,UACzBzD,EAAa0D,UAAY,UACzB1D,EAAa2D,cAAgB,UAC7B3D,EAAa4D,cAAgB,UAC7B5D,EAAa2B,OAAS,UACtB3B,EAAa4B,OAAS,UACtB5B,EAAa6B,OAAS,UACtB7B,EAAa8B,OAAS,SACzB,CAnCD,CAmCG9B,IAAiBA,EAAe,CAAC,oNC/D7B,SAAS6D,EAAY/d,EAAOge,QACjB,IAAVhe,IAAoBA,EAAQ,CAAC,QACb,IAAhBge,IAA0BA,GAAc,GAC5C,IAAIC,IAAeje,EAAMie,WACrBC,EAAY,CACZpN,QAAS,IACTqN,QAAS,IACTtN,MAAO,IACPuN,QAAS,IACTH,WAAYA,EACZI,yBAAyB,EACzBtN,gBAAgB,OAAmB,IAAgB,SAAgB3X,EAAW6kB,EAAYD,GAC1F/J,SAAK7a,GAET,OAAO,OAAY8kB,EAAWle,EAClC,+DCzBWse,EAAiB,CACxBC,WAAY,IAAOC,OACnBC,WAAY,IAAOC,OACnBC,YAAa,IAAOC,QACpBC,YAAa,IAAOC,QACpBC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,oCCRb,IAAIC,mBACX,SAAWA,GACPA,EAAOC,OAAS,sBAChBD,EAAOV,OAAS,6EAChBU,EAAOR,OAAS,6EAChBQ,EAAON,QAAU,8EACjBM,EAAOJ,QAAU,6EACpB,CAND,CAMGI,IAAWA,EAAS,CAAC,+DCgDhBnlB,EAAIuC,EAAIC,yDAhDL6iB,GAAoB,QAAiB,OAAY,mBAC5D,SAASC,EAAkB9Q,EAAY+Q,EAAK9Q,EAAY+Q,GACpDhR,EAAa,IAAMA,EAAa,IAChC,IAAIiR,OAAiCpmB,IAAlBmmB,EAA8B,UAAYA,EAAgB,MAAQ,IACrF,OAAS,CACLhR,WAAYA,EACZkR,IAAKD,EAAgB,QAAUF,EAA1BE,iCAA0EF,EAAM,yBACrF9Q,WAAYA,EACZkR,UAAW,SACXC,YAAa,QAErB,CACA,SAASC,EAAqBC,EAAStR,EAAYuR,EAAWC,EAAaR,QACnD,IAAhBQ,IAA0BA,EAAc,WAC5C,IAAIC,EAAUH,EAAU,IAAMC,EAAY,IAAMC,EAChDV,EAAkB9Q,EAAYyR,EAAU,SAAU,KAAYC,MAAOV,GAAiBA,EAAgB,UACtGF,EAAkB9Q,EAAYyR,EAAU,aAAc,KAAYE,UAAWX,GAAiBA,EAAgB,cAC9GF,EAAkB9Q,EAAYyR,EAAU,WAAY,KAAYG,QAASZ,GACzEF,EAAkB9Q,EAAYyR,EAAU,YAAa,KAAYI,SAAUb,GAAiBA,EAAgB,aAC5GF,EAAkB9Q,EAAYyR,EAAU,QAAS,KAAYK,KAAMd,GAAiBA,EAAgB,QACxG,CACO,SAASe,EAAyBT,GACrC,GAAIA,EAAS,CACT,IAAIU,EAAUV,EAAU,SAExBD,EAAqBW,EAAS,KAAmBC,KAAM,oBAAqB,gBAC5EZ,EAAqBW,EAAS,KAAmBE,OAAQ,kBACzDb,EAAqBW,EAAS,KAAmBG,SAAU,oBAC3Dd,EAAqBW,EAAS,KAAmBI,aAAc,wBAC/Df,EAAqBW,EAAS,KAAmBK,MAAO,iBACxDhB,EAAqBW,EAAS,KAAmBM,OAAQ,kBACzDjB,EAAqBW,EAAS,KAAmBO,WAAY,sBAC7DlB,EAAqBW,EAAS,KAAmBQ,aAAc,uBAAwB,UAAW,YAClGnB,EAAqBW,EAAS,KAAsBS,QAAS,UAAW,WACxEpB,EAAqBW,EAAS,KAAmBU,SAAU,oBAC3DrB,EAAqBW,EAAS,KAAmBW,SAAU,oBAG3D7B,EAAkB,oBAAqBkB,EAAU,4CAA6C,KAAYN,OAG1GZ,EAAkB,oBAAqBkB,EAAU,uCAAwC,KAAYH,SACzG,CACJ,CAaAE,EAL0F/jB,OAA/EA,EAA6B,QAAvBD,EAD6B,QAAtBvC,GAAK,gBAAgC,IAAPA,OAAgB,EAASA,EAAGonB,oBAC3B,IAAP7kB,OAAgB,EAASA,EAAG8kB,aAA6C7kB,EArDpG,0FCJd,IAAI8kB,EAeAC,EAoBAC,EA6BAC,EASAC,uDAxEX,SAAWJ,GACPA,EAAmBZ,OAAS,wBAC5BY,EAAmBX,SAAW,0BAC9BW,EAAmBV,aAAe,+BAClCU,EAAmBT,MAAQ,uBAC3BS,EAAmBR,OAAS,wBAC5BQ,EAAmBb,KAAO,oBAC1Ba,EAAmBP,WAAa,4BAChCO,EAAmBN,aAAe,+BAClCM,EAAmBL,QAAU,cAC7BK,EAAmBJ,SAAW,0BAC9BI,EAAmBH,SAAW,yBACjC,CAZD,CAYGG,IAAuBA,EAAqB,CAAC,IAGhD,SAAWC,GACPA,EAAsBb,OAAS,IAAMY,EAAmBZ,OAAS,IACjEa,EAAsBI,kBAAoB,wCAC1CJ,EAAsBK,mBAAqB,oCAC3CL,EAAsBZ,SAAW,IAAMW,EAAmBX,SAAW,IACrEY,EAAsBX,aAAe,IAAMU,EAAmBV,aAAe,IAC7EW,EAAsBV,MAAQ,IAAMS,EAAmBT,MAAQ,IAC/DU,EAAsBT,OAAS,IAAMQ,EAAmBR,OAAS,IACjES,EAAsBM,MAAQ,eAC9BN,EAAsBO,SAAW,2DACjCP,EAAsBQ,OAAS,yBAC/BR,EAAsBN,QAAU,IAAMK,EAAmBL,QAAU,IACnEM,EAAsBd,KAAO,iCAC7Bc,EAAsBR,WAAa,IAAMO,EAAmBP,WAAa,IACzEQ,EAAsBP,aAAe,IAAMM,EAAmBN,aAAe,IAC7EO,EAAsBL,SAAW,IAAMI,EAAmBJ,SAAW,IACrEK,EAAsBJ,SAAW,IAAMG,EAAmBH,SAAW,GACxE,CAjBD,CAiBGI,IAA0BA,EAAwB,CAAC,IAGtD,SAAWC,GACPA,EAAUQ,OAAS,OACnBR,EAAUS,OAAS,OACnBT,EAAUU,OAAS,OACnBV,EAAUW,OAAS,OACnBX,EAAUY,OAAS,OACnBZ,EAAUa,OAAS,OACnBb,EAAUc,OAAS,OACnBd,EAAUe,OAAS,OACnBf,EAAUgB,OAAS,OACnBhB,EAAUiB,OAAS,OACnBjB,EAAUkB,OAAS,OACnBlB,EAAUmB,KAAO,OACjBnB,EAAUoB,OAAS,OACnBpB,EAAUqB,MAAQ,OAClBrB,EAAUsB,UAAY,OACtBtB,EAAUhP,OAAS,OACnBgP,EAAUuB,WAAa,OACvBvB,EAAUwB,KAAO,OACjBxB,EAAUyB,MAAQ,OAClBzB,EAAU0B,OAAS,OACnB1B,EAAU2B,WAAa,OACvB3B,EAAU4B,QAAU,OACpB5B,EAAU6B,YAAc,OACxB7B,EAAU8B,WAAa,OACvB9B,EAAU+B,KAAO,MACpB,CA1BD,CA0BG/B,IAAcA,EAAY,CAAC,IAG9B,SAAWC,GACPA,EAAYvB,MAAQ,IACpBuB,EAAYtB,UAAY,IACxBsB,EAAYrB,QAAU,IACtBqB,EAAYpB,SAAW,IACvBoB,EAAYnB,KAAO,GACtB,CAND,CAMGmB,IAAgBA,EAAc,CAAC,IAGlC,SAAWC,GACPA,EAAckB,OAAS,OACvBlB,EAAcmB,MAAQ,OACtBnB,EAAclP,OAAS,OACvBkP,EAAcuB,MAAQ,MACzB,CALD,CAKGvB,IAAkBA,EAAgB,CAAC,kEC9ElC8B,EAAsB,wFAGtBC,EAAoB,gBAAkB,KAAmBzC,aAAe,IAExE0C,EAAoB,CACpBC,GAAI,KAAsBjD,OAC1BkD,GAAI,KAAsBjD,SAC1BkD,GAAI,KAAsBjD,aAC1BkD,GAAI,KAAsBjD,MAC1BkD,GAAI,KAAsBnD,aAC1BoD,GAAI,KAAsBlD,OAC1BmD,GAAI,KAAsBpC,MAC1BqC,GAAI,KAAsBtD,aAC1BuD,GAAI,KAAsBvD,aAC1BwD,GAAI,KAAsBtC,SAC1BuC,GAAI,KAAsBzD,aAC1B0D,GAAI,KAAsBvC,OAC1BwC,GAAI,KAAsB3D,aAC1B4D,GAAI,KAAsB5D,aAC1B6D,GAAI,KAAsB7D,aAC1B8D,GAAI,KAAsB/D,SAC1BgE,GAAI,KAAsB/D,aAC1B,UAAW,KAAsBA,aACjCgE,GAAI,KAAsBnE,KAC1BoE,GAAI,KAAsBjE,aAC1BkE,GAAI,KAAsBnE,SAC1BoE,GAAI,KAAsBhE,WAC1B,UAAW,KAAsBY,kBACjC,UAAW,KAAsBC,mBACjCoD,GAAI,KAAsB9D,SAC1B+D,GAAI,KAAsB9D,UAkB9B,SAAS+D,EAAYzgB,EAAM0gB,EAAQ3W,GAC/B,MAAO,CACHA,WAAYA,EACZG,oBAAqB,YACrBE,oBAAqB,cACrBH,SAAUjK,EACVgK,WAAY0W,EAEpB,CACO,SAASC,EAAiBC,GAC7B,IACIC,EApBR,SAAiCC,GAC7B,IAAK,IAAIC,KAAQ9B,EACb,GAAIA,EAAkBpoB,eAAekqB,IAASD,GAAuC,IAA3BC,EAAKhyB,QAAQ+xB,GAEnE,OAAO7B,EAAkB8B,GAGjC,OAAO/B,CACX,CAWwBgC,CAAwBJ,GAzBxB,KAAO7B,EA0C3B,MAfiB,CACbkC,KAAMR,EAAY,IAAUvC,KAAM,KAAYvC,QAASkF,GACvD1C,OAAQsC,EAAY,IAAUtC,OAAQ,KAAYxC,QAASkF,GAC3DzC,MAAOqC,EAAY,IAAUrC,MAAO,KAAYzC,QAASkF,GACzDxC,UAAWoC,EAAY,IAAUpC,UAAW,KAAY1C,QAASkF,GACjE9S,OAAQ0S,EAAY,IAAU1S,OAAQ,KAAY4N,QAASkF,GAC3DvC,WAAYmC,EAAY,IAAUnC,WAAY,KAAY3C,QAASkF,GACnErC,MAAOiC,EAAY,IAAUjC,MAAO,KAAY7C,QAASkF,GACzDpC,OAAQgC,EAAY,IAAUhC,OAAQ,KAAY7C,SAAUiF,GAC5DnC,WAAY+B,EAAY,IAAU/B,WAAY,KAAY9C,SAAUiF,GACpElC,QAAS8B,EAAY,IAAU9B,QAAS,KAAY/C,SAAUiF,GAC9DjC,YAAa6B,EAAY,IAAU7B,YAAa,KAAYhD,SAAUiF,GACtEhC,WAAY4B,EAAY,IAAU5B,WAAY,KAAYjD,SAAUiF,GACpE/B,KAAM2B,EAAY,IAAU3B,KAAM,KAAYlD,SAAUiF,GAGhE,uGC1EO,SAASK,EAAY1lB,EAAO2lB,GAE/B,IAAI5rB,EAAIuC,EAAIC,EAAIC,OADK,IAAjBmpB,IAA2BA,EAAe,CAAC,GAE/C,IAAIpQ,GAAc,OAAM,CAAC,EAAGvV,EAAO2lB,EAAc,CAC7C5U,gBAAgB,OAAkB4U,EAAa7U,QAAS6U,EAAaxH,QAASwH,EAAa5U,oBAA4C3X,IAA5BusB,EAAa1H,WAA2Bje,EAAMie,WAAa0H,EAAa1H,cAKvL,IAHqC,QAA/BlkB,EAAK4rB,EAAa7U,eAA4B,IAAP/W,OAAgB,EAASA,EAAGod,iBAAmD,QAA/B7a,EAAKqpB,EAAa7U,eAA4B,IAAPxU,OAAgB,EAASA,EAAGgc,UAC5J/C,EAAYzE,QAAQwH,OAASqN,EAAa7U,QAAQqG,cAElDwO,EAAaC,iBACb,IAAK,IAAIhyB,EAAK,EAAG6I,EAAKxB,OAAOoS,KAAKkI,EAAY1E,OAAQjd,EAAK6I,EAAG3I,OAAQF,IAAM,CACxE,IAAI8rB,EAAYjjB,EAAG7I,GACnB2hB,EAAY1E,MAAM6O,IAAa,OAAMnK,EAAY1E,MAAM6O,GAAYiG,EAAaC,iBAA+F,QAA5EppB,EAA6B,QAAvBD,EAAKopB,SAAiC,IAAPppB,OAAgB,EAASA,EAAGsU,aAA0B,IAAPrU,OAAgB,EAASA,EAAGkjB,GACvN,CAKJ,OAHIiG,EAAa7V,cACbyF,EAAYzF,aAAe9P,EAAM8P,aAAe,IAAI+V,OAAOF,EAAa7V,cAErEyF,CACX,sECtBIuQ,EAAoB,2BACpBC,EAAoB,8BACpBC,EAAa,SACbC,EAAa,SACbC,EAAa,SACbC,EAAa,SACbC,GAAU,OAAU,CACpBC,KAAM,CAAEC,QAAS,GACjBC,GAAI,CAAED,QAAS,KAEfE,GAAW,OAAU,CACrBH,KAAM,CAAEC,QAAS,GACjBC,GAAI,CAAED,QAAS,EAAGG,WAAY,YAE9BC,EAAmBC,GAAiB,IACpCC,EAAmBD,GAAiB,IACpCE,EAAmBF,GAAiB,IACpCG,EAAoBH,GAAiB,KACrCI,EAAkBJ,EAAgB,IAClCK,EAAkBL,EAAgB,IAClCM,EAAkBN,EAAgB,IAClCO,EAAmBP,EAAgB,KACnCQ,EAAgBC,EAAgB,IAChCC,EAAgBD,EAAgB,IAChCE,EAAkBF,GAAiB,IACnCG,EAAkBH,GAAiB,IACnCI,EAAoBC,EAAiB,IACrCC,EAAoBD,EAAiB,IACrCE,EAAoBF,EAAiB,IACrCG,EAAqBH,EAAiB,KACtCI,EAAmBJ,GAAkB,IACrCK,EAAmBL,GAAkB,IACrCM,EAAmBN,GAAkB,IACrCO,EAAoBP,GAAkB,KACtCQ,EAAiBC,GAAkB,IACnCC,EAAiBD,GAAkB,IACnCE,EAAmBF,EAAiB,IACpCG,EAAmBH,EAAiB,IACpCI,GAAc,OAAU,CACxBjC,KAAM,CAAEkC,UAAW,sBACnBhC,GAAI,CAAEgC,UAAW,oBAEjBC,GAAe,OAAU,CACzBnC,KAAM,CAAEkC,UAAW,kBACnBhC,GAAI,CAAEgC,UAAW,wBAEjBE,GAAgB,OAAU,CAC1BpC,KAAM,CAAEkC,UAAW,wBACnBhC,GAAI,CAAEgC,UAAW,oBAEjBG,GAAc,OAAU,CACxBrC,KAAM,CAAEkC,UAAW,kBACnBhC,GAAI,CAAEgC,UAAW,0BAEjBI,GAAW,OAAU,CACrBtC,KAAM,CAAEkC,UAAW,iBACnBhC,GAAI,CAAEgC,UAAW,oBAEjBK,GAAa,OAAU,CACvBvC,KAAM,CAAEkC,UAAW,iBACnBhC,GAAI,CAAEgC,UAAW,qBAKVM,EAAqB,CAC5BC,cAAehD,EACfiD,cAAehD,EACfiD,eAAgBhD,EAChBiD,eAAgBhD,EAChBiD,eAAgBhD,EAChBiD,eAAgBhD,GAMTiD,EAAkB,CACzBC,eAAgBC,EAAiBlD,EAAU,IAAMM,EAAkBR,EAAYJ,GAC/EyD,eAAgBD,EAAiBlD,EAAU,IAAMQ,EAAkBV,EAAYJ,GAC/E0D,eAAgBF,EAAiBlD,EAAU,IAAMS,EAAkBX,EAAYJ,GAC/E2D,gBAAiBH,EAAiBlD,EAAU,IAAMU,EAAmBZ,EAAYJ,GACjF4D,cAAeJ,EAAiBlD,EAAU,IAAMW,EAAiBb,EAAYJ,GAC7E6D,cAAeL,EAAiBlD,EAAU,IAAMY,EAAiBd,EAAYJ,GAC7E8D,cAAeN,EAAiBlD,EAAU,IAAMa,EAAiBf,EAAYJ,GAC7E+D,eAAgBP,EAAiBlD,EAAU,IAAMc,EAAkBhB,EAAYJ,GAC/EgE,YAAaR,EAAiBlD,EAAU,IAAMe,EAAejB,EAAYJ,GACzEiE,YAAaT,EAAiBlD,EAAU,IAAMiB,EAAenB,EAAYJ,GACzEkE,cAAeV,EAAiBlD,EAAU,IAAMkB,EAAiBpB,EAAYJ,GAC7EmE,cAAeX,EAAiBlD,EAAU,IAAMmB,EAAiBrB,EAAYJ,GAC7EoE,gBAAiBZ,EAAiB9C,EAAW,IAAMgB,EAAmBtB,EAAYJ,GAClFqE,gBAAiBb,EAAiB9C,EAAW,IAAMkB,EAAmBxB,EAAYJ,GAClFsE,gBAAiBd,EAAiB9C,EAAW,IAAMmB,EAAmBzB,EAAYJ,GAClFuE,iBAAkBf,EAAiB9C,EAAW,IAAMoB,EAAoB1B,EAAYJ,GACpFwE,eAAgBhB,EAAiB9C,EAAW,IAAMqB,EAAkB3B,EAAYJ,GAChFyE,eAAgBjB,EAAiB9C,EAAW,IAAMsB,EAAkB5B,EAAYJ,GAChF0E,eAAgBlB,EAAiB9C,EAAW,IAAMuB,EAAkB7B,EAAYJ,GAChF2E,gBAAiBnB,EAAiB9C,EAAW,IAAMwB,EAAmB9B,EAAYJ,GAClF4E,aAAcpB,EAAiB9C,EAAW,IAAMyB,EAAgB/B,EAAYJ,GAC5E6E,aAAcrB,EAAiB9C,EAAW,IAAM2B,EAAgBjC,EAAYJ,GAC5E8E,eAAgBtB,EAAiB9C,EAAW,IAAM4B,EAAkBlC,EAAYJ,GAChF+E,eAAgBvB,EAAiB9C,EAAW,IAAM6B,EAAkBnC,EAAYJ,GAChFgF,aAAcxB,EAAiBlD,EAAU,IAAMkC,EAAapC,EAAYJ,GACxEiF,eAAgBzB,EAAiBlD,EAAU,IAAMqC,EAAevC,EAAYJ,GAC5EkF,cAAe1B,EAAiB9C,EAAW,IAAMkC,EAAa1C,EAAYD,GAC1EkF,eAAgB3B,EAAiB9C,EAAW,IAAMgC,EAAcxC,EAAYD,GAC5EmF,UAAW5B,EAAiBlD,EAASJ,EAAYD,GACjDoF,UAAW7B,EAAiBlD,EAASH,EAAYF,GACjDqF,UAAW9B,EAAiBlD,EAASF,EAAYH,GACjDsF,UAAW/B,EAAiBlD,EAASD,EAAYJ,GACjDuF,WAAYhC,EAAiB9C,EAAUR,EAAYD,GACnDwF,WAAYjC,EAAiB9C,EAAUP,EAAYF,GACnDyF,WAAYlC,EAAiB9C,EAAUN,EAAYH,GACnD0F,WAAYnC,EAAiB9C,EAAUL,EAAYJ,GACnD2F,YAAapC,EAAiBX,EAAU,OAAQ5C,GAChD4F,aAAcrC,EAAiBV,EAAY,OAAQ7C,IAEvD,SAASuD,EAAiBsC,EAAeC,EAAmBC,GACxD,MAAO,CACHF,cAAeA,EACfC,kBAAmBA,EACnBC,wBAAyBA,EACzBC,kBAAmB,OAE3B,CACA,SAASpF,EAAgBqF,GACrB,OAAO,OAAU,CACb3F,KAAM,CAAEkC,UAAW,eAAiByD,EAAQ,UAAWC,cAAe,QACtE1F,GAAI,CAAEgC,UAAW,qBAAsB0D,cAAe,SAE9D,CACA,SAAS7E,EAAgB8E,GACrB,OAAO,OAAU,CACb7F,KAAM,CAAEkC,UAAW,iBAAmB2D,EAAQ,QAASD,cAAe,QACtE1F,GAAI,CAAEgC,UAAW,qBAAsB0D,cAAe,SAE9D,CACA,SAASxE,EAAiB0E,GACtB,OAAO,OAAU,CACb9F,KAAM,CAAEkC,UAAW,sBACnBhC,GAAI,CAAEgC,UAAW,eAAiB4D,EAAM,YAEhD,CACA,SAASjE,EAAiBkE,GACtB,OAAO,OAAU,CACb/F,KAAM,CAAEkC,UAAW,sBACnBhC,GAAI,CAAEgC,UAAW,iBAAmB6D,EAAM,UAElD,uECrGWC,EAOAC,EAUAC,aAjEPC,GAAsB,OAAU,CAChCnG,KAAM,CAAEC,QAAS,GACjBC,GAAI,CAAED,QAAS,KAEfmG,GAAuB,OAAU,CACjCpG,KAAM,CAAEC,QAAS,GACjBC,GAAI,CAAED,QAAS,KAEfoG,GAA2B,OAAU,CACrCrG,KAAM,CAAEkC,UAAW,0BACnBhC,GAAI,CAAEgC,UAAW,sBAEjBoE,GAA4B,OAAU,CACtCtG,KAAM,CAAEkC,UAAW,oBACnBhC,GAAI,CAAEgC,UAAW,0BAEjBqE,GAA4B,OAAU,CACtCvG,KAAM,CAAEkC,UAAW,wBACnBhC,GAAI,CAAEgC,UAAW,8BAEjBsE,GAA6B,OAAU,CACvCxG,KAAM,CAAEkC,UAAW,wBACnBhC,GAAI,CAAEgC,UAAW,6BAEjBuE,GAA2B,OAAU,CACrCzG,KAAM,CAAEkC,UAAW,2BACnBhC,GAAI,CAAEgC,UAAW,0BAEjBwE,GAA4B,OAAU,CACtC1G,KAAM,CAAEkC,UAAW,4BACnBhC,GAAI,CAAEgC,UAAW,0BAEjByE,GAA0B,OAAU,CACpC3G,KAAM,CAAEkC,UAAW,wBACnBhC,GAAI,CAAEgC,UAAW,8BAEjB0E,GAA4B,OAAU,CACtC5G,KAAM,CAAEkC,UAAW,wBACnBhC,GAAI,CAAEgC,UAAW,6BAEjB2E,GAAyB,OAAU,CACnC7G,KAAM,CAAEkC,UAAW,2BACnBhC,GAAI,CAAEgC,UAAW,0BAEjB4E,GAA2B,OAAU,CACrC9G,KAAM,CAAEkC,UAAW,4BACnBhC,GAAI,CAAEgC,UAAW,0BAgBrB,SAASe,EAAiBsC,EAAeC,EAAmBC,GACxD,OAAOF,EAAgB,IAAMC,EAAoB,IAAMC,CAC3D,EAfA,SAAWO,GACPA,EAAgBe,UAAY,QAC5Bf,EAAgBgB,UAAY,QAC5BhB,EAAgBiB,UAAY,QAC5BjB,EAAgBkB,UAAY,OAC/B,CALD,CAKGlB,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAckB,WAAa,iCAC3BlB,EAAcmB,WAAa,iCAC3BnB,EAAcoB,OAAS,2BACvBpB,EAAcqB,SAAW,8BAC5B,CALD,CAKGrB,IAAkBA,EAAgB,CAAC,IAKtC,SAAWC,GACPA,EAAiBqB,OAAStE,EAAiBkD,EAAqBH,EAAgBe,UAAWd,EAAcoB,QACzGnB,EAAiBsB,QAAUvE,EAAiBmD,EAAsBJ,EAAgBe,UAAWd,EAAcoB,QAC3GnB,EAAiBuB,YAAcxE,EAAiBoD,EAA0BL,EAAgBiB,UAAWhB,EAAcmB,YACnHlB,EAAiBwB,aAAezE,EAAiBqD,EAA2BN,EAAgBiB,UAAWhB,EAAcmB,YACrHlB,EAAiByB,aAAe1E,EAAiBsD,EAA2BP,EAAgBe,UAAWd,EAAckB,YACrHjB,EAAiB0B,cAAgB3E,EAAiBuD,EAA4BR,EAAgBe,UAAWd,EAAckB,YACvHjB,EAAiB2B,YAAc5E,EAAiBwD,EAA0BT,EAAgBe,UAAWd,EAAcmB,YACnHlB,EAAiB4B,aAAe7E,EAAiByD,EAA2BV,EAAgBe,UAAWd,EAAcmB,YACrHlB,EAAiB6B,WAAa9E,EAAiB0D,EAAyBX,EAAgBe,UAAWd,EAAckB,YACjHjB,EAAiB8B,aAAe/E,EAAiB2D,EAA2BZ,EAAgBe,UAAWd,EAAckB,YACrHjB,EAAiB+B,UAAYhF,EAAiB4D,EAAwBb,EAAgBe,UAAWd,EAAcmB,YAC/GlB,EAAiBgC,YAAcjF,EAAiB6D,EAA0Bd,EAAgBe,UAAWd,EAAcmB,WACtH,CAbD,CAaGlB,IAAqBA,EAAmB,CAAC,mDChFrC,IAAIiC,EAAiB,CACxBC,GAAI,MACJC,GAAI,MACJC,EAAG,OACHC,GAAI,OACJC,GAAI,0FCAD,SAASC,EAAmB1zB,EAAGob,EAAGnc,EAAG4jB,EAAYD,GAMpD,YALoB,IAAhBA,IAA0BA,GAAc,GAqJhD,SAA6B3jB,EAAG2jB,GAE5B,IAAI+Q,EAAM,GAWV,OAVoB,IAAhB/Q,IACA+Q,EAAM,sBAGV10B,EAAE20B,cAAgB30B,EAAE40B,SAAWF,EAC/B10B,EAAE60B,2BAA6BH,EAC/B10B,EAAE80B,kBAAoBJ,EACtB10B,EAAE+0B,YAAc/0B,EAAEg1B,YAAcN,EAChC10B,EAAEi1B,aAAeP,EAEV10B,CACX,CA9JWk1B,CADkBC,EAAkBp0B,EAAGob,GAHzB,QAAS,CAAEnF,oBAAqB,cAAeoe,UAAYxR,EAAyB,UAAZ,UAAuBoR,YAAcpR,EAAyB,UAAZ,UAAuByR,YAAczR,EAAyB,UAAZ,UAAuB0R,mBAAqB1R,EAAyB,UAAZ,UAAuB2R,SAAW3R,EAAyB,UAAZ,UAAuB4R,UAAY5R,EAAyB,UAAZ,UAAuB6R,aAAe7R,EAAyB,UAAZ,UAAuB8R,YAAc9R,EAAyB,UAAZ,UAAuB+R,kBAAoB/R,EAAyB,UAAZ,UAAuBgS,YAAchS,EAAyB,UAAZ,UAAuBiS,eAAiBjS,EAAyB,UAAZ,UAAuBkS,gBAAkBlS,EAAyB,UAAZ,UAAuBmS,mBAAqBnS,EAAyB,UAAZ,UAAuBoS,kBAAoBpS,EAAyB,UAAZ,UAAuBqS,wBAA0BrS,EAAyB,UAAZ,UAAuBsS,kBAAoBtS,EAAyB,UAAZ,UAEt3BkR,iBAAmBlR,EAAyB,UAAZ,UAAuBqR,YAAcrR,EAAyB,UAAZ,WAAyB5jB,GAC9C4jB,GAClBD,EACnD,CAIO,SAASwR,EAAkBp0B,EAAGob,EAAGnc,EAAG4jB,EAAYD,GAEnD,IAAIjkB,EAAIuC,EAAIC,OADQ,IAAhByhB,IAA0BA,GAAc,GAE5C,IAAI7tB,EAAS,CAAC,EAEVqM,EAAKpB,GAAK,CAAC,EAAGoW,EAAQhV,EAAGgV,MAAOiG,EAAQjb,EAAGib,MAAON,EAAe3a,EAAG2a,aAAcF,EAAYza,EAAGya,UAAWD,EAAcxa,EAAGwa,YAAaE,EAAe1a,EAAG0a,aAAcK,EAAe/a,EAAG+a,aAAcY,EAAe3b,EAAG2b,aAAcC,EAAiB5b,EAAG4b,eAAgBT,EAAcnb,EAAGmb,YAAaM,EAAoBzb,EAAGyb,kBAAmBC,EAAuB1b,EAAG0b,qBAAsBN,EAAiBpb,EAAGob,eAAgBE,EAAmBtb,EAAGsb,iBAAkBC,EAAsBvb,EAAGub,oBAAqBC,EAAkBxb,EAAGwb,gBAAiB5F,EAAqB5V,EAAG4V,mBAAoBiG,EAAoB7b,EAAG6b,kBAAmBC,EAAS9b,EAAG8b,OAoI5oB,OAnII9G,IACArhB,EAAO6gB,eAAiBQ,EACxBrhB,EAAOqgC,oBAAsBhf,EAC7BrhB,EAAOsgC,iBAAmBjf,EAC1BrhB,EAAOugC,iBAAmBlf,EAC1BrhB,EAAOmhB,kBAAoBE,EAC3BrhB,EAAO0hB,yBAA2BL,EAClCrhB,EAAO6hB,yBAA2BR,EAClCrhB,EAAOwgC,gBAAkBnf,EACzBrhB,EAAOygC,uBAAyBpf,EAChCrhB,EAAO0gC,eAAiBrf,EACxBrhB,EAAO2gC,eAAiBtf,EACxBrhB,EAAO4gC,uBAAyBvf,GAEhCiG,IACAtnB,EAAO6gC,gBAAkBvZ,EACzBtnB,EAAO8gC,yBAA2BxZ,GAElCN,IACAhnB,EAAO+gC,KAAO/Z,EACdhnB,EAAOghB,wBAA0BgG,EACjChnB,EAAOghC,uBAAyBha,EAChChnB,EAAOihC,UAAYja,EACnBhnB,EAAOkhC,oBAAsBla,EAC7BhnB,EAAOmhC,SAAWna,EAClBhnB,EAAOohC,WAAapa,EACpBhnB,EAAOqhC,uBAAyBra,GAEhCF,IACA9mB,EAAO4hB,+BAAiCkF,EACxC9mB,EAAOshC,8BAAgCxa,EACvC9mB,EAAOuhC,iBAAmBza,GAE1BD,IACA7mB,EAAOwhC,YAAc3a,GAErBE,IACA/mB,EAAOyhB,+BAAiCsF,GAExCK,IACApnB,EAAOyhC,kCAAoCra,GAE3CY,IACAhoB,EAAO0hC,sBAAwB1Z,EAC/BhoB,EAAO2hC,iBAAmB3Z,EAC1BhoB,EAAO4hC,YAAc5Z,EACrBhoB,EAAO6hC,cAAgB7Z,EACvBhoB,EAAO8hC,+BAAiC9Z,EACxChoB,EAAO+hC,wBAA0B/Z,EACjChoB,EAAOgiC,0BAA4Bha,EACnChoB,EAAOiiC,4BAA8Bja,EACrChoB,EAAOkiC,0BAA4Bla,EAEnChoB,EAAO++B,0BAA4B/W,GAEnCC,IACAjoB,EAAOmiC,sBAAwBla,EAC/BjoB,EAAOoiC,wBAA0Bna,EACjCjoB,EAAOqiC,yBAA2Bpa,EAClCjoB,EAAOsiC,qBAAuBra,EAC9BjoB,EAAO+hB,gCAAkCkG,EACzCjoB,EAAOuiC,mBAAqBta,EAC5BjoB,EAAOwiC,0BAA4Bva,EACnCjoB,EAAOyiC,4BAA8Bxa,EACrCjoB,EAAO0iC,0BAA4Bza,GAEnCH,IACA9nB,EAAO2iC,0BAA4B7a,EACnC9nB,EAAO4iC,gBAAkB9a,GAEzBC,IACA/nB,EAAO6iC,iCAAmC9a,GAE1CF,IACA7nB,EAAO8iC,iBAAmBjb,EAC1B7nB,EAAO+iC,sBAAqC,QAAZn5B,EAAKM,SAAsB,IAAPN,OAAgB,EAASA,EAAGm5B,uBAAyBlb,EACzG7nB,EAAOgiB,mBAAqB6F,EAC5B7nB,EAAOgjC,kBAAoBnb,EAC3B7nB,EAAOijC,aAAepb,GAEtBJ,IACAznB,EAAO8gB,SAAW2G,EAClBznB,EAAOkjC,WAAazb,EACpBznB,EAAOmjC,WAAa1b,EACpBznB,EAAOojC,mBAAqB3b,EAC5BznB,EAAOqjC,UAAY5b,EACnBznB,EAAO8+B,SAAWrX,EAClBznB,EAAOsjC,aAAe7b,GAEtBS,IACAloB,EAAOujC,uBAAyBrb,EAChCloB,EAAOwjC,uBAAyBtb,GAEhCV,IACAxnB,EAAOyjC,kBAAoBjc,EAC3BxnB,EAAO0jC,kBAAoBlc,EAC3BxnB,EAAO2jC,kBAAoBnc,EAC3BxnB,EAAO4jC,kBAAoBpc,EAC3BxnB,EAAO6jC,iBAAmBrc,EAC1BxnB,EAAO8jC,oBAAsBtc,GAE7BG,IACA3nB,EAAO+jC,YAAcpc,EACrB3nB,EAAOgkC,YAAcrc,EACrB3nB,EAAOikC,YAActc,EACrB3nB,EAAOkkC,iBAAmBvc,EAC1B3nB,EAAOmkC,qBAAuBxc,GAE9BC,IACA5nB,EAAOokC,aAAexc,GAEtB3F,IACAjiB,EAAOqkC,oBAAsBpiB,EAC7BjiB,EAAOskC,eAAiBriB,EACxBjiB,EAAOukC,wBAA0BtiB,EACjCjiB,EAAOwkC,YAAcviB,GAErBkG,IACAnoB,EAAOqhC,uBAAyBlZ,IAGnB,QAAZhc,EAAKka,SAAsB,IAAPla,OAAgB,EAASA,EAAGiiB,cACjDpuB,EAAOykC,WAAape,EAAE+H,aAErBN,IAA4B,QAAZ1hB,EAAKia,SAAsB,IAAPja,OAAgB,EAASA,EAAGkiB,YACjEtuB,EAAO0kC,kBAAoBre,EAAEiI,WAExBtuB,EAAO+iC,uBACZ/iC,EAAO0kC,kBAAoB,WAAa1kC,EAAO+iC,uBAE1C,SAAS,QAAS,CAAC,EAAG/iC,GAASkK,EAE5C,kDC7HO,IAAIiB,EAAW,WAQlB,OAPAA,EAAWL,OAAOM,QAAU,SAAkBC,GAC1C,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KAAII,EAAEJ,GAAKf,EAAEe,IAE9E,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,2DCpCA,IAkCQjB,EAlCJgC,EAAsC,WAStC,OARAA,EAAWL,OAAOM,QAAU,SAASC,GACjC,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KACzDI,EAAEJ,GAAKf,EAAEe,IAEjB,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,EAGIyD,EAA0B,oBAAXX,OAAyB,EAAAy3B,EAASz3B,OAEjD03B,EAAc/2B,GAASA,EAAMg3B,aAAeh3B,EAAMg3B,YAAYC,MAC9DC,IAkBI57B,EAAQ0E,EAAMm3B,gBAAkB,CAChCn1B,WAAO5G,EACPg8B,sBAAkBh8B,EAClBi8B,iBAAkB,KAEXC,WACPh8B,EAAQgC,EAASA,EAAS,CAAC,EAAGhC,GAAQ,CAAEi8B,KAAM,CACtCC,MAAO,EACPC,SAAU,GACXH,SAAU,CACTI,WAAY,EACZC,KAAM,EACNC,OAAQ,OAGft8B,EAAMu8B,2BACPv8B,EAAQgC,EAASA,EAAS,CAAC,EAAGhC,GAAQ,CAAEu8B,yBAA0B,MAEtE73B,EAAMm3B,eAAiB77B,EAChBA,GAjCPw8B,EAAmB,iHACnBC,EAAM,WACN,MAA8B,oBAAhBC,aAAiCA,YAAYD,IAAMC,YAAYD,MAAQ3lC,KAAK2lC,KAC9F,EACA,SAASE,EAAQC,GACb,IAAIC,EAAQJ,IACZG,IACA,IAAIrzB,EAAMkzB,IACVb,EAAYK,KAAKE,UAAY5yB,EAAMszB,CACvC,CAgCO,SAASC,EAAWriB,EAAQsiB,QACb,IAAdA,IAAwBA,GAAY,GACxCJ,GAAQ,WACJ,IAAIK,EAAahkC,MAAMuZ,QAAQkI,GAAUA,EAsK1C,SAAqBA,GACxB,IAAI5jB,EAAS,GACb,GAAI4jB,EAAQ,CAGR,IAFA,IAAIwiB,EAAM,EACNC,OAAa,EACTA,EAAaV,EAAiBW,KAAK1iB,IAAU,CACjD,IAAI2iB,EAAaF,EAAWt9B,MACxBw9B,EAAaH,GACbpmC,EAAOsD,KAAK,CACRkjC,UAAW5iB,EAAO6iB,UAAUL,EAAKG,KAGzCvmC,EAAOsD,KAAK,CACRuM,MAAOw2B,EAAW,GAClBK,aAAcL,EAAW,KAG7BD,EAAMT,EAAiBgB,SAC3B,CAEA3mC,EAAOsD,KAAK,CACRkjC,UAAW5iB,EAAO6iB,UAAUL,IAEpC,CACA,OAAOpmC,CACX,CA/L0D4mC,CAAYhjB,GAC1Dha,EAAKm7B,EAAYI,SAAUK,EAAO57B,EAAG47B,KAAMC,EAAS77B,EAAG67B,OAAQF,EAAa37B,EAAG27B,WAC/EW,GAAsB,IAATV,GACbC,EAAOniC,KAAK6iC,GACPZ,IACDR,EAAYI,SAASI,WAwC1BsB,YAAW,WACd9B,EAAYI,SAASI,WAAa,EAdtCO,GAAQ,WACJ,IAAIgB,EAAc/B,EAAYI,SAASM,OAAOsB,QAC9ChC,EAAYI,SAASM,OAAS,GAC9B,IAAIuB,EAAmB,GAAGtR,OAAO1tB,MAAM,GAAI8+B,GACvCE,EAAiBrjC,OAAS,GAC1BsjC,EAAoBD,EAE5B,GASA,GAAG,KAvCKC,EAAoBd,EAE5B,GACJ,CA4CA,SAASc,EAAoBC,EAAaC,GAClCpC,EAAYkB,WACZlB,EAAYkB,WAAWmB,EAAqBF,GAAaG,YAAaH,GA4I9E,SAAwBI,GACpB,GAAwB,oBAAb5/B,SAAX,CAGA,IAAI+U,EAAO/U,SAAS6/B,qBAAqB,QAAQ,GAC7ClrB,EAAe3U,SAAS4U,cAAc,SACtC1S,EAAKw9B,EAAqBE,GAAaD,EAAcz9B,EAAGy9B,YAAaG,EAAW59B,EAAG49B,SACvFnrB,EAAa3T,aAAa,0BAA2B,QACjDk8B,GACAvoB,EAAa3T,aAAa,QAASk8B,GAEvCvoB,EAAaK,YAAYhV,SAAS+/B,eAAeJ,IACjDtC,EAAYK,KAAKC,QACjB5oB,EAAKC,YAAYL,GACjB,IAAInQ,EAAKxE,SAASsF,YAAY,cAC9Bd,EAAGw7B,UAAU,eAAe,GAAwB,GACpDx7B,EAAGy7B,KAAO,CACNC,SAAUvrB,GAEd3U,SAASyF,cAAcjB,GACvB,IAAI27B,EAAS,CACTxrB,aAAcA,EACdyrB,cAAeR,GAEfE,EACAzC,EAAYW,yBAAyBpiC,KAAKukC,GAG1C9C,EAAYG,iBAAiB5hC,KAAKukC,EAzBtC,CA2BJ,CAvKQvsB,CAAe4rB,EAEvB,CAMO,SAASa,EAAUl4B,GACtBk1B,EAAYl1B,MAAQA,EA+BxB,WACI,GAAIk1B,EAAYl1B,MAAO,CAEnB,IADA,IAAIm4B,EAAiB,GACZvkC,EAAK,EAAGmG,EAAKm7B,EAAYW,yBAA0BjiC,EAAKmG,EAAGjG,OAAQF,IAAM,CAC9E,IAAI0jC,EAAcv9B,EAAGnG,GACrBukC,EAAe1kC,KAAK6jC,EAAYW,cACpC,CACIE,EAAerkC,OAAS,SA5BjB,KADSskC,EA8BJ,KA7BKA,EAAS,GACnB,IAAXA,GAAuD,IAAXA,IAC5CC,EAAoBnD,EAAYG,kBAChCH,EAAYG,iBAAmB,IAEpB,IAAX+C,GAAuD,IAAXA,IAC5CC,EAAoBnD,EAAYW,0BAChCX,EAAYW,yBAA2B,IAuBnCuB,EAAoB,GAAGvR,OAAO1tB,MAAM,GAAIggC,IAEhD,CAjCG,IAAqBC,CAkC5B,CAzCIE,EACJ,CAiBA,SAASD,EAAoBE,GACzBA,EAAQ7zB,SAAQ,SAAU4yB,GACtB,IAAI9qB,EAAe8qB,GAAeA,EAAY9qB,aAC1CA,GAAgBA,EAAazN,eAC7ByN,EAAazN,cAAcy5B,YAAYhsB,EAE/C,GACJ,CA+BA,SAAS+qB,EAAqBkB,GAC1B,IAAIz4B,EAAQk1B,EAAYl1B,MACpB23B,GAAW,EA2Bf,MAAO,CACHH,aAzBiBiB,GAAmB,IAAIC,KAAI,SAAUC,GACtD,IAAIC,EAAYD,EAAa34B,MAC7B,GAAI44B,EAAW,CACXjB,GAAW,EAEX,IAAIkB,EAAc74B,EAAQA,EAAM44B,QAAax/B,EACzCy9B,EAAe8B,EAAa9B,cAAgB,UAWhD,OARI72B,IACC64B,GACDC,WACEF,KAAa54B,IACE,oBAAV+4B,OACPA,OACAD,QAAQE,KAAK,mCAAoCnT,OAAO+S,EAAW,wBAA0B/S,OAAOgR,EAAc,OAE/GgC,GAAehC,CAC1B,CAGI,OAAO8B,EAAahC,SAE5B,IAE+BhqB,KAAK,IAChCgrB,SAAUA,EAElB,iNC1MO,SAASsB,EAAgBC,EAAMnqB,QAClB,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIhV,EAAKgV,EAAQoqB,eACbC,QADqD,IAAPr/B,EAAgB,CAAC,EAAIA,GACtCq/B,YAC7BC,EAAkB,SAAUC,GAC5B,IAoEoB5oB,EAAa/E,EAAS4tB,EAI1CC,EAxEI1jB,GAoEgBpF,EApEc3B,EAAQ2B,YAoET/E,EApEsB,aAAiB,KAoE9B4tB,EApEkDxqB,EAAQwqB,OAwEpGC,EAAgB,CAAC,QAAS,SAAU,UACjC,IAAeC,YAAYF,GAAUC,EAAe9oB,EAAa/E,EAAQiK,iBAxExE8jB,EAAe3qB,EAAQzV,MACvBogC,IAEAJ,GAAiB,SAAS,QAAS,CAAC,EAAGA,GAAiBI,EAAaJ,KAEzE,IAAIt5B,EAAQs5B,EAAet5B,OAAS8V,EAAS9V,MACzCiN,EAAS0sB,EAAeL,EAAgBt5B,EAAO+O,EAAQ9B,OAAQ6I,EAAS7I,OAAQqsB,EAAersB,QAC/F8G,EAmBZ,SAAwBjW,EAAOkC,EAAOiN,GAElC,IADA,IAAI2sB,EAAY,GACPhmC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCgmC,EAAUhmC,EAAK,GAAK2G,UAAU3G,GAElC,OAAO,KAAgBuE,WAAM,EAAQyhC,EAAUlB,KAAI,SAAU3kB,GACzD,MAAyB,mBAAXA,EAAwBA,EAAOjW,EAAOkC,EAAOiN,GAAU8G,CACzE,IACJ,CA3BqB8lB,CAAeP,EAAgBt5B,EAAOiN,EAAQ8B,EAAQgF,OAAQ+B,EAAS/B,OAAQulB,EAAevlB,QACvG+lB,GAAY,SAAS,QAAS,CAAC,EAAGR,GAAiB,CAAEvlB,OAAQA,EAC7D9G,OAAQA,EAAQ8sB,eAAgBhmB,EAAQ/T,MAAOA,IACnD,OAAOk5B,EAAKY,EAChB,EAUA,OATAT,EAAgB3oB,YAAc3B,EAAQ2B,aAAewoB,EAAKc,KAItDZ,IACAC,EAAgBh1B,QAAS,QAAcg1B,EAAiB,CAAED,YAAaA,MAE3E,OAAOC,EAAiBtqB,EAAQkrB,SAEzBZ,CACX,CAgBA,SAASM,EAAe77B,EAAOkC,GAE3B,IADA,IAAIk6B,EAAY,GACPtmC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCsmC,EAAUtmC,EAAK,GAAK2G,UAAU3G,GAGlC,IADA,IAAIqZ,EAAS,CAAC,EACLlT,EAAK,EAAGogC,EAAcD,EAAWngC,EAAKogC,EAAYrmC,OAAQiG,IAAM,CACrE,IAAIqgC,EAAgBD,EAAYpgC,GAC5BqgC,IAEAA,EAC6B,mBAAlBA,EACDA,EAAct8B,EAAOkC,GACrBo6B,EACN9nC,MAAMuZ,QAAQuuB,KACdA,EAAgBT,EAAexhC,WAAM,GAAQ,QAAe,CAAC2F,EAAOkC,GAAQo6B,MAEhF,OAAOntB,EAAQmtB,GAEvB,CACA,OAAOntB,CACX,+ICvEO,SAASotB,EAAU9vB,EAAMzM,GAE5B,IADA,IAAI7F,EAAW,GACNrE,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCqE,EAASrE,EAAK,GAAK2G,UAAU3G,GAEjC,IAAI0mC,EAAW/vB,EACf,OAAI+vB,EAASC,OAWe,KAHxBtiC,EAAW,WAAeuiC,QAAQviC,IAGrBnE,OACFwmC,EAASx8B,GAEbw8B,GAAS,SAAS,QAAS,CAAC,EAAGx8B,GAAQ,CAAE7F,SAAUA,KASnD,gBAAoBE,MAAM,iBAAO,QAAe,CAACoS,EAAMzM,GAAQ7F,GAE9E,CAOO,SAASwiC,EAAcC,EAAkB3rB,QAC5B,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIhV,EAAKgV,EAAQqqB,YAAaA,OAAqB,IAAPr/B,EAAgB,WAAaA,EAqBzE,OApBa,SAAUu/B,EAAgBqB,EAAWC,EAAiBC,EAAe76B,GAE9E,GAAI,iBAAqB26B,GACrB,OAAOA,EAEX,IAAIG,EAwEZ,SAA6B1B,EAAaz/B,GACtC,IAAII,EACAghC,EASJ,MARyB,iBAAdphC,GAA+C,iBAAdA,GAA+C,kBAAdA,IACrDI,EAAK,CAAC,GACnBq/B,GAAez/B,EADtBohC,EAEIhhC,GAGJghC,EAAmBphC,EAEhBohC,CACX,CApFiCC,CAAoB5B,EAAauB,GACtDM,EAuFZ,SAA8BJ,EAAe76B,GAEzC,IADA,IAAIk7B,EAAW,GACNtnC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCsnC,EAAStnC,EAAK,GAAK2G,UAAU3G,GAIjC,IAFA,IAAIqnC,EAAa,CAAC,EACdE,EAAa,GACRphC,EAAK,EAAGqhC,EAAaF,EAAUnhC,EAAKqhC,EAAWtnC,OAAQiG,IAAM,CAClE,IAAI+D,EAAQs9B,EAAWrhC,GACvBohC,EAAW1nC,KAAKqK,GAASA,EAAMsI,YAC/B,OAAO60B,EAAYn9B,EACvB,CAEA,OADAm9B,EAAW70B,WAAY,OAAS,CAACy0B,EAAeM,GAAa,CAAElnB,KAAK,QAAOjU,KACpEi7B,CACX,CArGyBI,CAAqBR,EAAe76B,EAAOs5B,EAAgBwB,GAC5E,GAAIF,EAAiB,CACjB,GAAIA,EAAgBU,UAAW,CAG3B,IAAIC,EAAgBX,EAAgBU,UACpC,OAAO,gBAAoBC,GAAe,QAAS,CAAC,EAAGN,GAC3D,CACA,GAAIL,EAAgB90B,OAChB,OAAO80B,EAAgB90B,OAAOm1B,EAAYP,EAElD,CACA,OAAO,gBAAoBA,GAAkB,QAAS,CAAC,EAAGO,GAC9D,CAEJ,CAIA,IAAIO,GAAiB,SAAgB,SAAUjxB,GAAQ,OAAOkwB,EAAclwB,EAAO,IAO5E,SAASlR,EAASshC,EAAWnhC,GAChC,IAAIrJ,EAAS,CAAC,EAEVsrC,EAAad,EACbe,EAAU,SAAU7hC,GACpB,GAAIL,EAAM6B,eAAexB,GAAS,CAK9B,IAAI8hC,EAAO,SAAUrC,GAEjB,IADA,IAAIxB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,EAAK,GAAK2G,UAAU3G,GAE7B,GAAIkkC,EAAKhkC,OAAS,EAGd,MAAM,IAAIT,MAAM,6FAMpB,OA2DhB,SAAqBuoC,EAAetC,EAAgBqB,EAAWkB,EAAahB,EAAe76B,GACvF,YAA6B5G,IAAzBwiC,EAAcv3B,OACPu3B,EAAcv3B,OAAOi1B,EAAgBqB,EAAWkB,EAAahB,GAI7DW,EAAeI,EAAfJ,CAA8BlC,EAAgBqB,EAAWkB,EAAahB,EAAe76B,EAEpG,CAnEuB87B,CAAYtiC,EAAMK,GAEzBy/B,EAAgBmC,EAAW5hC,GAAS4hC,EAAWjiC,OAASiiC,EAAWjiC,MAAMK,GAGzE4hC,EAAW1B,gBAAkB0B,EAAW1B,eAAelgC,GAAS4hC,EAAWz7B,MAC/E,EACA27B,EAAKpB,QAAS,EACdpqC,EAAO0J,GAAU8hC,CACrB,CACJ,EACA,IAAK,IAAI9hC,KAAUL,EACfkiC,EAAQ7hC,GAEZ,OAAO1J,CACX,2EClIO,IAAIoL,EAAS,WAAQ,gEC4BrB,IAAID,EAAW,WAQlB,OAPAA,EAAWL,OAAOM,QAAU,SAAkBC,GAC1C,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KAAII,EAAEJ,GAAKf,EAAEe,IAE9E,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,EA+GO,SAASH,IACZ,IAAK,IAAIC,EAAI,EAAGxF,EAAI,EAAGyF,EAAKC,UAAUzG,OAAQe,EAAIyF,EAAIzF,IAAKwF,GAAKE,UAAU1F,GAAGf,OACxE,IAAI0G,EAAIlI,MAAM+H,GAAII,EAAI,EAA3B,IAA8B5F,EAAI,EAAGA,EAAIyF,EAAIzF,IACzC,IAAK,IAAI6F,EAAIH,UAAU1F,GAAI8F,EAAI,EAAGC,EAAKF,EAAE5G,OAAQ6G,EAAIC,EAAID,IAAKF,IAC1DD,EAAEC,GAAKC,EAAEC,GACjB,OAAOH,CACX,gECzJO,SAASuhC,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,SAAY,IACZ,aAAgB,IAChB,mBAAsB,IACtB,aAAgB,IAChB,oBAAuB,IACvB,sBAAyB,IACzB,kBAAqB,IACrB,mBAAsB,IACtB,4BAA+B,IAC/B,SAAY,IACZ,eAAkB,IAClB,YAAe,IACf,iBAAoB,IACpB,cAAiB,IACjB,iBAAoB,IACpB,kBAAqB,IACrB,sBAAyB,IACzB,mBAAsB,IACtB,WAAc,IACd,cAAiB,IACjB,QAAW,IACX,oBAAuB,IACvB,cAAiB,IACjB,WAAc,IACd,YAAe,IACf,gBAAmB,IACnB,gBAAmB,IACnB,WAAc,IACd,OAAU,IACV,SAAY,IACZ,OAAU,IACV,UAAa,IACb,MAAS,IACT,OAAU,IACV,MAAS,IACT,IAAO,IACP,KAAQ,IACR,KAAQ,IACR,KAAQ,IACR,QAAW,IACX,KAAQ,IACR,QAAW,IACX,WAAc,IACd,OAAU,IACV,OAAU,IACV,KAAQ,IACR,aAAgB,IAChB,UAAa,IACb,QAAW,IACX,KAAQ,IACR,QAAW,IACX,KAAQ,IACR,aAAgB,IAChB,IAAO,IACP,SAAY,IACZ,QAAW,IACX,YAAe,IACf,QAAW,IACX,OAAU,IACV,SAAY,IACZ,kBAAqB,IACrB,aAAgB,IAChB,sBAAyB,IACzB,0BAA6B,IAC7B,aAAgB,IAChB,WAAc,IACd,MAAS,IACT,GAAM,IACN,KAAQ,IACR,IAAO,IACP,KAAQ,IACR,UAAa,IACb,MAAS,IACT,WAAc,IACd,cAAiB,IACjB,IAAO,IACP,WAAc,IACd,QAAW,IACX,UAAa,IACb,YAAe,IACf,QAAW,IACX,SAAY,IACZ,UAAa,IACb,YAAe,IACf,gBAAmB,IACnB,KAAQ,IACR,MAAS,IACT,WAAc,IACd,OAAU,IACV,qBAAwB,IACxB,OAAU,IACV,YAAe,IACf,cAAiB,IACjB,MAAS,IACT,aAAgB,IAChB,YAAe,IACf,MAAS,IACT,QAAW,IACX,KAAQ,IACR,aAAgB,OAGxB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,MAAS,IACT,YAAe,IACf,MAAS,IACT,mBAAsB,IACtB,OAAU,IACV,UAAa,IACb,KAAQ,IACR,cAAiB,IACjB,eAAkB,IAClB,MAAS,IACT,OAAU,IACV,MAAS,IACT,QAAW,IACX,YAAe,IACf,SAAY,IACZ,KAAQ,IACR,KAAQ,IACR,gBAAmB,IACnB,MAAS,IACT,OAAU,IACV,cAAiB,IACjB,UAAa,IACb,OAAU,IACV,aAAgB,IAChB,cAAiB,IACjB,QAAW,IACX,aAAgB,IAChB,QAAW,IACX,UAAa,IACb,UAAa,IACb,aAAgB,IAChB,MAAS,IACT,KAAQ,IACR,aAAgB,IAChB,MAAS,IACT,UAAa,IACb,MAAS,IACT,UAAa,IACb,YAAe,IACf,IAAO,IACP,MAAS,IACT,UAAa,IACb,SAAY,IACZ,KAAQ,IACR,iBAAoB,IACpB,gBAAmB,IACnB,eAAkB,IAClB,aAAgB,IAChB,wBAA2B,IAC3B,IAAO,IACP,IAAO,IACP,SAAY,IACZ,MAAS,IACT,eAAkB,IAClB,KAAQ,IACR,iBAAoB,IACpB,gBAAmB,IACnB,iBAAoB,IACpB,MAAS,IACT,cAAiB,IACjB,YAAe,IACf,WAAc,IACd,QAAW,IACX,SAAY,IACZ,UAAa,IACb,aAAgB,IAChB,KAAQ,IACR,OAAU,IACV,MAAS,IACT,KAAQ,IACR,YAAe,IACf,WAAc,IACd,WAAc,IACd,WAAc,IACd,WAAc,IACd,aAAgB,IAChB,IAAO,IACP,SAAY,IACZ,KAAQ,IACR,KAAQ,IACR,KAAQ,IACR,MAAS,IACT,YAAe,IACf,UAAa,IACb,SAAY,IACZ,YAAe,IACf,OAAU,IACV,UAAa,IACb,SAAY,IACZ,kBAAqB,IACrB,gBAAmB,IACnB,SAAY,IACZ,QAAW,IACX,OAAU,IACV,OAAU,IACV,GAAM,IACN,OAAU,IACV,UAAa,IACb,YAAe,IACf,OAAU,OAGlB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,cAAiB,IACjB,aAAgB,IAChB,YAAe,IACf,YAAe,IACf,WAAc,IACd,gBAAmB,IACnB,iBAAoB,IACpB,WAAc,IACd,cAAiB,IACjB,aAAgB,IAChB,YAAe,IACf,MAAS,IACT,SAAY,IACZ,YAAe,IACf,aAAgB,IAChB,WAAc,IACd,OAAU,IACV,aAAgB,IAChB,iBAAoB,IACpB,UAAa,IACb,cAAiB,IACjB,yBAA4B,IAC5B,eAAkB,IAClB,mBAAsB,IACtB,UAAa,IACb,cAAiB,IACjB,gBAAmB,IACnB,oBAAuB,IACvB,aAAgB,IAChB,iBAAoB,IACpB,OAAU,IACV,iBAAoB,IACpB,eAAkB,IAClB,eAAkB,IAClB,KAAQ,IACR,MAAS,IACT,gBAAmB,IACnB,YAAe,IACf,aAAgB,IAChB,aAAgB,IAChB,cAAiB,IACjB,YAAe,IACf,kBAAqB,IACrB,aAAgB,IAChB,gBAAmB,IACnB,UAAa,IACb,eAAkB,IAClB,UAAa,IACb,UAAa,IACb,OAAU,IACV,SAAY,IACZ,iBAAoB,IACpB,aAAgB,IAChB,sBAAyB,IACzB,YAAe,IACf,aAAgB,IAChB,UAAa,IACb,cAAiB,IACjB,cAAiB,IACjB,iBAAoB,IACpB,iBAAoB,IACpB,QAAW,IACX,aAAgB,IAChB,UAAa,IACb,kBAAqB,IACrB,cAAiB,IACjB,wBAA2B,IAC3B,eAAkB,IAClB,WAAc,IACd,YAAe,IACf,gBAAmB,IACnB,WAAc,IACd,eAAkB,IAClB,UAAa,IACb,SAAY,IACZ,UAAa,IACb,aAAgB,IAChB,gBAAmB,IACnB,iBAAoB,IACpB,kBAAqB,IACrB,mBAAsB,IACtB,WAAc,IACd,YAAe,IACf,aAAgB,IAChB,gBAAmB,IACnB,UAAa,IACb,WAAc,IACd,cAAiB,IACjB,sBAAyB,IACzB,eAAkB,IAClB,SAAY,IACZ,KAAQ,IACR,UAAa,IACb,YAAe,IACf,WAAc,IACd,mBAAsB,IACtB,gBAAmB,IACnB,SAAY,IACZ,qBAAwB,IACxB,iBAAoB,OAG5B,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,iBAAoB,IACpB,iBAAoB,IACpB,aAAgB,IAChB,kBAAqB,IACrB,iBAAoB,IACpB,YAAe,IACf,eAAkB,IAClB,gBAAmB,IACnB,WAAc,IACd,aAAgB,IAChB,qBAAwB,IACxB,gBAAmB,IACnB,wBAA2B,IAC3B,aAAgB,IAChB,qBAAwB,IACxB,eAAkB,IAClB,oBAAuB,IACvB,QAAW,IACX,aAAgB,IAChB,QAAW,IACX,SAAY,IACZ,SAAY,IACZ,QAAW,IACX,SAAY,IACZ,SAAY,IACZ,SAAY,IACZ,mBAAsB,IACtB,eAAkB,IAClB,OAAU,IACV,oBAAuB,IACvB,GAAM,IACN,kBAAqB,IACrB,UAAa,IACb,eAAkB,IAClB,OAAU,IACV,mBAAsB,IACtB,eAAkB,IAClB,GAAM,IACN,aAAgB,IAChB,iBAAoB,IACpB,UAAa,IACb,cAAiB,IACjB,KAAQ,IACR,UAAa,IACb,cAAiB,IACjB,iBAAoB,IACpB,YAAe,IACf,SAAY,IACZ,UAAa,IACb,cAAiB,IACjB,WAAc,IACd,WAAc,IACd,eAAkB,IAClB,UAAa,IACb,WAAc,IACd,QAAW,IACX,SAAY,IACZ,YAAe,IACf,kBAAqB,IACrB,UAAa,IACb,YAAe,IACf,iBAAoB,IACpB,SAAY,IACZ,YAAe,IACf,UAAa,IACb,cAAiB,IACjB,SAAY,IACZ,WAAc,IACd,gBAAmB,IACnB,cAAiB,IACjB,YAAe,IACf,WAAc,IACd,iBAAoB,IACpB,iBAAoB,IACpB,iBAAoB,IACpB,wBAA2B,IAC3B,yBAA4B,IAC5B,WAAc,IACd,sBAAyB,IACzB,WAAc,IACd,eAAkB,IAClB,UAAa,IACb,mBAAsB,IACtB,SAAY,IACZ,WAAc,IACd,aAAgB,IAChB,eAAkB,IAClB,sBAAyB,IACzB,cAAiB,IACjB,sBAAyB,IACzB,eAAkB,IAClB,iBAAoB,IACpB,SAAY,IACZ,YAAe,IACf,YAAe,IACf,aAAgB,IAChB,kBAAqB,IACrB,UAAa,IACb,UAAa,IACb,YAAe,OAGvB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,eAAkB,IAClB,uBAA0B,IAC1B,aAAgB,IAChB,iBAAoB,IACpB,aAAgB,IAChB,qBAAwB,IACxB,aAAgB,IAChB,cAAiB,IACjB,oBAAuB,IACvB,UAAa,IACb,cAAiB,IACjB,UAAa,IACb,eAAkB,IAClB,aAAgB,IAChB,WAAc,IACd,YAAe,IACf,mBAAsB,IACtB,2BAA8B,IAC9B,oBAAuB,IACvB,qBAAwB,IACxB,6BAAgC,IAChC,sBAAyB,IACzB,YAAe,IACf,iBAAoB,IACpB,UAAa,IACb,uBAA0B,IAC1B,SAAY,IACZ,mBAAsB,IACtB,iBAAoB,IACpB,kBAAqB,IACrB,wBAA2B,IAC3B,uBAA0B,IAC1B,qBAAwB,IACxB,oBAAuB,IACvB,WAAc,IACd,gBAAmB,IACnB,cAAiB,IACjB,mBAAsB,IACtB,iBAAoB,IACpB,mBAAsB,IACtB,oBAAuB,IACvB,gBAAmB,IACnB,cAAiB,IACjB,gBAAmB,IACnB,iBAAoB,IACpB,YAAe,IACf,mBAAsB,IACtB,qBAAwB,IACxB,SAAY,IACZ,aAAgB,IAChB,aAAgB,IAChB,iBAAoB,IACpB,kBAAqB,IACrB,WAAc,IACd,eAAkB,IAClB,wBAA2B,IAC3B,iBAAoB,IACpB,qBAAwB,IACxB,mBAAsB,IACtB,YAAe,IACf,gBAAmB,IACnB,qBAAwB,IACxB,cAAiB,IACjB,kBAAqB,IACrB,qBAAwB,IACxB,cAAiB,IACjB,kBAAqB,IACrB,uBAA0B,IAC1B,gBAAmB,IACnB,oBAAuB,IACvB,mBAAsB,IACtB,YAAe,IACf,gBAAmB,IACnB,WAAc,IACd,gBAAmB,IACnB,iBAAoB,IACpB,cAAiB,IACjB,cAAiB,IACjB,gBAAmB,IACnB,SAAY,IACZ,SAAY,IACZ,cAAiB,IACjB,UAAa,IACb,SAAY,IACZ,OAAU,IACV,QAAW,IACX,gBAAmB,IACnB,OAAU,IACV,cAAiB,IACjB,WAAc,IACd,WAAc,IACd,UAAa,IACb,aAAgB,IAChB,uBAA0B,IAC1B,WAAc,IACd,kBAAqB,IACrB,YAAe,IACf,WAAc,IACd,WAAc,IACd,YAAe,OAGvB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,oBAAuB,IACvB,YAAe,IACf,gBAAmB,IACnB,OAAU,IACV,YAAe,IACf,uBAA0B,IAC1B,2BAA8B,IAC9B,YAAe,IACf,gBAAmB,IACnB,cAAiB,IACjB,sBAAyB,IACzB,aAAgB,IAChB,mBAAsB,IACtB,iBAAoB,IACpB,yBAA4B,IAC5B,MAAS,IACT,SAAY,IACZ,iBAAoB,IACpB,WAAc,IACd,mBAAsB,IACtB,aAAgB,IAChB,cAAiB,IACjB,eAAkB,IAClB,uBAA0B,IAC1B,cAAiB,IACjB,QAAW,IACX,gBAAmB,IACnB,yBAA4B,IAC5B,gBAAmB,IACnB,oBAAuB,IACvB,kBAAqB,IACrB,sBAAyB,IACzB,yBAA4B,IAC5B,kBAAqB,IACrB,sBAAyB,IACzB,SAAY,IACZ,YAAe,IACf,iBAAoB,IACpB,cAAiB,IACjB,cAAiB,IACjB,aAAgB,IAChB,cAAiB,IACjB,aAAgB,IAChB,aAAgB,IAChB,WAAc,IACd,YAAe,IACf,aAAgB,IAChB,UAAa,IACb,SAAY,IACZ,cAAiB,IACjB,kBAAqB,IACrB,cAAiB,IACjB,kBAAqB,IACrB,WAAc,IACd,eAAkB,IAClB,WAAc,IACd,eAAkB,IAClB,oBAAuB,IACvB,wBAA2B,IAC3B,oBAAuB,IACvB,wBAA2B,IAC3B,2BAA8B,IAC9B,2BAA8B,IAC9B,oBAAuB,IACvB,wBAA2B,IAC3B,oBAAuB,IACvB,wBAA2B,IAC3B,4BAA+B,IAC/B,4BAA+B,IAC/B,YAAe,IACf,SAAY,IACZ,uBAA0B,IAC1B,aAAgB,IAChB,OAAU,IACV,OAAU,IACV,UAAa,IACb,OAAU,IACV,QAAW,IACX,SAAY,IACZ,MAAS,IACT,KAAQ,IACR,WAAc,IACd,cAAiB,IACjB,gBAAmB,IACnB,IAAO,IACP,gBAAmB,IACnB,eAAkB,IAClB,SAAY,IACZ,kBAAqB,IACrB,mBAAsB,IACtB,eAAkB,IAClB,YAAe,IACf,YAAe,IACf,oBAAuB,IACvB,kBAAqB,IACrB,0BAA6B,IAC7B,mBAAsB,IACtB,aAAgB,IAChB,iBAAoB,IACpB,gBAAmB,OAG3B,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,OAAU,IACV,gBAAmB,IACnB,YAAe,IACf,WAAc,IACd,YAAe,IACf,EAAK,IACL,WAAc,IACd,gBAAmB,IACnB,YAAe,IACf,aAAgB,IAChB,eAAkB,IAClB,YAAe,IACf,cAAiB,IACjB,oBAAuB,IACvB,sBAAyB,IACzB,qBAAwB,IACxB,iBAAoB,IACpB,oBAAuB,IACvB,oBAAuB,IACvB,2BAA8B,IAC9B,yBAA4B,IAC5B,QAAW,IACX,KAAQ,IACR,QAAW,IACX,QAAW,IACX,SAAY,IACZ,cAAiB,IACjB,WAAc,IACd,cAAiB,IACjB,mBAAsB,IACtB,aAAc,IACd,cAAe,IACf,oBAAuB,IACvB,kBAAqB,IACrB,oBAAuB,IACvB,oBAAuB,IACvB,WAAc,IACd,UAAa,IACb,UAAa,IACb,cAAiB,IACjB,WAAc,IACd,SAAY,IACZ,SAAY,IACZ,WAAc,IACd,WAAc,IACd,YAAe,IACf,YAAe,IACf,YAAe,IACf,SAAY,IACZ,YAAe,IACf,QAAW,IACX,WAAc,IACd,cAAiB,IACjB,YAAe,IACf,aAAgB,IAChB,kBAAqB,IACrB,aAAgB,IAChB,aAAgB,IAChB,cAAiB,IACjB,aAAgB,IAChB,cAAiB,IACjB,YAAe,IACf,gBAAmB,IACnB,eAAkB,IAClB,YAAe,IACf,OAAU,IACV,iBAAoB,IACpB,aAAgB,IAChB,eAAkB,IAClB,KAAQ,IACR,UAAa,IACb,aAAgB,IAChB,YAAe,IACf,WAAc,IACd,eAAkB,IAClB,aAAgB,IAChB,UAAa,IACb,eAAkB,IAClB,YAAe,IACf,UAAa,IACb,aAAgB,IAChB,iBAAoB,IACpB,2BAA8B,IAC9B,YAAe,IACf,SAAY,IACZ,eAAkB,IAClB,cAAiB,IACjB,YAAe,IACf,WAAc,IACd,iBAAoB,IACpB,aAAgB,IAChB,OAAU,IACV,gBAAmB,IACnB,wBAA2B,IAC3B,aAAgB,IAChB,WAAc,IACd,UAAa,IACb,aAAgB,IAChB,oBAAuB,IACvB,4BAA+B,OAGvC,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,iBAAoB,IACpB,yBAA4B,IAC5B,cAAiB,IACjB,gBAAmB,IACnB,kBAAqB,IACrB,cAAiB,IACjB,cAAiB,IACjB,eAAkB,IAClB,iBAAoB,IACpB,eAAkB,IAClB,YAAe,IACf,YAAe,IACf,eAAkB,IAClB,aAAgB,IAChB,eAAkB,IAClB,kBAAqB,IACrB,aAAgB,IAChB,aAAgB,IAChB,sBAAyB,IACzB,YAAe,IACf,YAAe,IACf,WAAc,IACd,qBAAwB,IACxB,kBAAqB,IACrB,QAAW,IACX,eAAkB,IAClB,iBAAoB,IACpB,oBAAuB,IACvB,eAAkB,IAClB,cAAiB,IACjB,gBAAmB,IACnB,MAAS,IACT,MAAS,IACT,WAAc,IACd,UAAa,IACb,UAAa,IACb,oBAAuB,IACvB,kBAAqB,IACrB,iBAAoB,IACpB,iBAAoB,IACpB,mBAAsB,IACtB,eAAkB,IAClB,oBAAuB,IACvB,UAAa,IACb,kBAAqB,IACrB,mBAAsB,IACtB,gBAAmB,IACnB,gBAAmB,IACnB,cAAiB,IACjB,WAAc,IACd,mBAAsB,IACtB,YAAe,IACf,eAAkB,IAClB,mBAAsB,IACtB,oBAAuB,IACvB,iBAAoB,IACpB,WAAc,IACd,gBAAmB,IACnB,gBAAmB,IACnB,YAAe,IACf,oBAAuB,IACvB,cAAiB,IACjB,SAAY,IACZ,eAAkB,IAClB,cAAiB,IACjB,iBAAoB,IACpB,WAAc,IACd,UAAa,IACb,WAAc,IACd,cAAiB,IACjB,aAAgB,IAChB,MAAS,IACT,mBAAsB,IACtB,gBAAmB,IACnB,iBAAoB,IACpB,YAAe,IACf,YAAe,IACf,WAAc,IACd,gBAAmB,IACnB,kBAAqB,IACrB,iBAAoB,IACpB,YAAe,IACf,cAAiB,IACjB,WAAc,IACd,iBAAoB,IACpB,WAAc,IACd,iBAAoB,IACpB,aAAgB,IAChB,mBAAsB,IACtB,OAAU,IACV,aAAgB,IAChB,eAAkB,IAClB,OAAU,IACV,gBAAmB,IACnB,kBAAqB,IACrB,aAAgB,IAChB,UAAa,IACb,mBAAsB,IACtB,SAAY,IACZ,WAAc,OAGtB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,gBAAmB,IACnB,aAAgB,IAChB,aAAgB,IAChB,cAAiB,IACjB,iBAAoB,IACpB,WAAc,IACd,WAAc,IACd,gBAAmB,IACnB,gBAAmB,IACnB,gBAAmB,IACnB,sBAAyB,IACzB,kBAAqB,IACrB,uBAA0B,IAC1B,iBAAoB,IACpB,QAAW,IACX,kBAAqB,IACrB,aAAgB,IAChB,cAAiB,IACjB,gBAAmB,IACnB,eAAkB,IAClB,eAAkB,IAClB,eAAkB,IAClB,oBAAuB,IACvB,aAAgB,IAChB,MAAS,IACT,eAAkB,IAClB,UAAa,IACb,iBAAoB,IACpB,uBAA0B,IAC1B,4BAA+B,IAC/B,QAAW,IACX,wBAA2B,IAC3B,WAAc,IACd,YAAe,IACf,cAAiB,IACjB,cAAiB,IACjB,uBAA0B,IAC1B,iBAAoB,IACpB,mBAAsB,IACtB,yBAA4B,IAC5B,2BAA8B,IAC9B,iBAAoB,IACpB,mBAAsB,IACtB,yBAA4B,IAC5B,2BAA8B,IAC9B,gBAAmB,IACnB,YAAe,IACf,oBAAuB,IACvB,iBAAoB,IACpB,sBAAyB,IACzB,WAAc,IACd,mBAAsB,IACtB,oBAAuB,IACvB,mBAAsB,IACtB,oBAAuB,IACvB,2BAA8B,IAC9B,4BAA+B,IAC/B,2BAA8B,IAC9B,4BAA+B,IAC/B,cAAiB,IACjB,eAAkB,IAClB,sBAAyB,IACzB,uBAA0B,IAC1B,aAAgB,IAChB,OAAU,IACV,cAAiB,IACjB,YAAe,IACf,iBAAoB,IACpB,iBAAoB,IACpB,kBAAqB,IACrB,uBAA0B,IAC1B,YAAe,IACf,6BAAgC,IAChC,UAAa,IACb,kBAAqB,IACrB,yBAA4B,IAC5B,aAAgB,IAChB,aAAgB,IAChB,WAAc,IACd,SAAY,IACZ,WAAc,IACd,YAAe,IACf,QAAW,IACX,UAAa,IACb,oBAAuB,IACvB,oBAAuB,IACvB,cAAiB,IACjB,0BAA6B,IAC7B,WAAc,IACd,YAAe,IACf,iBAAoB,IACpB,kBAAqB,IACrB,yBAA4B,IAC5B,iBAAoB,IACpB,cAAiB,IACjB,eAAkB,IAClB,aAAgB,IAChB,sBAAyB,IACzB,iBAAoB,IACpB,WAAc,OAGtB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,uBACZkR,IAAK,QAAUI,EAAU,kDAE7Bqc,MAAO,CACH,iBAAoB,IACpB,aAAgB,IAChB,gBAAmB,IACnB,YAAe,IACf,QAAW,IACX,OAAU,IACV,OAAU,IACV,qBAAwB,IACxB,wBAA2B,IAC3B,UAAa,IACb,oBAAuB,IACvB,aAAgB,IAChB,kBAAqB,IACrB,aAAgB,IAChB,aAAgB,IAChB,eAAkB,IAClB,iBAAoB,IACpB,6BAAgC,IAChC,4BAA+B,IAC/B,sBAAyB,IACzB,YAAe,IACf,aAAgB,IAChB,iBAAoB,IACpB,cAAiB,IACjB,UAAa,IACb,aAAgB,IAChB,yBAA4B,IAC5B,WAAc,IACd,YAAe,IACf,oBAAuB,IACvB,qBAAwB,IACxB,sBAAyB,IACzB,YAAe,IACf,MAAS,IACT,MAAS,IACT,YAAe,IACf,YAAe,IACf,cAAiB,IACjB,UAAa,IACb,QAAW,IACX,cAAiB,IACjB,qBAAwB,IACxB,qBAAwB,IACxB,WAAc,OAGtB,QAAcF,EAAQjtB,EAC1B,gEC9DO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,QAAW,IACX,YAAe,IACf,YAAe,IACf,QAAW,IACX,YAAe,IACf,aAAgB,IAChB,aAAgB,IAChB,KAAQ,IACR,IAAO,IACP,YAAe,IACf,KAAQ,IACR,UAAa,IACb,UAAa,IACb,UAAa,IACb,KAAQ,IACR,UAAa,IACb,WAAc,IACd,YAAe,IACf,eAAkB,IAClB,WAAc,IACd,OAAU,IACV,UAAa,IACb,KAAQ,IACR,aAAgB,IAChB,QAAW,IACX,KAAQ,IACR,YAAe,IACf,SAAY,IACZ,eAAkB,IAClB,aAAgB,IAChB,aAAgB,IAChB,SAAY,IACZ,UAAa,IACb,UAAa,IACb,UAAa,IACb,WAAc,IACd,QAAW,IACX,WAAc,IACd,UAAa,IACb,cAAiB,IACjB,aAAgB,IAChB,WAAc,IACd,aAAgB,IAChB,OAAU,IACV,aAAgB,IAChB,QAAW,IACX,KAAQ,IACR,KAAQ,IACR,MAAS,IACT,MAAS,IACT,QAAW,IACX,SAAY,IACZ,UAAa,IACb,OAAU,IACV,SAAY,IACZ,OAAU,IACV,YAAe,IACf,UAAa,IACb,MAAS,IACT,WAAc,IACd,WAAc,IACd,MAAS,IACT,aAAgB,IAChB,SAAY,IACZ,MAAS,IACT,eAAkB,IAClB,aAAgB,IAChB,eAAkB,IAClB,cAAiB,IACjB,WAAc,IACd,YAAe,IACf,YAAe,IACf,iBAAoB,IACpB,UAAa,IACb,MAAS,IACT,UAAa,IACb,QAAW,IACX,UAAa,IACb,WAAc,IACd,WAAc,IACd,aAAgB,IAChB,UAAa,IACb,kBAAqB,IACrB,aAAgB,IAChB,UAAa,IACb,KAAQ,IACR,cAAiB,IACjB,mBAAsB,IACtB,mBAAsB,IACtB,mBAAsB,IACtB,qBAAwB,IACxB,kBAAqB,IACrB,oBAAuB,IACvB,eAAkB,IAClB,eAAkB,IAClB,QAAW,IACX,OAAU,IACV,QAAW,IACX,YAAe,IACf,eAAkB,OAG1B,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,iBAAoB,IACpB,iBAAoB,IACpB,kBAAqB,IACrB,aAAgB,IAChB,eAAkB,IAClB,eAAkB,IAClB,gBAAmB,IACnB,SAAY,IACZ,IAAO,IACP,sBAAyB,IACzB,MAAS,IACT,UAAa,IACb,iBAAoB,IACpB,qBAAwB,IACxB,QAAW,IACX,QAAW,IACX,QAAW,IACX,QAAW,IACX,MAAS,IACT,MAAS,IACT,cAAiB,IACjB,UAAa,IACb,QAAW,IACX,SAAY,IACZ,QAAW,IACX,QAAW,IACX,iBAAoB,IACpB,MAAS,IACT,aAAgB,IAChB,OAAU,IACV,gBAAmB,IACnB,kBAAqB,IACrB,WAAc,IACd,eAAkB,IAClB,KAAQ,IACR,cAAiB,IACjB,SAAY,IACZ,KAAQ,IACR,YAAe,IACf,OAAU,IACV,IAAO,IACP,QAAW,IACX,UAAa,IACb,QAAW,IACX,cAAiB,IACjB,OAAU,IACV,UAAa,IACb,OAAU,IACV,UAAa,IACb,UAAa,IACb,WAAc,IACd,SAAY,IACZ,UAAa,IACb,UAAa,IACb,mBAAsB,IACtB,iBAAoB,IACpB,SAAY,IACZ,YAAe,IACf,WAAc,IACd,SAAY,IACZ,eAAkB,IAClB,iBAAoB,IACpB,cAAiB,IACjB,QAAW,IACX,SAAY,IACZ,UAAa,IACb,eAAkB,IAClB,UAAa,IACb,cAAiB,IACjB,gBAAmB,IACnB,WAAc,IACd,iBAAoB,IACpB,gBAAmB,IACnB,SAAY,IACZ,UAAa,IACb,UAAa,IACb,QAAW,IACX,UAAa,IACb,OAAU,IACV,QAAW,IACX,QAAW,IACX,aAAgB,IAChB,YAAe,IACf,MAAS,IACT,sBAAyB,IACzB,SAAY,IACZ,WAAc,IACd,WAAc,IACd,QAAW,IACX,gBAAmB,IACnB,kBAAqB,IACrB,qBAAwB,IACxB,oBAAuB,IACvB,mBAAsB,IACtB,mBAAsB,IACtB,uBAA0B,IAC1B,kBAAqB,IACrB,iBAAoB,IACpB,6BAAgC,IAChC,WAAc,OAGtB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,aAAgB,IAChB,eAAkB,IAClB,kBAAqB,IACrB,aAAgB,IAChB,oBAAuB,IACvB,kBAAqB,IACrB,qBAAwB,IACxB,qBAAwB,IACxB,mBAAsB,IACtB,iBAAoB,IACpB,wBAA2B,IAC3B,aAAgB,IAChB,oBAAuB,IACvB,sBAAyB,IACzB,MAAS,IACT,SAAY,IACZ,MAAS,IACT,cAAiB,IACjB,UAAa,IACb,eAAkB,IAClB,eAAkB,IAClB,OAAU,IACV,aAAgB,IAChB,kBAAqB,IACrB,UAAa,IACb,OAAU,IACV,IAAO,IACP,YAAe,IACf,YAAe,IACf,oBAAuB,IACvB,MAAS,IACT,kBAAqB,IACrB,UAAa,IACb,MAAS,IACT,SAAY,IACZ,QAAW,IACX,iBAAoB,IACpB,KAAQ,IACR,gBAAmB,IACnB,UAAa,IACb,QAAW,IACX,QAAW,IACX,QAAW,IACX,SAAY,IACZ,SAAY,IACZ,YAAe,IACf,UAAa,IACb,WAAc,IACd,OAAU,IACV,OAAU,IACV,OAAU,IACV,MAAS,IACT,UAAa,IACb,UAAa,IACb,aAAgB,IAChB,QAAW,IACX,KAAQ,IACR,UAAa,IACb,QAAW,IACX,KAAQ,IACR,OAAU,IACV,UAAa,IACb,QAAW,IACX,KAAQ,IACR,SAAY,IACZ,OAAU,IACV,WAAc,IACd,WAAc,IACd,aAAgB,IAChB,gBAAmB,IACnB,YAAe,IACf,UAAa,IACb,MAAS,IACT,gBAAmB,IACnB,OAAU,IACV,SAAY,IACZ,OAAU,IACV,QAAW,IACX,KAAQ,IACR,kBAAqB,IACrB,WAAc,IACd,UAAa,IACb,SAAY,IACZ,WAAc,IACd,cAAiB,IACjB,WAAc,IACd,OAAU,IACV,aAAgB,IAChB,SAAY,IACZ,UAAa,IACb,SAAY,IACZ,QAAW,IACX,mBAAsB,IACtB,WAAc,IACd,UAAa,IACb,KAAQ,IACR,aAAgB,IAChB,SAAY,IACZ,eAAkB,IAClB,gBAAmB,OAG3B,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,YAAe,IACf,YAAe,IACf,OAAU,IACV,OAAU,IACV,WAAc,IACd,OAAU,IACV,cAAiB,IACjB,OAAU,IACV,cAAiB,IACjB,IAAO,IACP,SAAY,IACZ,kBAAqB,IACrB,YAAe,IACf,IAAO,IACP,GAAM,IACN,cAAiB,IACjB,eAAkB,IAClB,cAAiB,IACjB,aAAgB,IAChB,WAAc,IACd,SAAY,IACZ,aAAgB,IAChB,SAAY,IACZ,UAAa,IACb,QAAW,IACX,mBAAsB,IACtB,aAAgB,IAChB,aAAgB,IAChB,YAAe,IACf,YAAe,IACf,cAAiB,IACjB,MAAS,IACT,QAAW,IACX,iBAAoB,IACpB,UAAa,IACb,iBAAoB,IACpB,gBAAmB,IACnB,sBAAyB,IACzB,KAAQ,IACR,UAAa,IACb,YAAe,IACf,OAAU,IACV,UAAa,IACb,OAAU,IACV,eAAkB,IAClB,SAAY,IACZ,eAAkB,IAClB,YAAe,IACf,YAAe,IACf,eAAkB,IAClB,eAAkB,IAClB,eAAkB,IAClB,kBAAqB,IACrB,eAAkB,IAClB,OAAU,IACV,cAAiB,IACjB,gBAAmB,IACnB,cAAiB,IACjB,eAAkB,IAClB,IAAO,IACP,YAAe,IACf,aAAgB,IAChB,SAAY,IACZ,MAAS,IACT,KAAQ,IACR,IAAO,IACP,YAAe,IACf,IAAO,IACP,SAAY,IACZ,eAAkB,IAClB,UAAa,IACb,aAAgB,IAChB,SAAY,IACZ,IAAO,IACP,MAAS,IACT,YAAe,IACf,WAAc,IACd,eAAkB,IAClB,QAAW,IACX,kBAAqB,IACrB,kBAAqB,IACrB,SAAY,IACZ,SAAY,IACZ,QAAW,IACX,WAAc,IACd,iBAAoB,IACpB,MAAS,IACT,MAAS,IACT,MAAS,IACT,QAAW,IACX,QAAW,IACX,OAAU,IACV,SAAY,IACZ,sBAAyB,IACzB,WAAc,IACd,KAAQ,IACR,WAAc,IACd,gBAAmB,IACnB,qBAAwB,IACxB,iBAAoB,OAG5B,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,gBAAmB,IACnB,YAAe,IACf,OAAU,IACV,YAAe,IACf,gBAAmB,IACnB,QAAW,IACX,WAAc,IACd,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,oBAAuB,IACvB,iBAAoB,IACpB,oBAAuB,IACvB,SAAY,IACZ,uBAA0B,IAC1B,oBAAuB,IACvB,iBAAoB,IACpB,SAAY,IACZ,IAAO,IACP,UAAa,IACb,UAAa,IACb,kBAAqB,IACrB,UAAa,IACb,WAAc,IACd,cAAiB,IACjB,MAAS,IACT,iBAAoB,IACpB,eAAkB,IAClB,OAAU,IACV,YAAe,IACf,UAAa,IACb,aAAgB,IAChB,UAAa,IACb,iBAAoB,IACpB,kBAAqB,IACrB,WAAc,IACd,YAAe,IACf,aAAgB,IAChB,YAAe,IACf,YAAe,IACf,aAAgB,IAChB,SAAY,IACZ,YAAe,IACf,UAAa,IACb,YAAe,IACf,WAAc,IACd,iBAAoB,IACpB,SAAY,IACZ,SAAY,IACZ,eAAkB,IAClB,KAAQ,IACR,YAAe,IACf,UAAa,IACb,UAAa,IACb,cAAiB,IACjB,YAAe,IACf,oBAAuB,IACvB,QAAW,IACX,MAAS,IACT,gBAAmB,IACnB,kBAAqB,IACrB,mBAAsB,IACtB,QAAW,IACX,UAAa,IACb,YAAe,IACf,SAAY,IACZ,aAAgB,IAChB,aAAgB,IAChB,yBAA4B,IAC5B,mBAAsB,IACtB,gBAAmB,IACnB,gBAAmB,IACnB,eAAkB,IAClB,oBAAuB,IACvB,gBAAmB,IACnB,sBAAyB,IACzB,YAAe,IACf,UAAa,IACb,SAAY,IACZ,mBAAsB,IACtB,WAAc,IACd,YAAe,IACf,SAAY,IACZ,WAAc,IACd,gBAAmB,IACnB,iBAAoB,IACpB,cAAiB,IACjB,gBAAmB,IACnB,gBAAmB,IACnB,YAAe,IACf,UAAa,IACb,cAAiB,IACjB,OAAU,IACV,eAAkB,OAG1B,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,eAAkB,IAClB,oBAAuB,IACvB,kBAAqB,IACrB,WAAc,IACd,SAAY,IACZ,oBAAuB,IACvB,sBAAyB,IACzB,cAAiB,IACjB,mBAAsB,IACtB,0BAA6B,IAC7B,eAAkB,IAClB,eAAkB,IAClB,cAAiB,IACjB,iBAAoB,IACpB,MAAS,IACT,SAAY,IACZ,sBAAyB,IACzB,kBAAqB,IACrB,cAAiB,IACjB,aAAgB,IAChB,kBAAqB,IACrB,iBAAoB,IACpB,WAAc,IACd,WAAc,IACd,YAAe,IACf,gBAAmB,IACnB,aAAgB,IAChB,iBAAoB,IACpB,iBAAoB,IACpB,UAAa,IACb,kBAAqB,IACrB,oBAAuB,IACvB,oBAAuB,IACvB,qBAAwB,IACxB,eAAkB,IAClB,sBAAyB,IACzB,SAAY,IACZ,aAAgB,IAChB,sBAAyB,IACzB,WAAc,IACd,YAAe,IACf,oBAAuB,IACvB,cAAiB,IACjB,sBAAyB,IACzB,YAAe,IACf,WAAc,IACd,mBAAsB,IACtB,cAAiB,IACjB,sBAAyB,IACzB,eAAkB,IAClB,iBAAoB,IACpB,yBAA4B,IAC5B,iCAAoC,IACpC,kBAAqB,IACrB,oBAAuB,IACvB,oBAAuB,IACvB,qBAAwB,IACxB,aAAgB,IAChB,eAAkB,IAClB,eAAkB,IAClB,gBAAmB,IACnB,cAAiB,IACjB,gBAAmB,IACnB,YAAe,IACf,cAAiB,IACjB,eAAkB,IAClB,sBAAyB,IACzB,wBAA2B,IAC3B,iBAAoB,IACpB,eAAkB,IAClB,yBAA4B,IAC5B,YAAe,IACf,cAAiB,IACjB,QAAW,IACX,QAAW,IACX,QAAW,IACX,YAAe,IACf,WAAc,IACd,WAAc,IACd,iBAAoB,IACpB,UAAa,IACb,cAAiB,IACjB,mBAAsB,IACtB,oBAAuB,IACvB,SAAY,IACZ,cAAiB,IACjB,eAAkB,IAClB,eAAkB,IAClB,aAAgB,IAChB,aAAgB,IAChB,IAAO,IACP,eAAkB,IAClB,SAAY,IACZ,YAAe,IACf,UAAa,IACb,SAAY,IACZ,UAAa,IACb,cAAiB,IACjB,WAAc,IACd,aAAgB,OAGxB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,aAAgB,IAChB,WAAc,IACd,OAAU,IACV,OAAU,IACV,gBAAmB,IACnB,qBAAwB,IACxB,eAAkB,IAClB,eAAkB,IAClB,kBAAqB,IACrB,YAAe,IACf,aAAgB,IAChB,aAAgB,IAChB,mBAAsB,IACtB,cAAiB,IACjB,YAAe,IACf,cAAiB,IACjB,SAAY,IACZ,UAAa,IACb,UAAa,IACb,SAAY,IACZ,WAAc,IACd,YAAe,IACf,OAAU,IACV,iBAAoB,IACpB,iBAAoB,IACpB,iBAAoB,IACpB,aAAgB,IAChB,cAAiB,IACjB,QAAW,IACX,uBAA0B,IAC1B,WAAc,IACd,gBAAmB,IACnB,MAAS,IACT,WAAc,IACd,aAAgB,IAChB,UAAa,IACb,aAAgB,IAChB,SAAY,IACZ,eAAkB,IAClB,WAAc,IACd,SAAY,IACZ,uBAA0B,IAC1B,YAAe,IACf,YAAe,IACf,gBAAmB,IACnB,kBAAqB,IACrB,mBAAsB,IACtB,eAAkB,IAClB,iBAAoB,IACpB,eAAkB,IAClB,aAAgB,IAChB,gBAAmB,IACnB,mBAAsB,IACtB,UAAa,IACb,iBAAoB,IACpB,aAAgB,IAChB,WAAc,IACd,UAAa,IACb,gBAAmB,IACnB,aAAgB,IAChB,mBAAsB,IACtB,eAAkB,IAClB,WAAc,IACd,aAAgB,IAChB,OAAU,IACV,QAAW,IACX,aAAgB,IAChB,QAAW,IACX,UAAa,IACb,aAAgB,IAChB,WAAc,IACd,UAAa,IACb,QAAW,IACX,eAAkB,IAClB,eAAkB,IAClB,gBAAmB,IACnB,aAAgB,IAChB,cAAiB,IACjB,eAAkB,IAClB,YAAe,IACf,oBAAuB,IACvB,mBAAsB,IACtB,4BAA+B,IAC/B,iBAAoB,IACpB,kBAAqB,IACrB,0BAA6B,IAC7B,oBAAuB,IACvB,4BAA+B,IAC/B,mBAAsB,IACtB,mBAAsB,IACtB,mBAAsB,IACtB,mBAAsB,IACtB,iBAAoB,IACpB,2BAA8B,IAC9B,aAAgB,IAChB,iBAAoB,IACpB,gBAAmB,IACnB,qBAAwB,IACxB,gBAAmB,IACnB,YAAe,OAGvB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,sBACZkR,IAAK,QAAUI,EAAU,iDAE7Bqc,MAAO,CACH,gBAAmB,IACnB,iBAAoB,IACpB,gBAAmB,IACnB,eAAkB,IAClB,eAAkB,IAClB,cAAiB,IACjB,sBAAyB,IACzB,WAAc,IACd,qBAAwB,IACxB,UAAa,IACb,cAAiB,IACjB,SAAY,IACZ,YAAe,IACf,sBAAyB,IACzB,uBAA0B,IAC1B,iBAAoB,IACpB,sBAAyB,IACzB,YAAe,IACf,kBAAqB,IACrB,kBAAqB,IACrB,iBAAoB,IACpB,oBAAuB,IACvB,oBAAuB,IACvB,0BAA6B,IAC7B,wBAA2B,IAC3B,mBAAsB,IACtB,iBAAoB,IACpB,kBAAqB,IACrB,mBAAsB,IACtB,yBAA4B,IAC5B,iBAAoB,IACpB,KAAQ,IACR,qBAAwB,IACxB,gBAAmB,IACnB,sBAAyB,IACzB,UAAa,IACb,UAAa,IACb,iBAAoB,IACpB,YAAe,IACf,WAAc,IACd,SAAY,IACZ,QAAW,IACX,QAAW,IACX,aAAgB,IAChB,YAAe,IACf,eAAkB,IAClB,SAAY,IACZ,WAAc,IACd,YAAe,IACf,cAAiB,IACjB,eAAkB,IAClB,UAAa,IACb,QAAW,IACX,YAAe,IACf,gBAAmB,IACnB,UAAa,IACb,aAAgB,IAChB,aAAgB,IAChB,aAAgB,IAChB,oBAAuB,IACvB,qBAAwB,IACxB,eAAkB,IAClB,cAAiB,IACjB,eAAkB,IAClB,kBAAqB,IACrB,gBAAmB,IACnB,SAAY,IACZ,aAAgB,IAChB,UAAa,IACb,cAAiB,IACjB,YAAe,IACf,gBAAmB,IACnB,YAAe,IACf,gBAAmB,IACnB,eAAkB,IAClB,mBAAsB,IACtB,cAAiB,IACjB,kBAAqB,IACrB,oBAAuB,IACvB,WAAc,IACd,gBAAmB,IACnB,OAAU,IACV,QAAW,IACX,aAAgB,IAChB,SAAY,IACZ,kBAAqB,IACrB,gBAAmB,IACnB,KAAQ,IACR,gBAAmB,IACnB,0BAA6B,IAC7B,cAAiB,IACjB,eAAkB,IAClB,cAAiB,IACjB,KAAQ,IACR,WAAc,IACd,WAAc,IACd,cAAiB,IACjB,iBAAoB,IACpB,cAAiB,IACjB,SAAY,OAGpB,QAAcF,EAAQjtB,EAC1B,gECtHO,SAASgtB,EAAgBlc,EAAS9Q,QACrB,IAAZ8Q,IAAsBA,EAAU,IACpC,IAAImc,EAAS,CACT7uB,MAAO,CACHuB,oBAAqB,YACrBE,oBAAqB,cACrB8Q,UAAW,SACXlR,WAAY,SACZytB,MAAO,QAEXtnB,SAAU,CACNpG,WAAY,oBACZkR,IAAK,QAAUI,EAAU,+CAE7Bqc,MAAO,CACHC,gBAAiB,IACjBC,YAAa,IACbC,UAAW,IACXC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,SAAU,IACVC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,YAAa,IACbC,aAAc,IACdC,iBAAkB,IAClBC,UAAW,IACXC,OAAQ,IACRC,YAAa,IACbC,aAAc,IACdC,SAAU,IACVC,UAAW,IACXC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,SAAU,IACVC,OAAQ,IACRC,OAAQ,IACRC,KAAM,IACNC,WAAY,IACZC,UAAW,IACX73B,IAAK,IACL83B,UAAW,IACXC,KAAM,IACNC,UAAW,IACXC,KAAM,IACNC,WAAY,IACZC,MAAO,IACPC,UAAW,IACXC,MAAO,IACPC,MAAO,IACPC,QAAS,IACTC,UAAW,IACXC,WAAY,IACZC,OAAQ,IACRC,SAAU,IACVC,SAAU,IACVC,UAAW,IACXC,WAAY,IACZC,WAAY,IACZC,WAAY,IACZC,YAAa,IACbC,KAAM,IACNC,sBAAuB,IACvBC,aAAc,OAGtB,QAAc1D,EAAQjtB,EAC1B,gEC5EW4wB,EAAsB,YAC7B,QAAkB,QAAS,WAC3B,QAAkB,WAAY,iBAC9B,QAAkB,eAAgB,sBAClC,QAAkB,eAAgB,eAClC,QAAkB,kBAAmB,gBACrC,QAAkB,WAAY,eAC9B,QAAkB,YAAa,cACnC,6RCNA,cAAW,kBAAmB,SCkB9B,IAAIC,EAAmB,kFACnBlsB,GAAM,EAAA5O,EAAA,KACH,SAASi3B,EAAgBlc,EAAS9Q,GAErC,IAAIhV,EAAIuC,EAAIC,EAAIC,OADA,IAAZqjB,IAAsBA,GAAsF,QAA1EvjB,EAAoB,QAAdvC,EAAK2Z,SAAwB,IAAP3Z,OAAgB,EAASA,EAAGonB,oBAAiC,IAAP7kB,OAAgB,EAASA,EAAGujC,eAA4F,QAA1ErjC,EAAoB,QAAdD,EAAKmX,SAAwB,IAAPnX,OAAgB,EAASA,EAAG4kB,oBAAiC,IAAP3kB,OAAgB,EAASA,EAAG4kB,cAAgBwe,GAEpS,CACI,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACFl7B,SAAQ,SAAUo7B,GAAc,OAAOA,EAAWjgB,EAAS9Q,EAAU,KACvE,QACJ,gCC7CO,SAASgxB,EAAOC,GACfC,IAASD,IACTC,EAAOD,EAEf,CAIO,SAASE,IAOZ,YANa9mC,IAAT6mC,IACAA,EACwB,oBAAbpoC,YACDA,SAASsoC,iBACsC,QAAjDtoC,SAASsoC,gBAAgBzoC,aAAa,QAE3CuoC,CACX,CAIA,IAAIA,EAEG,SAASG,IACZ,MAAO,CACHnsB,IAAKisB,IAEb,4BALAD,EAAOC,8DCKHG,aA5BOC,EAAgB,CAIvBh1B,KAAM,EAINi1B,WAAY,EAIZ1zB,YAAa,GAEb2zB,EAAqB,iBAKrBC,EAAwC,oBAAdC,WAA6B,UAAUC,KAAKD,UAAUE,WAChFC,EAAU,CAAC,EAEf,IACIA,EAAUxjC,MACd,CACA,MAAOtD,GAEP,CASA,IAAI+mC,EAA4B,WAC5B,SAASA,EAAWC,GAChBnlC,KAAKolC,OAAS,GACdplC,KAAKqlC,gBAAkB,GACvBrlC,KAAKslC,eAAiB,GACtBtlC,KAAKulC,SAAW,EAChBvlC,KAAKwlC,gBAAkB,CAAC,EACxBxlC,KAAKylC,kBAAoB,GACzBzlC,KAAK0lC,iBAAmB,CAAC,EACzB1lC,KAAK2lC,SAAU,QAAS,CAAEC,cAAelB,EAAcC,WAAYkB,cAAe,MAAOC,eAAWtoC,EAAWuoC,iBAAavoC,GAAa2nC,GACzInlC,KAAKwlC,gBAAkBxlC,KAAK2lC,QAAQK,gBAAkB,CAAC,CAC3D,CAwLA,OApLAd,EAAWvsB,YAAc,WACrB,IAAIxa,EAEJ,KADAsmC,EAAcQ,EAAQL,KACDH,EAAYwB,mBAAqBxB,EAAYwB,kBAAkBC,gBAAkBjqC,SAAW,CAC7G,IAAIkqC,GAAmC,QAAlBhoC,EAAK8mC,SAA4B,IAAP9mC,OAAgB,EAASA,EAAGonB,eAAiB,CAAC,EAC7Fkf,EAAcQ,EAAQL,GAAsB,IAAIM,EAAWiB,EAAat7B,YAC5E,CACA,OAAO45B,CACX,EAIAS,EAAWplC,UAAUsmC,UAAY,SAAUjB,GACvCnlC,KAAK2lC,SAAU,SAAS,QAAS,CAAC,EAAG3lC,KAAK2lC,SAAUR,EACxD,EAMAD,EAAWplC,UAAU8Y,QAAU,SAAUytB,GACrCrmC,KAAKylC,kBAAkB5tC,KAAKwuC,EAChC,EAMAnB,EAAWplC,UAAUwmC,aAAe,SAAUxxB,GAC1C,IAAIgxB,EAAY9lC,KAAK2lC,QAAQG,UAE7B,OAAaA,EAAYA,EAAY,IAAM,KAD9BhxB,GAAe9U,KAAK2lC,QAAQE,eACiB,IAAM7lC,KAAKulC,UACzE,EAKAL,EAAWplC,UAAUymC,eAAiB,SAAU/7B,EAAWkN,EAAKwkB,EAAMsK,GAClExmC,KAAKwlC,gBAAgB9tB,GAAOlN,EAC5BxK,KAAK0lC,iBAAiBl7B,GAAa,CAC/B0xB,KAAMA,EACNsK,MAAOA,EAEf,EAKAtB,EAAWplC,UAAU2mC,iBAAmB,SAAU/uB,GAC9C,OAAO1X,KAAKwlC,gBAAgB9tB,EAChC,EAIAwtB,EAAWplC,UAAU4mC,kBAAoB,WACrC,OAAO1mC,KAAKwlC,eAChB,EAKAN,EAAWplC,UAAU6mC,kBAAoB,SAAUn8B,GAC/C,IAAIo8B,EAAQ5mC,KAAK0lC,iBAAiBl7B,GAClC,OAAOo8B,GAASA,EAAM1K,IAC1B,EAKAgJ,EAAWplC,UAAU+mC,2BAA6B,SAAUr8B,GACxD,IAAIo8B,EAAQ5mC,KAAK0lC,iBAAiBl7B,GAClC,OAAOo8B,GAASA,EAAMJ,KAC1B,EAKAtB,EAAWplC,UAAUgnC,WAAa,SAAUC,EAAMC,GAC9C,IACIvrC,EADgBuE,KAAK2lC,QAAQC,gBACDlB,EAAch1B,KAAO1P,KAAKinC,wBAAqBzpC,EAI/E,GAHIwpC,GACAhnC,KAAKqlC,gBAAgBxtC,KAAKkvC,GAE1BtrC,EACA,OAAQuE,KAAK2lC,QAAQC,eACjB,KAAKlB,EAAcC,WACf,IAAIl0B,EAAQhV,EAAQgV,MACpB,IACIA,EAAMq2B,WAAWC,EAAMt2B,EAAMy2B,SAAShvC,OAC1C,CACA,MAAO0iB,GAIP,CACA,MACJ,KAAK8pB,EAAczzB,YACfxV,EAAQwV,YAAYhV,SAAS+/B,eAAe+K,SAKpD/mC,KAAKolC,OAAOvtC,KAAKkvC,GAEjB/mC,KAAK2lC,QAAQwB,cACbnnC,KAAK2lC,QAAQwB,aAAaJ,EAElC,EAKA7B,EAAWplC,UAAUsnC,SAAW,SAAUC,GACtC,OAASA,EAAwBrnC,KAAKqlC,gBAAgBt0B,KAAK,IAAM,IAAM/Q,KAAKolC,OAAOr0B,KAAK,IAAM/Q,KAAKslC,eAAev0B,KAAK,GAC3H,EAKAm0B,EAAWplC,UAAU4Y,MAAQ,WACzB1Y,KAAKolC,OAAS,GACdplC,KAAKslC,eAAiB,GACtBtlC,KAAKulC,SAAW,EAChBvlC,KAAK0lC,iBAAmB,CAAC,EACzB1lC,KAAKwlC,gBAAkB,CAAC,EACxBxlC,KAAKylC,kBAAkB38B,SAAQ,SAAUu9B,GAAY,OAAOA,GAAY,GAC5E,EAEAnB,EAAWplC,UAAUwnC,UAAY,WAC7BtnC,KAAKwlC,gBAAkB,CAAC,CAC5B,EACAN,EAAWplC,UAAUmnC,iBAAmB,WACpC,IAAI9kC,EAAQnC,KAUZ,OATKA,KAAKunC,eAAqC,oBAAbtrC,WAC9B+D,KAAKunC,cAAgBvnC,KAAKwnC,sBACrB3C,GAEDpjC,OAAOgmC,uBAAsB,WACzBtlC,EAAMolC,mBAAgB/pC,CAC1B,KAGDwC,KAAKunC,aAChB,EACArC,EAAWplC,UAAU0nC,oBAAsB,WACvC,IAAIx2B,EAAO/U,SAAS+U,KAChBJ,EAAe3U,SAAS4U,cAAc,SACtC62B,EAAqB,KACzB92B,EAAa3T,aAAa,oBAAqB,QAC/C,IAAI8oC,EAAc/lC,KAAK2lC,QAAQI,YAM/B,GALIA,GACIA,EAAY1M,OACZzoB,EAAa3T,aAAa,QAAS8oC,EAAY1M,OAGnDr5B,KAAKimC,kBAGLyB,EAAqB1nC,KAAKimC,kBAAkBp5B,uBAE3C,CACD,IAAI86B,EAAsB3nC,KAAK4nC,2BAE3BF,EADAC,EACqBA,EAAoB96B,mBAGpBmE,EAAKxC,WAAW,EAE7C,CAGA,OAFAwC,EAAK62B,aAAaj3B,EAAcI,EAAKzV,SAASmsC,GAAsBA,EAAqB,MACzF1nC,KAAKimC,kBAAoBr1B,EAClBA,CACX,EACAs0B,EAAWplC,UAAU8nC,yBAA2B,WAC5C,IAAI52B,EAAO/U,SAAS+U,KACpB,OAAIA,EACOA,EAAK1H,cAAc,4BAEvB,IACX,EACO47B,CACX,CApM+B,6EChCxB,SAAS4C,IAEZ,IADA,IAAIC,EAAY,GACP/vC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpC+vC,EAAU/vC,GAAM2G,UAAU3G,GAE9B,GAAI+vC,GAAkC,IAArBA,EAAU7vC,QAAgB6vC,EAAU,KAAOA,EAAU,GAAGC,mBACrE,OAAOD,EAAU,GAKrB,IAHA,IAAIE,EAAY,CAAC,EAEbC,EAA4B,CAAC,EACxB/pC,EAAK,EAAGgqC,EAAcJ,EAAW5pC,EAAKgqC,EAAYjwC,OAAQiG,IAAM,CACrE,IAAIiqC,EAAaD,EAAYhqC,GAC7B,GAAIiqC,EACA,IAAK,IAAIC,KAAQD,EACb,GAAIA,EAAW3oC,eAAe4oC,GAAO,CACjC,GAAa,uBAATA,QAAmE7qC,IAAlC4qC,EAAWJ,mBAAkC,CAE9E,IAAIM,EAAyBF,EAAWJ,mBACxC,IAAK,IAAIO,KAAeD,EAChBA,EAAuB7oC,eAAe8oC,KAClCL,EAA0BzoC,eAAe8oC,GACzCL,EAA0BK,GAAa1wC,KAAKywC,EAAuBC,IAGnEL,EAA0BK,GAAe,CAACD,EAAuBC,KAI7E,QACJ,CAGA,IAAIC,EAAcP,EAAUI,GACxBtL,EAAeqL,EAAWC,GAE1BJ,EAAUI,QADM7qC,IAAhBgrC,EACkBzL,GAGA,QAAgBrmC,MAAMuZ,QAAQu4B,GAAeA,EAAc,CAACA,GAAgB9xC,MAAMuZ,QAAQ8sB,GAAgBA,EAAe,CAACA,GAEpJ,CAGZ,CACA,GAAI19B,OAAOoS,KAAKy2B,GAA2BhwC,OAAS,EAAG,CACnD+vC,EAAUD,mBAAqB,CAAC,EAChC,IAAIS,EAAkBR,EAAUD,mBAC5BlI,EAAU,SAAUyI,GACpB,GAAIL,EAA0BzoC,eAAe8oC,GAAc,CACvD,IAAIG,EAAeR,EAA0BK,GAC7CE,EAAgBF,GAAe,SAAUI,GACrC,OAAOb,EAAgBvrC,WAAM,EAAQmsC,EAAa5L,KAAI,SAAU8L,GAC5D,MAAwC,mBAA1BA,EAAuCA,EAAsBD,GAAcC,CAC7F,IACJ,CACJ,CACJ,EAEA,IAAK,IAAIL,KAAeL,EACpBpI,EAAQyI,EAEhB,CACA,OAAON,CACX,4EC/DO,SAASY,EAAyBF,GAErC,IADA,IAAI3K,EAAY,GACPhmC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCgmC,EAAUhmC,EAAK,GAAK2G,UAAU3G,GAGlC,IADA,IAAIzD,EAAS,GACJ4J,EAAK,EAAG2qC,EAAc9K,EAAW7/B,EAAK2qC,EAAY5wC,OAAQiG,IAAM,CACrE,IAAIga,EAAS2wB,EAAY3qC,GACrBga,GACA5jB,EAAOsD,KAAuB,mBAAXsgB,EAAwBA,EAAOwwB,GAAcxwB,EAExE,CACA,OAAsB,IAAlB5jB,EAAO2D,OACA3D,EAAO,GAETA,EAAO2D,OAKL,IAAgBqE,WAAM,EAAQhI,GAElC,CAAC,CACZ,2ECxBO,SAASw0C,IAEZ,IADA,IAAI7M,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzB,IAAImc,EAAU,GACV60B,EAAU,GACVC,EAAa,IAAWtwB,cAgC5B,OA/BA,SAASuwB,EAAaC,GAClB,IAAK,IAAInxC,EAAK,EAAGoxC,EAAaD,EAAUnxC,EAAKoxC,EAAWlxC,OAAQF,IAAM,CAClE,IAAIqxC,EAAMD,EAAWpxC,GACrB,GAAIqxC,EACA,GAAmB,iBAARA,EACP,GAAIA,EAAI1xC,QAAQ,MAAQ,EACpBuxC,EAAaG,EAAIC,MAAM,UAEtB,CACD,IAAIC,EAAiBN,EAAWtC,kBAAkB0C,GAC9CE,EACAL,EAAaK,IAIiB,IAA1Bp1B,EAAQxc,QAAQ0xC,IAChBl1B,EAAQtc,KAAKwxC,EAGzB,MAEK3yC,MAAMuZ,QAAQo5B,GACnBH,EAAaG,GAEO,iBAARA,GACZL,EAAQnxC,KAAKwxC,EAGzB,CACJ,CACAH,CAAahN,GACN,CACH/nB,QAASA,EACT60B,QAASA,EAEjB,iICzCO,SAASjwB,EAASywB,GACrB,IAAW7wB,cAAcmuB,WAAW,eAAgB,SAAqB,UAAmB0C,GAAQ,KAAK,EAC7G,gCCTA,IAAIC,EACG,SAASC,IACZ,IAAIvrC,EAAIuC,EACR,IAAK+oC,EAAiB,CAClB,IAAI//B,EAA0B,oBAAbzN,SAA2BA,cAAWuB,EACnDmsC,EAA2B,oBAAd7E,UAA4BA,eAAYtnC,EACrDwnC,EAAoF,QAAvEtkC,EAAoB,QAAdvC,EAAKwrC,SAAwB,IAAPxrC,OAAgB,EAASA,EAAG6mC,iBAA8B,IAAPtkC,OAAgB,EAASA,EAAGgO,cAUxH+6B,EATC//B,EASiB,CACdkgC,YAAalgC,KAAO,qBAAsBA,EAAI66B,gBAAgBhzB,QAC9Ds4B,SAAU7E,GAAaA,EAAUrtC,QAAQ,YAAc,GACvDmyC,WAAY9E,GAAaA,EAAUrtC,QAAQ,UAAY,GACvDoyC,QAASJ,IAAQ,WAAW5E,KAAK4E,EAAI3E,aAAc,aAAaD,KAAKD,UAAUE,aAZjE,CACd4E,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,MAAM,EAWlB,CACA,OAAON,CACX,iJCjBO,SAASxwB,EAAU+wB,GACtB,IAAIf,EAAa,IAAWtwB,cACxBylB,EAAO6K,EAAW3C,eAClB2D,EAAa,GACjB,IAAK,IAAI5B,KAAQ2B,EACTA,EAASvqC,eAAe4oC,IACxB4B,EAAWpyC,KAAKwwC,EAAM,KAAK,SAAqB,UAAmB2B,EAAS3B,IAAQ,KAG5F,IAAI7B,EAAQyD,EAAWl5B,KAAK,IAG5B,OAFAk4B,EAAWnC,WAAW,cAAgB1I,EAAO,IAAMoI,EAAQ,KAAK,GAChEyC,EAAW1C,eAAenI,EAAMoI,EAAO,GAAI,CAAC,YAAaA,IAClDpI,CACX,qKCTO,SAAS8L,IAEZ,IADA,IAAInC,EAAY,GACP/vC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpC+vC,EAAU/vC,GAAM2G,UAAU3G,GAE9B,OAAOmyC,EAAapC,GAAW,UACnC,CAUO,SAASoC,EAAapC,EAAW50B,GACpC,IAAIhV,EAAIuC,EACJ0pC,EAAe,CAAEpC,mBAAoB,CAAC,GAE1C,IADeD,EAAU,IACRA,EAAU7vC,QAAU,EACjC,MAAO,CAAE8vC,mBAAoB,CAAC,GAElC,IAAIqC,EAAuB,IAAgB9tC,WAAM,EAAQwrC,GACrDuC,EAAgB,GACpB,IAAK,IAAIC,KAAgBF,EACrB,GAAIA,EAAqB5qC,eAAe8qC,GAAe,CACnD,GAAqB,uBAAjBA,EAAuC,CACvCH,EAAapC,mBAAqBqC,EAAqBrC,oBAAsB,CAAC,EAC9E,QACJ,CACA,IAAI7vB,EAASkyB,EAAqBE,GAC9B5pC,GAAK,OAAkBwX,GAAShE,EAAUxT,EAAGwT,QAAS60B,EAAUroC,EAAGqoC,SAChD,QAAlB7qC,EAAK6qC,SAA4B,IAAP7qC,OAAgB,EAASA,EAAGjG,SACnDsyC,GAAe,QAAoBr3B,GAAW,CAAC,EAAG,CAAE2B,YAAay1B,GAAgBvB,MAEjFsB,EAAczyC,KAAK2yC,GACnBJ,EAAaG,GAAgBp2B,EAAQ8V,OAAO,CAACugB,EAAahgC,YAAYuG,KAAK,MAI/Eq5B,EAAaG,GAAgBp2B,EAAQpD,KAAK,IAElD,CAEJ,IAAK,IAAI/Y,EAAK,EAAGyyC,EAAkBH,EAAetyC,EAAKyyC,EAAgBvyC,OAAQF,IAAM,CACjF,IAAIwyC,KAAeC,EAAgBzyC,MAE/B,QAAkBwyC,EAAiC,QAAlB9pC,EAAKyS,SAA4B,IAAPzS,OAAgB,EAASA,EAAGgqC,sBAE/F,CACA,OAAON,CACX,0ICxDO,SAASv/B,IAEZ,IADA,IAAIqxB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzB,OAAO2yC,EAASzO,GAAM,UAC1B,CAOO,SAASyO,EAASzO,EAAM/oB,GAC3B,IAAIy3B,EAAY1O,aAAgBxlC,MAAQwlC,EAAO,CAACA,GAC5C/9B,GAAK,OAAkBysC,GAAYz2B,EAAUhW,EAAGgW,QAAS60B,EAAU7qC,EAAG6qC,QAI1E,OAHIA,EAAQ9wC,QACRic,EAAQtc,MAAK,QAAiBsb,GAAW,CAAC,EAAG61B,IAE1C70B,EAAQpD,KAAK,IACxB,8OCtBA,IAAI85B,EAAe,cAKfC,EAAuB,qBAyC3B,SAASC,EAAeC,EAAaC,GACjC,OAAID,EAAYrzC,QAAQ,aAAe,EAC5BqzC,EAAYE,QAAQJ,EAAsB,MAEf,IAA7BE,EAAYrzC,QAAQ,KAClBszC,EAAkBD,EAEpBA,EAAYrzC,QAAQ,KAAO,EACzBszC,EAAkB,IAAMD,EAE5BA,CACX,CACA,SAASG,EAAgBF,EAAiBzE,EAAO4E,EAAUp8B,QACzC,IAAVw3B,IAAoBA,EAAQ,CAAE6E,QAAS,KACb,IAA1BD,EAASzzC,QAAQ,KAEjB2zC,EAAa,CAACt8B,GAAQw3B,EADtB4E,EAAWA,EAAW,IAAMH,GAGvBG,EAASzzC,QAAQ,MAAQ,EAnDtC,SAAqC4zC,GAEjC,IAAKT,EAAqB/F,KAAKwG,GAC3B,OAAOA,EAMX,IAJA,IAAIC,EAAkB,GAClBC,EAAa,qBACb7+B,EAAQ,KAEJA,EAAQ6+B,EAAW5Q,KAAK0Q,IAExB3+B,EAAM,GAAGjV,QAAQ,MAAQ,GACzB6zC,EAAgB3zC,KAAK,CACjB+U,EAAMtP,MACNsP,EAAMtP,MAAQsP,EAAM,GAAG1U,OAEvB0U,EAAM,GACD08B,MAAM,KACNxM,KAAI,SAAU4O,GAAK,MAAO,WAAaA,EAAEC,OAAS,GAAK,IACvD56B,KAAK,QAKtB,OAAOy6B,EACFI,UACAC,QAAO,SAAUT,EAAUjtC,GAC5B,IAAI28B,EAAa38B,EAAG,GAAI2tC,EAAgB3tC,EAAG,GAAI4tC,EAAc5tC,EAAG,GAGhE,OAFaitC,EAAS9P,MAAM,EAAGR,GAEfiR,EADHX,EAAS9P,MAAMwQ,EAEhC,GAAGP,EACP,CAoBQS,CAA4BZ,GACvB9B,MAAM,KACNxM,KAAI,SAAUr+B,GAAK,OAAOA,EAAEktC,MAAQ,IACpC7iC,SAAQ,SAAUmjC,GACnB,OAAOX,EAAa,CAACt8B,GAAQw3B,EAAOuE,EAAekB,EAAmBhB,GAC1E,IAGAK,EAAa,CAACt8B,GAAQw3B,EAAOuE,EAAeK,EAAUH,GAE9D,CACA,SAASK,EAAapP,EAAMsK,EAAOyE,QACjB,IAAVzE,IAAoBA,EAAQ,CAAE6E,QAAS,UACnB,IAApBJ,IAA8BA,EAAkB,KACpD,IAAIhC,EAAa,IAAWtwB,cACxBuzB,EAAe1F,EAAMyE,GACpBiB,IACDA,EAAe,CAAC,EAChB1F,EAAMyE,GAAmBiB,EACzB1F,EAAM6E,QAAQxzC,KAAKozC,IAEvB,IAAK,IAAIjzC,EAAK,EAAGm0C,EAASjQ,EAAMlkC,EAAKm0C,EAAOj0C,OAAQF,IAAM,CACtD,IAAIqxC,EAAM8C,EAAOn0C,GAEjB,GAAmB,iBAARqxC,EAAkB,CACzB,IAAI+C,EAAgBnD,EAAWtC,kBAAkB0C,GAC7C+C,GACAd,EAAac,EAAe5F,EAAOyE,EAG3C,MACK,GAAIv0C,MAAMuZ,QAAQo5B,GACnBiC,EAAajC,EAAK7C,EAAOyE,QAGzB,IAAK,IAAI5C,KAAQgB,EACb,GAAIA,EAAI5pC,eAAe4oC,GAAO,CAC1B,IAAI70B,EAAY61B,EAAIhB,GACpB,GAAa,cAATA,EAAsB,CAEtB,IAAIv9B,EAAYu+B,EAAIv+B,UACpB,IAAK,IAAIkgC,KAAelgC,EAChBA,EAAUrL,eAAeurC,IACzBG,EAAgBF,EAAiBzE,EAAOwE,EAAalgC,EAAUkgC,GAG3E,KAC8B,iBAAdx3B,EAEM,OAAdA,GACA23B,EAAgBF,EAAiBzE,EAAO6B,EAAM70B,QAIhChW,IAAdgW,IAEa,WAAT60B,GAA8B,YAATA,EACrBgE,EAAYH,EAAc7D,EAAM70B,GAGhC04B,EAAa7D,GAAQ70B,EAIrC,CAGZ,CACA,OAAOgzB,CACX,CACA,SAAS6F,EAAYH,EAAc9N,EAAMpvB,GACrC,IAAIs9B,EAAyB,iBAAVt9B,EAAqBA,EAAMs6B,MAAM,KAAO,CAACt6B,GAC5Dk9B,EAAa9N,EAAO,OAASkO,EAAM,GACnCJ,EAAa9N,EAAO,SAAWkO,EAAM,IAAMA,EAAM,GACjDJ,EAAa9N,EAAO,UAAYkO,EAAM,IAAMA,EAAM,GAClDJ,EAAa9N,EAAO,QAAUkO,EAAM,IAAMA,EAAM,IAAMA,EAAM,EAChE,CAiBA,SAASC,EAAazvC,EAAQ88B,GAC1B,OAAIA,GAAS,EACF,GAEG,IAAVA,EACO98B,EAEJA,EAASyvC,EAAazvC,EAAQ88B,EAAQ,EACjD,CACO,SAAS4S,EAAqBr5B,EAASs5B,GAC1C,IAAKA,EACD,MAAO,GAEX,IAAIC,EAAa,GACjB,IAAK,IAAI9F,KAAS6F,EACVA,EAAYhtC,eAAemnC,IAAUA,IAAUiE,QAAuCrtC,IAAvBivC,EAAY7F,IAC3E8F,EAAW70C,KAAK+uC,EAAO6F,EAAY7F,IAI3C,IAAK,IAAI3tC,EAAI,EAAGA,EAAIyzC,EAAWx0C,OAAQe,GAAK,GACxC,OAAWyzC,EAAYzzC,IACvB,OAAayzC,EAAYzzC,IACzB,OAAYka,EAASu5B,EAAYzzC,IACjC,OAAYyzC,EAAYzzC,GAG5B,IAASA,EAAI,EAAGA,EAAIyzC,EAAWx0C,OAAQe,GAAK,EACxCyzC,EAAWnvC,OAAOtE,EAAG,EAAG,IAAKyzC,EAAWzzC,GAAI,KAEhD,OAAOyzC,EAAW37B,KAAK,GAC3B,CACO,SAAS47B,EAAoBx5B,GAEhC,IADA,IAAI+oB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,EAAK,GAAK2G,UAAU3G,GAE7B,IAAIwuC,EAAQ8E,EAAapP,GACrBxkB,EAtDR,SAAwBvE,EAASqzB,GAG7B,IAFA,IAAIoG,EAAa,CAACz5B,EAAQkF,IAAM,MAAQ,OACpCw0B,GAAW,EACN70C,EAAK,EAAGmG,EAAKqoC,EAAM6E,QAASrzC,EAAKmG,EAAGjG,OAAQF,IAAM,CACvD,IAAIozC,EAAWjtC,EAAGnG,GAClB40C,EAAW/0C,KAAKuzC,GAChB,IAAI0B,EAAmBtG,EAAM4E,GAC7B,IAAK,IAAI73B,KAAYu5B,EACbA,EAAiBrtC,eAAe8T,SAA4C/V,IAA/BsvC,EAAiBv5B,KAC9Ds5B,GAAW,EACXD,EAAW/0C,KAAK0b,EAAUu5B,EAAiBv5B,IAGvD,CACA,OAAOs5B,EAAWD,EAAW77B,KAAK,SAAMvT,CAC5C,CAuCcuvC,CAAe55B,EAASqzB,GAClC,GAAI9uB,EAAK,CACL,IAAIuxB,EAAa,IAAWtwB,cACxB6xB,EAAe,CACfhgC,UAAWy+B,EAAWxC,iBAAiB/uB,GACvCA,IAAKA,EACLwkB,KAAMA,GAEV,IAAKsO,EAAahgC,UAAW,CACzBggC,EAAahgC,UAAYy+B,EAAW3C,aA5MhD,SAAwBE,GACpB,IAAIwG,EAAYxG,GAASA,EAAM,KAC/B,OAAOwG,EAAYA,EAAUl4B,iBAActX,CAC/C,CAyM6DyvC,CAAezG,IAEhE,IADA,IAAI0G,EAAgB,GACX/uC,EAAK,EAAGuC,EAAK8lC,EAAM6E,QAASltC,EAAKuC,EAAGxI,OAAQiG,IAAM,CACvD,IAAIitC,EAAW1qC,EAAGvC,GAClB+uC,EAAcr1C,KAAKuzC,EAAUoB,EAAqBr5B,EAASqzB,EAAM4E,IACrE,CACAZ,EAAa0C,cAAgBA,CACjC,CACA,OAAO1C,CACX,CAEJ,CAOO,SAAS2C,EAAkB3C,EAAcE,QACd,IAA1BA,IAAoCA,EAAwB,GAChE,IAAIzB,EAAa,IAAWtwB,cACxBnO,EAAYggC,EAAahgC,UAAWkN,EAAM8yB,EAAa9yB,IAAKwkB,EAAOsO,EAAatO,KAAMgR,EAAgB1C,EAAa0C,cACvH,GAAIA,EAAe,CAEf,IAAK,IAAIj0C,EAAI,EAAGA,EAAIi0C,EAAch1C,OAAQe,GAAK,EAAG,CAC9C,IAAIutC,EAAQ0G,EAAcj0C,EAAI,GAC9B,GAAIutC,EAAO,CACP,IAAI4E,EAAW8B,EAAcj0C,GAGzBm0C,GAFJhC,EAAWA,EAASF,QAAQ,KAAMqB,EAAa,IAAM/B,EAAahgC,UAAWkgC,KAE9C,IAAMlE,EAAQ,KAAiC,IAA1B4E,EAASzzC,QAAQ,KAAa,IAAM,IACxFsxC,EAAWnC,WAAWsG,EAC1B,CACJ,CACAnE,EAAW1C,eAAe/7B,EAAWkN,EAAKwkB,EAAMgR,EACpD,CACJ,CACO,SAASG,EAAiBl6B,GAE7B,IADA,IAAI+oB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,EAAK,GAAK2G,UAAU3G,GAE7B,IAAIwyC,EAAemC,EAAoBpwC,WAAM,GAAQ,QAAe,CAAC4W,GAAU+oB,IAC/E,OAAIsO,GACA2C,EAAkB3C,EAAcr3B,EAAQu3B,uBACjCF,EAAahgC,WAEjB,EACX,iDCnQA,IAAIg8B,EAAQ,CAAC,EACN,SAAS8G,EAAWC,EAAWjwC,GAClC,IAAIypC,EAAOwG,EAAUjwC,GACE,MAAnBypC,EAAKyG,OAAO,KACZD,EAAUjwC,GAASkpC,EAAMO,GAAQP,EAAMO,IAASA,EAAKmE,QAAQ,WAAY,OAAOx8B,cAExF,4ECLA,IAAI++B,EAAkB,CAClB,cAAe,GAEZ,SAASC,EAAYH,EAAWjwC,GACnC,IAAIqwC,GAAiB,SACjBvP,EAAOmP,EAAUjwC,GACrB,GAAImwC,EAAgBrP,GAAO,CACvB,IAAIpvB,EAAQu+B,EAAUjwC,EAAQ,GAC1BmwC,EAAgBrP,KACZuP,EAAe/D,UACf2D,EAAU11C,KAAK,WAAaumC,EAAMpvB,GAElC2+B,EAAe9D,OACf0D,EAAU11C,KAAK,QAAUumC,EAAMpvB,GAE/B2+B,EAAe5D,MACfwD,EAAU11C,KAAK,OAASumC,EAAMpvB,GAE9B2+B,EAAe7D,SACfyD,EAAU11C,KAAK,MAAQumC,EAAMpvB,GAGzC,CACJ,iDCxBA,IAAI4+B,EAAyB,UACzB,eACA,cACA,OACA,YACA,cACA,eACA,UACA,QACA,UACA,QACH,KACM,SAASC,EAAaN,EAAWjwC,GACpC,IAAI8gC,EAAOmP,EAAUjwC,GACjB0R,EAAQu+B,EAAUjwC,EAAQ,GAC9B,GAAqB,iBAAV0R,EAAoB,CAC3B,IAAI8+B,EAAiBF,EAAuBj2C,QAAQymC,IAAS,EACzD2P,EAAuB3P,EAAKzmC,QAAQ,OAAS,EAC7Cq2C,EAAOF,GAAkBC,EAAuB,GAAK,KACzDR,EAAUjwC,EAAQ,GAAK,GAAK0R,EAAQg/B,CACxC,CACJ,gCCrBA,IAAI7vC,mBACJ,IAAI8vC,EAAO,OACPC,EAAQ,QACRC,EAAU,UACVC,IAAqBjwC,EAAK,CAAC,GACxB8vC,GAAQC,EACX/vC,EAAG+vC,GAASD,EACZ9vC,GACAkwC,EAAqB,CACrB,WAAY,WACZ,YAAa,YACb,YAAa,aAMV,SAASC,EAAYn7B,EAASo6B,EAAWjwC,GAC5C,GAAI6V,EAAQkF,IAAK,CACb,IAAIpa,EAASsvC,EAAUjwC,GACvB,IAAKW,EACD,OAEJ,IAAI+Q,EAAQu+B,EAAUjwC,EAAQ,GAC9B,GAAqB,iBAAV0R,GAAsBA,EAAMrX,QAAQw2C,IAAY,EACvDZ,EAAUjwC,EAAQ,GAAK0R,EAAMk8B,QAAQ,6CAA8C,SAElF,GAAIjtC,EAAOtG,QAAQs2C,IAAS,EAC7BV,EAAUjwC,GAASW,EAAOitC,QAAQ+C,EAAMC,QAEvC,GAAIjwC,EAAOtG,QAAQu2C,IAAU,EAC9BX,EAAUjwC,GAASW,EAAOitC,QAAQgD,EAAOD,QAExC,GAAIM,OAAOv/B,GAAOrX,QAAQs2C,IAAS,EACpCV,EAAUjwC,EAAQ,GAAK0R,EAAMk8B,QAAQ+C,EAAMC,QAE1C,GAAIK,OAAOv/B,GAAOrX,QAAQu2C,IAAU,EACrCX,EAAUjwC,EAAQ,GAAK0R,EAAMk8B,QAAQgD,EAAOD,QAE3C,GAAIG,EAAkBnwC,GACvBsvC,EAAUjwC,GAAS8wC,EAAkBnwC,QAEpC,GAAIowC,EAAmBr/B,GACxBu+B,EAAUjwC,EAAQ,GAAK+wC,EAAmBr/B,QAG1C,OAAQ/Q,GACJ,IAAK,SACL,IAAK,UACDsvC,EAAUjwC,EAAQ,GAqBtC,SAAkB0R,GACd,GAAqB,iBAAVA,EAAoB,CAC3B,IAAIs9B,EAAQt9B,EAAMs6B,MAAM,KACxB,GAAqB,IAAjBgD,EAAMp0C,OACN,OAAOo0C,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,EAExE,CACA,OAAOt9B,CACX,CA7B2Cw/B,CAASx/B,GAChC,MACJ,IAAK,aACDu+B,EAAUjwC,EAAQ,GAStC,SAAmB0R,GACf,IAAIs9B,EAAQt9B,EAAMs6B,MAAM,KACpBmF,EAAYC,SAASpC,EAX+B,GAWb,IAE3C,OADAA,EAAM,GAAKA,EAAM,GAAGpB,QAAQqD,OAAOE,GAAYF,QAAoB,EAAbE,IAC/CnC,EAAMv7B,KAAK,IACtB,CAd2C49B,CAAU3/B,GAIjD,CACJ,2DC5BO,IAAItP,EAAW,WAQlB,OAPAA,EAAWL,OAAOM,QAAU,SAAkBC,GAC1C,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KAAII,EAAEJ,GAAKf,EAAEe,IAE9E,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,EA+GO,SAASH,IACZ,IAAK,IAAIC,EAAI,EAAGxF,EAAI,EAAGyF,EAAKC,UAAUzG,OAAQe,EAAIyF,EAAIzF,IAAKwF,GAAKE,UAAU1F,GAAGf,OACxE,IAAI0G,EAAIlI,MAAM+H,GAAII,EAAI,EAA3B,IAA8B5F,EAAI,EAAGA,EAAIyF,EAAIzF,IACzC,IAAK,IAAI6F,EAAIH,UAAU1F,GAAI8F,EAAI,EAAGC,EAAKF,EAAE5G,OAAQ6G,EAAIC,EAAID,IAAKF,IAC1DD,EAAEC,GAAKC,EAAEC,GACjB,OAAOH,CACX,gEC/IO,SAASgwC,EAASC,GAIrB,IAAI7jC,EAAM,WAQV,YAPoBxN,IAAhBwN,EAAI5H,UAGJ4H,EAAI5H,QAAU,CACV4L,MAA+B,mBAAjB6/B,EAA8BA,IAAiBA,IAG9D7jC,EAAI5H,QAAQ4L,KACvB,2FCjBO,SAAS4E,IAEZ,IADA,IAAIk7B,EAAO,GACF92C,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpC82C,EAAK92C,GAAM2G,UAAU3G,GAEzB,IAAI+2C,EAAiB,eAAkB,SAAU//B,GAE7C+/B,EAAe3rC,QAAU4L,EACzB,IAAK,IAAIhX,EAAK,EAAGg3C,EAASF,EAAM92C,EAAKg3C,EAAO92C,OAAQF,IAAM,CACtD,IAAIgT,EAAMgkC,EAAOh3C,GACE,mBAARgT,EACPA,EAAIgE,GAEChE,IAELA,EAAI5H,QAAU4L,EAEtB,CACJ,IAAG,QAAe8/B,IAClB,OAAOC,CACX,yFCnBO,SAASE,EAAWxzC,EAASyzC,EAAW7I,EAAU8I,GAErD,IAAIC,EAAc,SAAa/I,GAC/B+I,EAAYhsC,QAAUijC,EACtB,aAAgB,WACZ,IAAIgJ,EAAgB5zC,GAAW,YAAaA,EAAUA,EAAQ2H,QAAU3H,EACxE,GAAK4zC,EAIL,OADc,IAAAC,IAAGD,EAAeH,GAAW,SAAUzuC,GAAM,OAAO2uC,EAAYhsC,QAAQ3C,EAAK,GAAG0uC,EAElG,GAAG,CAAC1zC,EAASyzC,EAAWC,GAC5B,gECfO,SAASI,EAAYvgC,GACxB,IAAIhE,GAAM,IAAAwkC,UAIV,OAHA,IAAAC,YAAU,WACNzkC,EAAI5H,QAAU4L,CAClB,IACOhE,EAAI5H,OACf,gCCyIO,SAAS5E,IACZ,IAAK,IAAIC,EAAI,EAAGxF,EAAI,EAAGyF,EAAKC,UAAUzG,OAAQe,EAAIyF,EAAIzF,IAAKwF,GAAKE,UAAU1F,GAAGf,OACxE,IAAI0G,EAAIlI,MAAM+H,GAAII,EAAI,EAA3B,IAA8B5F,EAAI,EAAGA,EAAIyF,EAAIzF,IACzC,IAAK,IAAI6F,EAAIH,UAAU1F,GAAI8F,EAAI,EAAGC,EAAKF,EAAE5G,OAAQ6G,EAAIC,EAAID,IAAKF,IAC1DD,EAAEC,GAAKC,EAAEC,GACjB,OAAOH,CACX,kECzJA,IAAI8b,EAAgB,CAAC,EAEjBC,OAAOnd,EACX,IACImd,EAAOlZ,MACX,CACA,MAAOmZ,GAEP,CACO,SAASC,EAAWC,EAAaC,GACpC,QAAoB,IAATJ,EAAsB,CAE7B,IAAIK,EAAYL,EAAKM,aAAeN,EAAKM,cAAgB,CAAC,EAGrDD,EAASF,IAAiBJ,EAAcI,KACzCJ,EAAcI,GAAeC,GACbC,EAASF,GAAeE,EAASF,IAAgB,IACxDjjB,KAAKkjB,GAEtB,CACJ,CCrBAF,EAAW,wBAAyB,2YCGzB60B,GAAsB,OAAc,yFCFpCC,EAAkB,CAAC,EAC9B,IAAK,IAAIC,KAAa,IACd,IAAenwC,eAAemwC,KAE9BC,EAAcF,EAAiBC,EAAW,IAAI,EAAO,SAErDC,EAAcF,EAAiBC,EAAW,SAAS,EAAM,SAEzDC,EAAcF,EAAiBC,EAAW,cAAc,EAAO,cAE/DC,EAAcF,EAAiBC,EAAW,mBAAmB,EAAM,cAEnEC,EAAcF,EAAiBC,EAAW,UAAU,EAAO,eAE3DC,EAAcF,EAAiBC,EAAW,eAAe,EAAM,gBAMvE,SAASC,EAAcC,EAAKF,EAAWG,EAAQC,EAASC,GACpD5wC,OAAO6wC,eAAeJ,EAAKF,EAAYG,EAAQ,CAC3C1/B,IAAK,WACD,IAAIlS,EAEAoT,IAASpT,EAAK,CAAC,GAAM8xC,IAAe,UAAW/6B,QAAQ06B,GAAYzxC,GACvE,OAAO,OAAY6xC,EAAU,CAAEllC,UAAW,CAAE,SAAUyG,IAAYA,GAAO4+B,UAC7E,EACAC,YAAY,EACZC,cAAc,GAEtB,2EC7BWC,GAAiB,OAAc,4gCCF1C,cAAW,oBAAqB,WCIhC,mOCPO,IAAIC,EAAuB,oFACvBC,EAEX,8HACWC,EAEX,6HAIWC,EAAmC,oFACnCC,EAAsB,IACtBC,EAAuB,IACvBC,EAAsB,IACtBC,EAAuB,KACvBC,EAAwB,KACxBC,EAAyB,KACzBC,EAAsBL,EAAuB,EAC7CM,EAAuBL,EAAsB,EAC7CM,EAAsBL,EAAuB,EAC7CM,EAAuBL,EAAwB,EAC/CM,EAAwBL,EAAyB,EACjDM,EAA0B,IAC9B,SAASC,EAAkBC,EAAKt6C,GAGnC,MAAO,sBAF0B,iBAARs6C,EAAmB,oBAAsBA,EAAM,MAAQ,KAC/C,iBAARt6C,EAAmB,oBAAsBA,EAAM,MAAQ,GAEpF,CAIO,SAASu6C,IACZ,MAAO,CACHC,kBAAmB,OACnBC,qBAAsB,OAE9B,CAMO,SAASC,IACZ,IAAIzzC,EACJ,OAAOA,EAAK,CAAC,GAENuyC,GAAoC,CACnCgB,kBAAmB,OACnBC,qBAAsB,QAE1BxzC,CACR,wDClDO,IAAI0zC,EAAY,CACnBC,UAAW,OACXC,OAAQ,EACRC,QAAS,EACTC,UAAW,cAEJC,EAAS,CAChBC,SAAU,SACVC,aAAc,WACdC,WAAY,mFCLhB,SAASC,EAAwBC,EAAgBC,GAC7C,MAAO,CACHh9B,YAAa+8B,EACbE,YAAa,MACbvqC,MAAOsqC,EACPjkC,OAAQikC,EAEhB,CACA,SAASE,EAAwBD,GAC7B,MAAO,CACH/nB,QAAS,EACT+nB,YAAaA,EAErB,CAMA,SAASE,EAAyBC,EAAgBC,GAC9C,MAAO,CACHJ,YAAa,IACbvqC,MAAO2qC,EACPtkC,OAAQskC,EACRnoB,QAAS,EACTlV,YAAao9B,EAErB,CACA,SAASE,EAAyBP,EAAgBC,GAC9C,OAAO,SAAS,QAAS,CAAC,EAAGF,EAAwBC,EAAgBC,IAAkB,CACnF9nB,QAAS,GAEjB,CAuCO,IAAIqoB,EAA+B,CACtCC,+BAvCJ,SAAyCT,EAAgBK,EAAgBJ,EAAgBK,EAAgBJ,GACrG,OAAO,OAAU,CACb,KAAMH,EAAwBC,EAAgBC,GAC9C,QAASE,EAAwBD,GACjC,QAtBG,CACH/nB,QAAS,GAsBT,QAASioB,EAAyBC,EAAgBC,GAClD,KAAMC,EAAyBP,EAAgBC,GAC/C,SAAUM,EAAyBP,EAAgBC,GACnD,MAAOF,EAAwBC,EAAgBC,GAC/C,SAAUE,EAAwBD,GAClC,SA5BG,CACH/nB,QAAS,GA4BT,SAAUioB,EAAyBC,EAAgBC,GACnD,MAAOC,EAAyBP,EAAgBC,GAChD,SAAUM,EAAyBP,EAAgBC,GACnD,MAASF,EAAwBC,EAAgBC,GACjD,MAASE,EAAwBD,GACjC,MAlCG,CACH/nB,QAAS,GAkCT,MAAOioB,EAAyBC,EAAgBC,GAChD,OAAQ,CAAC,GAEjB,EAoBII,+BAnBJ,SAAyCV,EAAgBK,EAAgBJ,EAAgBK,EAAgBJ,GACrG,OAAO,OAAU,CACb,KAAMH,EAAwBC,EAAgBC,GAC9C,QAASE,EAAwBD,GACjC,QA3CG,CACH/nB,QAAS,GA2CT,QAASioB,EAAyBC,EAAgBC,GAClD,OAAQ,CAAC,GAEjB,EAYIK,uBAXJ,SAAiCljB,EAAemjB,GAC5C,MAAO,CACHnjB,cAAeA,EACfojB,wBAnEsB,IAoEtBnjB,kBAtEe,MAuEfojB,eAAgBF,GAtEJ,KAwEpB,kDC3EA,IAAIG,EAAiB,MACjBC,EAAgB,GAsDb,SAASC,EAAsBpvC,EAAOoO,EAAOnO,EAAW6D,EAAOqG,QACpD,IAAViE,IAAoBA,EAAQ,uBACd,IAAdnO,IAAwBA,EAAY,mBAC1B,IAAV6D,IAAoBA,EAAQurC,EAAgB,QAASpvC,SAC1C,IAAXkK,IAAqBA,EAASklC,EAAgB,SAAUpvC,IAE5D,IAAIqvC,EAAatvC,EAAM+Q,eAAe3C,IAAUpO,EAAM8Q,QAAQ1C,GAE1DmhC,EAsBR,SAAmBD,GACf,GAAsB,MAAlBA,EAAW,GAEX,MAAO,CACH90C,EAAG8vC,SAASgF,EAAWpY,MAAM,EAAG,GAAI,IACpCpC,EAAGwV,SAASgF,EAAWpY,MAAM,EAAG,GAAI,IACpCl8B,EAAGsvC,SAASgF,EAAWpY,MAAM,EAAG,GAAI,KAGvC,GAAoC,IAAhCoY,EAAW/7C,QAAQ,SAAgB,CAGxC,IAAI20C,GADJoH,EAAaA,EAAW9mC,MAAM,mBAAmB,IAC1B08B,MAAM,SAASxM,IAAI8W,QAC1C,MAAO,CACHh1C,EAAG0tC,EAAM,GACTpT,EAAGoT,EAAM,GACTltC,EAAGktC,EAAM,GAEjB,CAEA,MAAO,CACH1tC,EAAG,IACHs6B,EAAG,IACH95B,EAAG,IAEX,CA/CmBy0C,CAAUH,GAKzB,MAAO,CACHI,QAAS,KACTC,SAAU,WACVruC,MAAO,EACPqC,OAAQ,EACRG,MAAOA,EACPqG,OAAQA,EACR8hB,cAAe,OACf2jB,gBAAiB,oBATiB,aAAd3vC,EAA2B,YAAc,YAS5C,UAXAsvC,EAAS/0C,EAAI,KAAO+0C,EAASza,EAAI,KAAOya,EAASv0C,EAWjD,YAAiEs0C,EAAa,SAEvG,CAuCA,SAASD,EAAgBliC,EAAOlN,GAC5B,MAAc,UAAVkN,EACqB,eAAdlN,EAA6BkvC,EAAgB,OAG/B,aAAdlvC,EAA2BivC,EAAiB,MAE3D,8JCzHO,SAASW,EAAc7vC,EAAO8vC,EAAgBH,EAAUI,EAAmB3+B,EAAa4+B,EAAcC,GACzG,OAcJ,SAAgCjwC,EAAO+O,GACnC,IAAIhV,EAAIuC,OACQ,IAAZyS,IAAsBA,EAAU,CAAC,GACrC,IAAIxS,EAAKwS,EAAQmhC,MAAOA,OAAe,IAAP3zC,EAAgB,EAAIA,EAAIC,EAAKuS,EAAQjL,MAAOA,OAAe,IAAPtH,EAAgB,EAAIA,EAAIC,EAAKsS,EAAQ4gC,SAAUA,OAAkB,IAAPlzC,EAAgB,WAAaA,EAAIszC,EAAoBhhC,EAAQghC,kBAAmBrzC,EAAKqS,EAAQqC,YAAaA,OAAqB,IAAP1U,EAAgBsD,EAAM8Q,QAAQU,MAAQ9U,EAAIgR,EAAKqB,EAAQihC,aAAcA,OAAsB,IAAPtiC,EAAgB1N,EAAM8Q,QAAQgH,iBAAmBpK,EAAIC,EAAKoB,EAAQkhC,cAAeA,OAAuB,IAAPtiC,GAAuBA,EACld,MAAO,CAEHhH,QAAS,cAETgpC,SAAUA,EACVjpC,WAAY3M,EAAK,CAGT,qBAAsB,CAClBo2C,OAAQ,MAKhBp2C,EAAG,IAAM,KAA0B,MAAQk2C,EAAgB,SAAW,IAAM,UAAY,CACpFP,QAAS,KACTC,SAAU,WACVzuC,KAAMgvC,EAAQ,EACdzsC,IAAKysC,EAAQ,EACbvsC,OAAQusC,EAAQ,EAChB5uC,MAAO4uC,EAAQ,EACfC,OAAQrsC,EAAQ,YAAcsN,EAC9BzK,QAAS7C,EAAQ,YAAcksC,EAC/BI,OAAQ,IAASC,WACjB3pC,WAAYpK,EAAK,CAAC,EACdA,EAAG,MAAwByzC,EAC3BzzC,IAERvC,GAEZ,CArCeu2C,CAAuBtwC,EAXJ,iBAAnB8vC,GAAgCA,EAWFA,EAVA,CACjCI,MAAOJ,EACPH,SAAUA,EACVI,kBAAmBA,EACnB3+B,YAAaA,EACb4+B,aAAcA,EACdC,cAAeA,GAM3B,CAuCO,SAASM,IACZ,MAAO,CACH7pC,UAAW,CACP,sBAAuB,CAEnBypC,OAAQ,GAEZ,IAAK,CAEDxpC,QAAS,gBAIzB,CAUO,SAAS6pC,EAAqBxwC,EAAOkwC,EAAOpsC,EAAOsK,GACtD,IAAIrU,EAGJ,YAFc,IAAVm2C,IAAoBA,EAAQ,QAClB,IAAVpsC,IAAoBA,EAAQ,GACzB,CACH4C,WAAY3M,EAAK,CAAC,EACdA,EAAG,WAAa,KAA0B,aAAe,CACrD4M,QAAS7C,EAAQ,WAAasK,GAASpO,EAAM8Q,QAAQgH,kBACrD24B,eAAgBP,EAAQ,MAE5Bn2C,GAEZ,CAWO,IAAI22C,EAAqB,SAAUt/B,EAAau/B,EAAcC,EAAYC,GAC7E,IAAI92C,EAAIuC,EAAIC,OACO,IAAfq0C,IAAyBA,EAAa,eACnB,IAAnBC,IAA6BA,GAAkB,GACnD,IAAIC,EAAgC,iBAAfF,EACrB,MAAO,CACHx/B,YAAaA,EACb1K,UAAW,CACP,UAAW3M,EAAK,CACRkyB,cAAe,OACfyjB,QAAS,KACTC,SAAU,WACVzuC,KAAM4vC,EAAiB,EAAID,EAC3BptC,IAAKotC,EACLltC,OAAQktC,EACRvvC,MAAOwvC,EAAiB,EAAID,GAEhC92C,EAAG62C,GAAc,aAAex/B,EAChCrX,EAAG42C,aAAeA,EAClB52C,EAAG+J,MAAuB,iBAAf8sC,EAAgC,YAASx3C,EACpDW,EAAG2M,WAAapK,EAAK,CAAC,EAClBA,EAAG,OAAyBC,EAAK,CAAC,EAC9BA,EAAkB,WAAfq0C,EAA0B,cAAgB,qBAAuB,YACpEr0C,GACJD,GACJvC,IAGhB,+DC5HIg3C,GAAuB,gBAAgB,SAAU5V,EAAY9c,GAC7D,IAAI2yB,EAAa,IAAWz8B,cAC5B,OAAI8J,EAEOpjB,OAAOoS,KAAK8tB,GAAYsM,QAAO,SAAUwJ,EAAK7qC,GAEjD,OADA6qC,EAAI7qC,GAAa4qC,EAAW9O,aAAa/G,EAAW/0B,IAC7C6qC,CACX,GAAG,CAAC,GAGD9V,CACX,IAUO,SAAS+V,EAAoB/V,EAAYn7B,EAAOqe,GACnD,OAAO0yB,EAAqB5V,OAAwC/hC,IAA5BilB,EAAwCA,EAA0Bre,EAAMqe,wBACpH,gCCxBO,SAAS8yB,EAAqBp9B,GACjC,MAAO,CACHrN,UAAW,CACP,gBAAiBqN,EACjB,yBAA0BA,EAC1B,0BAA2BA,GAGvC,iECbO,IAAIq9B,EAAqB,CAC5BzB,SAAU,WACV7rC,MAAO,EACPqG,OAAQ,EACRwjC,QAAS,EACTC,QAAS,EACTuC,OAAQ,EACRpC,SAAU,qqCCSP,SAASsD,EAAiB1lC,EAAS2lC,EAAQtxC,GAC9C,IACIuxC,EADAC,EAAa7lC,EAGb8lC,EAAezxC,GAAS,IAAey5B,YAAY,CAAC,cAAUrgC,EAAWuS,EAAQiK,gBAAgB5V,MACjGA,IACAuxC,EAAc,CAAEvxC,MAAOA,IAE3B,IAAI0xC,EAAcJ,GAAUG,GAAgBA,EAAaE,SAAWF,EAAaE,QAAQL,GAezF,OAZIG,GAAgBC,GAAeD,IAAiBC,KAChDH,EAAc,CAAEvxC,MAAO0xC,IACX1xC,MAAM2xC,QAAUF,EAAaE,SAEzCJ,IACAC,EAAa,CACT57B,eAAgB,CACZE,UAAU,OAAcnK,EAAQiK,eAAeE,SAAUy7B,GACzDx7B,eAAgBpK,EAAQiK,eAAeG,kBAI5Cy7B,CACX,yJCnCII,GAAS,OAAY,CAAC,GACtBC,EAA0B,GACnBC,EAAmB,QACvB,SAASC,IACZ,IAAIh4C,EACAuC,EAAIC,EAAIC,EAAIC,EAEZiX,GAAM,UACqE,QAA1EnX,EAAoB,QAAdD,EAAKoX,SAAwB,IAAPpX,OAAgB,EAASA,EAAG6kB,oBAAiC,IAAP5kB,OAAgB,EAASA,EAAG2Y,aAE/GgjB,EAAUxkB,EAAIyN,aAAajM,aAErB,IAAeukB,YAAY,CAACqY,IAAmB9xC,SAC0B,QAA1EvD,EAAoB,QAAdD,EAAKkX,SAAwB,IAAPlX,OAAgB,EAASA,EAAG2kB,oBAAiC,IAAP1kB,OAAgB,EAASA,EAAGuD,SAC/G4xC,GAAS,OAAYl+B,EAAIyN,aAAanhB,QAG1C,IAAegyC,gBAAej4C,EAAK,CAAC,GAAM+3C,GAAoBF,EAAQ73C,IAE9E,CAOO,SAASk4C,EAASj0B,GAKrB,YAJoB,IAAhBA,IAA0BA,GAAc,IACxB,IAAhBA,IACA4zB,GAAS,OAAY,CAAC,EAAG5zB,IAEtB4zB,CACX,CAMO,SAASM,EAA8BjQ,IACS,IAA/C4P,EAAwBt+C,QAAQ0uC,IAChC4P,EAAwBp+C,KAAKwuC,EAErC,CAKO,SAASkQ,EAA4BlQ,GACxC,IAAIptC,EAAIg9C,EAAwBt+C,QAAQ0uC,IAC7B,IAAPptC,GAGJg9C,EAAwB14C,OAAOtE,EAAG,EACtC,CAMO,SAASqjC,EAAUl4B,EAAOge,GAC7B,IAAIjkB,EAcJ,YAboB,IAAhBikB,IAA0BA,GAAc,GAC5C4zB,GAAS,OAAY5xC,EAAOge,IAE5B,SAAgB,SAAS,SAAS,SAAS,QAAS,CAAC,EAAG4zB,EAAO9gC,SAAU8gC,EAAO7gC,gBAAiB6gC,EAAOzzB,SAgB5G,SAAoBne,GAEhB,IADA,IAAIoyC,EAAQ,CAAC,EACJx+C,EAAK,EAAGmG,EAAKkB,OAAOoS,KAAKrN,EAAM6Q,OAAQjd,EAAKmG,EAAGjG,OAAQF,IAG5D,IAFA,IAAIy+C,EAAWt4C,EAAGnG,GACdwxC,EAAOplC,EAAM6Q,MAAMwhC,GACd/1C,EAAK,EAAGC,EAAKtB,OAAOoS,KAAK+3B,GAAO9oC,EAAKC,EAAGzI,OAAQwI,IAAM,CAC3D,IAAI6S,EAAW5S,EAAGD,GACdzC,EAASw4C,EAAWljC,EAASi6B,OAAO,GAAGkJ,cAAgBnjC,EAAS+nB,MAAM,GACtEtsB,EAAQw6B,EAAKj2B,GACA,aAAbA,GAA4C,iBAAVvE,IAElCA,GAAgB,MAEpBwnC,EAAMv4C,GAAU+Q,CACpB,CAEJ,OAAOwnC,CACX,CAjCsHG,CAAWX,KAC7H,IAAeI,gBAAej4C,EAAK,CAAC,GAAM+3C,GAAoBF,EAAQ73C,IACtE83C,EAAwBntC,SAAQ,SAAUu9B,GACtC,IACIA,EAAS2P,EACb,CACA,MAAOp7B,GAEP,CACJ,IACOo7B,CACX,CAtDAG,kCC1BO,IAAIS,mBACX,SAAWA,GACPA,EAASC,IAAM,EAIfD,EAASE,eAAiB,EAC1BF,EAASnC,WAAa,EACtBmC,EAASG,UAAY,IACrBH,EAASI,MAAQ,IACjBJ,EAASK,YAAc,OAC1B,CAVD,CAUGL,IAAaA,EAAW,CAAC,8ECJrB,SAASM,EAAc/+B,GAC1B,IAAIhE,EAAU,CAAC,EACX2rB,EAAU,SAAUqX,GAEhB,IAAIC,EADJj/B,EAAO1Y,eAAe03C,IAEtB93C,OAAO6wC,eAAe/7B,EAASgjC,EAAW,CACtC9mC,IAAK,WAKD,YAJoB7S,IAAhB45C,IAEAA,GAAc,OAAYj/B,EAAOg/B,IAAYhH,YAE1CiH,CACX,EACAhH,YAAY,EACZC,cAAc,GAG1B,EACA,IAAK,IAAI8G,KAAah/B,EAClB2nB,EAAQqX,GAEZ,OAAOhjC,CACX,qGC3BA,IAAIkjC,EAAoB,CACpB//B,QAAS,gBAQN,SAASggC,EAAiBlZ,GAC7B,IAAI5zB,EAAY,GACZ2c,GAAO,QAAQiX,GAUnB,OATIjX,IACA3c,GAAY,OAAY2c,EAAKiZ,OAAO51B,UAAW6sC,EAAmB,CAC9DvsC,UAAW,CACP,WAAY,CACRgpC,QAAS,IAAO3sB,EAAKowB,KAAO,SAKrC/sC,CACX,6NCrBA,IACIgtC,EAAgB,IAAeC,SADX,QACuC,CAC3DC,UAAW,CACPC,iBAAiB,EACjBC,oBAAoB,GAExBC,WAAY,CAAC,IAGb5O,EAAa,IAAWtwB,cACxBswB,GAAcA,EAAWrwB,SACzBqwB,EAAWrwB,SAAQ,WACf,IAAK,IAAI3a,KAAUu5C,EACXA,EAAc/3C,eAAexB,IAAau5C,EAAcv5C,GAAQmiC,SAChEoX,EAAcv5C,GAAQmiC,OAAO51B,eAAYhN,EAGrD,IASJ,IAAIs6C,EAAoB,SAAU1Z,GAAQ,OAAOA,EAAK1vB,aAAe,EAM9D,SAASqpC,EAAcC,EAAY7kC,GACtC,IAAIitB,GAAS,SAAS,QAAS,CAAC,EAAG4X,GAAa,CAAEC,cAAc,EAAOztC,eAAWhN,IAC9E8iC,EAAQ0X,EAAW1X,MAGvB,IAAK,IAAI4X,KADT/kC,EAAUA,GAAU,SAAS,QAAS,CAAC,EAAGqkC,EAAcE,WAAYvkC,GAAWqkC,EAAcE,UACxEpX,EACjB,GAAIA,EAAM7gC,eAAey4C,GAAW,CAChC,IAAIX,EAAOjX,EAAM4X,GACbC,EAAqBL,EAAkBI,GACvCV,EAAcW,GACdC,EAAmBF,GAGnBV,EAAcW,GAAsB,CAChCZ,KAAMA,EACNnX,OAAQA,EAGpB,CAER,CAMO,SAASiY,EAAgBC,GAwB5B,IAvBA,IAAInlC,EAAUqkC,EAAcE,UACxB5X,EAAU,SAAUoY,GACpB,IAAIC,EAAqBL,EAAkBI,GACvCV,EAAcW,UACPX,EAAcW,GAIhBhlC,EAAQwkC,kBACT,OAAK,aAAgBO,EAAW,iDAIpCV,EAAcK,WAAWM,WAClBX,EAAcK,WAAWM,GAGpC94C,OAAOoS,KAAK+lC,EAAcK,YAAY/uC,SAAQ,SAAU4O,GAChD8/B,EAAcK,WAAWngC,KAASygC,UAC3BX,EAAcK,WAAWngC,EAExC,GACJ,EACS1f,EAAK,EAAGugD,EAAcD,EAAWtgD,EAAKugD,EAAYrgD,OAAQF,IAE/D8nC,EADeyY,EAAYvgD,GAGnC,CAIO,SAASwgD,EAAkBN,EAAUO,GACxCjB,EAAcK,WAAWC,EAAkBI,IAAaJ,EAAkBW,EAC9E,CAQO,SAASC,EAAQta,GACpB,IAAIjX,OAAO3pB,EACP2V,EAAUqkC,EAAcE,UAG5B,GAFAtZ,EAAOA,EAAO0Z,EAAkB1Z,GAAQ,GACxCA,EAAOoZ,EAAcK,WAAWzZ,IAASA,EAGrC,GADAjX,EAAOqwB,EAAcpZ,GACX,CACN,IAAIgC,EAASjZ,EAAKiZ,OACdA,GAAUA,EAAOrnB,WACZqnB,EAAO6X,gBACR,OAAS7X,EAAOrnB,UAChBqnB,EAAO6X,cAAe,GAErB7X,EAAO51B,YACR41B,EAAO51B,WAAY,OAAY41B,EAAO7uB,MAAO,CACzCoB,WAAYytB,EAAOrnB,SAASpG,WAC5BC,WAAYwtB,EAAOrnB,SAASnG,YAAc,SAC1CkR,UAAWsc,EAAOrnB,SAAS+K,WAAa,YAIxD,MAGS3Q,EAAQwkC,iBAAmBxkC,EAAQykC,qBACpC,OAAK,aAAgBxZ,EAAO,mHAIxC,OAAOjX,CACX,CAMO,SAASwxB,EAAexlC,GAC3BqkC,EAAcE,WAAY,SAAS,QAAS,CAAC,EAAGF,EAAcE,WAAYvkC,EAC9E,CACA,IAAIylC,EAAgB,YAAE,KAClBC,EAAqB,gBAAS,KAClC,SAAST,EAAmBF,GACVV,EAAcE,UAGfC,kBACTiB,EAAc/gD,KAAKqgD,QACQ16C,IAAvBq7C,IACAA,EAAqBzd,YAAW,YAC5B,OAAK,0LAGDwd,EAActd,MAAM,EARZ,IAQkCvqB,KAAK,OAC9C6nC,EAAc1gD,OATP,GASoC,QAAU0gD,EAAc1gD,OAT5D,IAS0F,SAAW,KACjH2gD,OAAqBr7C,EACrBo7C,EAAgB,EACpB,GAbW,MAgBvB,0PCtIO,IAAIl5C,EAAW,WAQlB,OAPAA,EAAWL,OAAOM,QAAU,SAAkBC,GAC1C,IAAK,IAAInB,EAAGxF,EAAI,EAAG4G,EAAIlB,UAAUzG,OAAQe,EAAI4G,EAAG5G,IAE5C,IAAK,IAAIuG,KADTf,EAAIE,UAAU1F,GACOoG,OAAOS,UAAUL,eAAeM,KAAKtB,EAAGe,KAAII,EAAEJ,GAAKf,EAAEe,IAE9E,OAAOI,CACX,EACOF,EAASnD,MAAMyD,KAAMrB,UAChC,gEC5BIm6C,EAAuB,WAEvB,SAASA,EAAM59C,EAAQ69C,GACnB/4C,KAAKg5C,YAAc,KACnBh5C,KAAKi5C,cAAgB,KACrBj5C,KAAKk5C,aAAe,KACpBl5C,KAAKm5C,mBAAqB,KAC1Bn5C,KAAKo5C,aAAc,EACnBp5C,KAAKq5C,QAAUn+C,GAAU,KACzB8E,KAAKs5C,gBAAkBP,EACvB/4C,KAAKu5C,MAAQ,WAEb,CACJ,CAmYA,OA/XAT,EAAMh5C,UAAU05C,QAAU,WACtB,IAAIvhC,EAIJ,GAHAjY,KAAKo5C,aAAc,EACnBp5C,KAAKq5C,QAAU,KAEXr5C,KAAKg5C,YAAa,CAClB,IAAK/gC,KAAMjY,KAAKg5C,YACRh5C,KAAKg5C,YAAYv5C,eAAewY,IAChCjY,KAAKy5C,aAAa/K,SAASz2B,EAAI,KAGvCjY,KAAKg5C,YAAc,IACvB,CAEA,GAAIh5C,KAAKi5C,cAAe,CACpB,IAAKhhC,KAAMjY,KAAKi5C,cACRj5C,KAAKi5C,cAAcx5C,eAAewY,IAClCjY,KAAK05C,eAAehL,SAASz2B,EAAI,KAGzCjY,KAAKi5C,cAAgB,IACzB,CAEA,GAAIj5C,KAAKk5C,aAAc,CACnB,IAAKjhC,KAAMjY,KAAKk5C,aACRl5C,KAAKk5C,aAAaz5C,eAAewY,IACjCjY,KAAK25C,cAAcjL,SAASz2B,EAAI,KAGxCjY,KAAKk5C,aAAe,IACxB,CAEA,GAAIl5C,KAAKm5C,mBAAoB,CACzB,IAAKlhC,KAAMjY,KAAKm5C,mBACRn5C,KAAKm5C,mBAAmB15C,eAAewY,IACvCjY,KAAK45C,qBAAqBlL,SAASz2B,EAAI,KAG/CjY,KAAKm5C,mBAAqB,IAC9B,CACJ,EAOAL,EAAMh5C,UAAUs7B,WAAa,SAAUiL,EAAUxM,GAC7C,IAAI13B,EAAQnC,KACR65C,EAAY,EAsBhB,OArBK75C,KAAKo5C,cACDp5C,KAAKg5C,cACNh5C,KAAKg5C,YAAc,CAAC,GAExBa,EAAYze,YAAW,WAEnB,IAEQj5B,EAAM62C,oBACC72C,EAAM62C,YAAYa,GAE7BxT,EAAS9pC,MAAM4F,EAAMk3C,QACzB,CACA,MAAOz+B,GACCzY,EAAMm3C,iBACNn3C,EAAMm3C,gBAAgB1+B,EAE9B,CACJ,GAAGif,GACH75B,KAAKg5C,YAAYa,IAAa,GAE3BA,CACX,EAKAf,EAAMh5C,UAAU25C,aAAe,SAAUxhC,GACjCjY,KAAKg5C,aAAeh5C,KAAKg5C,YAAY/gC,KACrCwhC,aAAaxhC,UACNjY,KAAKg5C,YAAY/gC,GAEhC,EAOA6gC,EAAMh5C,UAAUg6C,aAAe,SAAUzT,EAAU95B,GAC/C,IAAIpK,EAAQnC,KACR+5C,EAAc,EACdjiC,GAAM,OAAUvL,GAqBpB,OApBKvM,KAAKo5C,cACDp5C,KAAKi5C,gBACNj5C,KAAKi5C,cAAgB,CAAC,GAe1Bc,EAAcjiC,EAAIsjB,YAbS,WAEvB,IAEQj5B,EAAM82C,sBACC92C,EAAM82C,cAAcc,GAE/B1T,EAAS9pC,MAAM4F,EAAMk3C,QACzB,CACA,MAAOz+B,GACHzY,EAAM63C,UAAUp/B,EACpB,CACJ,GACmD,GACnD5a,KAAKi5C,cAAcc,IAAe,GAE/BA,CACX,EAMAjB,EAAMh5C,UAAU45C,eAAiB,SAAUzhC,EAAI1L,GAC3C,IAAIuL,GAAM,OAAUvL,GAChBvM,KAAKi5C,eAAiBj5C,KAAKi5C,cAAchhC,KACzCH,EAAI2hC,aAAaxhC,UACVjY,KAAKi5C,cAAchhC,GAElC,EAOA6gC,EAAMh5C,UAAUm6C,YAAc,SAAU5T,EAAUxM,GAC9C,IAAI13B,EAAQnC,KACRk6C,EAAa,EAgBjB,OAfKl6C,KAAKo5C,cACDp5C,KAAKk5C,eACNl5C,KAAKk5C,aAAe,CAAC,GAEzBgB,EAAaD,aAAY,WAErB,IACI5T,EAAS9pC,MAAM4F,EAAMk3C,QACzB,CACA,MAAOz+B,GACHzY,EAAM63C,UAAUp/B,EACpB,CACJ,GAAGif,GACH75B,KAAKk5C,aAAagB,IAAc,GAE7BA,CACX,EAKApB,EAAMh5C,UAAU65C,cAAgB,SAAU1hC,GAClCjY,KAAKk5C,cAAgBl5C,KAAKk5C,aAAajhC,KACvC0hC,cAAc1hC,UACPjY,KAAKk5C,aAAajhC,GAEjC,EAgBA6gC,EAAMh5C,UAAUq6C,SAAW,SAAU7f,EAAM8f,EAAMjnC,GAC7C,IAAIhR,EAAQnC,KACZ,GAAIA,KAAKo5C,YACL,OAAOp5C,KAAKu5C,MAEhB,IAIIc,EAEAC,EANAC,EAASH,GAAQ,EACjBI,GAAU,EACVC,GAAW,EACXC,EAAkB,EAIlBb,EAAY,KACZ1mC,GAAsC,kBAApBA,EAAQqnC,UAC1BA,EAAUrnC,EAAQqnC,SAElBrnC,GAAuC,kBAArBA,EAAQsnC,WAC1BA,EAAWtnC,EAAQsnC,UAEvB,IAAIpU,EAAW,SAAUsU,GACrB,IAAIxgB,EAAM3lC,KAAK2lC,MACXygB,EAAQzgB,EAAMugB,EACdG,EAAaL,EAAUD,EAASK,EAAQL,EAY5C,OAXIK,GAASL,KAAYI,GAAYH,IACjCE,EAAkBvgB,EACd0f,IACA13C,EAAMs3C,aAAaI,GACnBA,EAAY,MAEhBQ,EAAa/f,EAAK/9B,MAAM4F,EAAMk3C,QAASiB,IAEpB,OAAdT,GAAsBY,IAC3BZ,EAAY13C,EAAMi5B,WAAWiL,EAAUwU,IAEpCR,CACX,EAUA,OARqB,WAEjB,IADA,IAAIne,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAGzB,OADAsiD,EAAWpe,EACJmK,GAAS,EACnB,CAEL,EAiBAyS,EAAMh5C,UAAUg7C,SAAW,SAAUxgB,EAAM8f,EAAMjnC,GAC7C,IAAIhR,EAAQnC,KACZ,GAAIA,KAAKo5C,YAAa,CAClB,IAAI2B,EAAe,WAElB,EAMD,OALAA,EAAaC,OAAS,WAEtB,EACAD,EAAaE,MAAQ,WAAe,OAAO,IAAO,EAClDF,EAAaG,QAAU,WAAc,OAAO,CAAO,EAC5CH,CACX,CACA,IAMIV,EAEAC,EARAC,EAASH,GAAQ,EACjBI,GAAU,EACVC,GAAW,EACXU,EAAU,KACVC,EAAe,EACfV,EAAkBlmD,KAAK2lC,MAIvB0f,EAAY,KACZ1mC,GAAsC,kBAApBA,EAAQqnC,UAC1BA,EAAUrnC,EAAQqnC,SAElBrnC,GAAuC,kBAArBA,EAAQsnC,WAC1BA,EAAWtnC,EAAQsnC,UAEnBtnC,GAAsC,iBAApBA,EAAQgoC,UAAyBE,MAAMloC,EAAQgoC,WACjEA,EAAUhoC,EAAQgoC,SAEtB,IAAIG,EAAe,SAAUC,GACrB1B,IACA13C,EAAMs3C,aAAaI,GACnBA,EAAY,MAEhBa,EAAkBa,CACtB,EACIC,EAAiB,SAAUD,GAC3BD,EAAaC,GACblB,EAAa/f,EAAK/9B,MAAM4F,EAAMk3C,QAASiB,EAC3C,EACIjU,EAAW,SAAUsU,GACrB,IAAIxgB,EAAM3lC,KAAK2lC,MACXshB,GAAqB,EACrBd,IACIH,GAAWrgB,EAAMihB,GAAgBb,IACjCkB,GAAqB,GAEzBL,EAAejhB,GAEnB,IAAIygB,EAAQzgB,EAAMihB,EACdP,EAAaN,EAASK,EACtBc,EAAevhB,EAAMugB,EACrBiB,GAAiB,EAgBrB,OAfgB,OAAZR,IAEIO,GAAgBP,GAAWtB,EAC3B8B,GAAiB,EAGjBd,EAAa5jD,KAAKu6C,IAAIqJ,EAAYM,EAAUO,IAGhDd,GAASL,GAAUoB,GAAkBF,EACrCD,EAAerhB,GAEK,OAAd0f,GAAuBc,IAAaF,IAC1CZ,EAAY13C,EAAMi5B,WAAWiL,EAAUwU,IAEpCR,CACX,EACIa,EAAU,WACV,QAASrB,CACb,EAcI+B,EAAiB,WAEjB,IADA,IAAI1f,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAGzB,OADAsiD,EAAWpe,EACJmK,GAAS,EACnB,EAID,OAHAuV,EAAeZ,OArBF,WACLE,KAEAI,EAAa9mD,KAAK2lC,MAE1B,EAiBAyhB,EAAeX,MAhBH,WAIR,OAHIC,KACAM,EAAehnD,KAAK2lC,OAEjBkgB,CACX,EAYAuB,EAAeV,QAAUA,EAClBU,CACX,EACA9C,EAAMh5C,UAAU2nC,sBAAwB,SAAUpB,EAAU95B,GACxD,IAAIpK,EAAQnC,KACR67C,EAAmB,EACnB/jC,GAAM,OAAUvL,GACpB,IAAKvM,KAAKo5C,YAAa,CACdp5C,KAAKm5C,qBACNn5C,KAAKm5C,mBAAqB,CAAC,GAE/B,IAAI2C,EAAyB,WACzB,IAEQ35C,EAAMg3C,2BACCh3C,EAAMg3C,mBAAmB0C,GAEpCxV,EAAS9pC,MAAM4F,EAAMk3C,QACzB,CACA,MAAOz+B,GACHzY,EAAM63C,UAAUp/B,EACpB,CACJ,EACAihC,EAAmB/jC,EAAI2vB,sBACjB3vB,EAAI2vB,sBAAsBqU,GAC1BhkC,EAAIsjB,WAAW0gB,EAAwB,GAC7C97C,KAAKm5C,mBAAmB0C,IAAoB,CAChD,CACA,OAAOA,CACX,EACA/C,EAAMh5C,UAAU85C,qBAAuB,SAAU3hC,EAAI1L,GACjD,IAAIuL,GAAM,OAAUvL,GAChBvM,KAAKm5C,oBAAsBn5C,KAAKm5C,mBAAmBlhC,KACnDH,EAAI8hC,qBAAuB9hC,EAAI8hC,qBAAqB3hC,GAAMH,EAAI2hC,aAAaxhC,UACpEjY,KAAKm5C,mBAAmBlhC,GAEvC,EAEA6gC,EAAMh5C,UAAUk6C,UAAY,SAAUp/B,GAC9B5a,KAAKs5C,iBACLt5C,KAAKs5C,gBAAgB1+B,EAE7B,EACOk+B,CACX,CAjZ0B,qFCNtBiD,EAAgB,IAWhBC,EAA4B,WAC5B,SAASA,EAAWvgD,GAChBuE,KAAKi8C,QAAU,IAAI,IAAWj8C,MAC9BA,KAAKk8C,mBAAoB,QAAqBzgD,GAC9CuE,KAAKm8C,iBAAmBn8C,KAAKm8C,iBAAiBC,KAAKp8C,MACnDA,KAAKq8C,aAAc,OAAQr8C,KAAKk8C,mBAE5Bl8C,KAAKk8C,oBAAsBz6C,SAC3BzB,KAAKk8C,kBAAoBjgD,SAASC,MAElC8D,KAAKk8C,oBACLl8C,KAAKi8C,QAAQ3M,GAAG7tC,OAAQ,YAAazB,KAAKs8C,cAAc,GACxDt8C,KAAKi8C,QAAQ3M,GAAG7tC,OAAQ,YAAazB,KAAKu8C,cAAc,GAEhE,CAuFA,OAtFAP,EAAWl8C,UAAU05C,QAAU,WAC3Bx5C,KAAKi8C,QAAQzC,UACbx5C,KAAKw8C,aACT,EACAR,EAAWl8C,UAAUw8C,aAAe,SAAU77C,GAC1CT,KAAKy8C,uBAAuBh8C,EAChC,EACAu7C,EAAWl8C,UAAUy8C,aAAe,SAAU97C,GACtCA,EAAGi8C,QAAQxkD,OAAS,GACpB8H,KAAKy8C,uBAAuBh8C,EAEpC,EACAu7C,EAAWl8C,UAAU28C,uBAAyB,SAAUh8C,GACpD,GAAKT,KAAKq8C,YAAV,CAGA,IAAIM,EACAC,EACA,YAAan8C,GACbk8C,EAAUl8C,EAAGk8C,QACbC,EAAUn8C,EAAGm8C,UAGbD,EAAUl8C,EAAGi8C,QAAQ,GAAGC,QACxBC,EAAUn8C,EAAGi8C,QAAQ,GAAGE,SAE5B,IAKIC,EACAC,EACAC,EAPAC,EAAgBh9C,KAAKq8C,YAAYx0C,IACjCo1C,EAAiBj9C,KAAKq8C,YAAY/2C,KAClC43C,EAAqBF,EAAgBh9C,KAAKq8C,YAAY9tC,OAASwtC,EAC/DoB,EAAoBF,EAAiBj9C,KAAKq8C,YAAYn0C,MAAQ6zC,EAM9Da,EAAUI,EAAgBjB,GAAiBa,EAAUM,GACrDJ,EAAkBF,EAClBC,EAAaG,EACbD,EAAeG,EACfl9C,KAAKo9C,mBAAoB,IAGzBN,EAAkBH,EAClBE,EAAaI,EACbF,EAAeI,EACfn9C,KAAKo9C,mBAAoB,GAIzBp9C,KAAKq9C,gBADLP,EAAkBD,EAAad,EACR9kD,KAAKC,KA1Ed,IA0EiE6kD,GAAiBe,EAAkBD,IAAed,GA1EnH,IA4ETe,EAAkBC,EACA9lD,KAAKu6C,IA7Ed,IA6E+DsL,EAAkBC,GAAgBhB,EA7EjG,IAgFS,EAEvB/7C,KAAKq9C,gBACLr9C,KAAKs9C,eAGLt9C,KAAKw8C,aA9CT,CAgDJ,EACAR,EAAWl8C,UAAUw9C,aAAe,WAC3Bt9C,KAAKu9C,YACNv9C,KAAKm8C,kBAEb,EACAH,EAAWl8C,UAAUq8C,iBAAmB,WAChCn8C,KAAKk8C,oBACDl8C,KAAKo9C,kBACLp9C,KAAKk8C,kBAAkBsB,WAAavmD,KAAKwmD,MAAMz9C,KAAKq9C,iBAGpDr9C,KAAKk8C,kBAAkBwB,YAAczmD,KAAKwmD,MAAMz9C,KAAKq9C,kBAG7Dr9C,KAAKu9C,WAAaniB,WAAWp7B,KAAKm8C,iBAzGb,GA0GzB,EACAH,EAAWl8C,UAAU08C,YAAc,WAC3Bx8C,KAAKu9C,aACL9D,aAAaz5C,KAAKu9C,mBACXv9C,KAAKu9C,WAEpB,EACOvB,CACX,CAtG+B,0ICA3B2B,EAA+B,SAAU17C,GAQzC,SAAS07C,EAAcz7C,EAAO6N,GAC1B,IAAI5N,EAAQF,EAAOlC,KAAKC,KAAMkC,EAAO6N,IAAY/P,KAUjD,OAyKR,SAAsB8vC,EAAKhwC,EAAW89C,GAClC,IAAK,IAAI3kD,EAAI,EAAG4kD,EAAMD,EAAY1lD,OAAQe,EAAI4kD,EAAK5kD,IAC/C6kD,EAAUhO,EAAKhwC,EAAW89C,EAAY3kD,GAE9C,CArLQ8kD,CAAa57C,EAAOw7C,EAAc79C,UAAW,CACzC,oBACA,wBACA,0BACA,SACA,qBACA,yBAEGqC,CACX,CA+JA,OAlLA,QAAUw7C,EAAe17C,GAuBzB07C,EAAc79C,UAAU2J,mBAAqB,SAAUu0C,EAAWC,GAC9Dj+C,KAAKk+C,oBAAoBF,EAAWh+C,KAAKkC,MAC7C,EAIAy7C,EAAc79C,UAAUkJ,kBAAoB,WACxChJ,KAAKm+C,iBAAiBn+C,KAAKkC,MAAMk8C,aAAcp+C,KACnD,EAIA29C,EAAc79C,UAAUgK,qBAAuB,WAE3C,GADA9J,KAAKm+C,iBAAiBn+C,KAAKkC,MAAMk8C,aAAc,MAC3Cp+C,KAAKq+C,cAAe,CACpB,IAAK,IAAIplD,EAAI,EAAG4kD,EAAM79C,KAAKs+C,aAAapmD,OAAQe,EAAI4kD,EAAK5kD,IAAK,CAC1D,IAAIslD,EAAav+C,KAAKq+C,cAAcplD,GAChCslD,EAAW/E,SACX+E,EAAW/E,SAEnB,CACAx5C,KAAKq+C,cAAgB,IACzB,CACJ,EACAh/C,OAAO6wC,eAAeyN,EAAc79C,UAAW,YAAa,CAIxDuQ,IAAK,WACD,IAAKrQ,KAAKw+C,YAAa,CACnB,IACIC,EADgB,qBACQ5jB,KAAK76B,KAAKwI,YAAY2nC,YAClDnwC,KAAKw+C,YAAcC,GAAWA,EAAQvmD,OAAS,EAAIumD,EAAQ,GAAK,EACpE,CACA,OAAOz+C,KAAKw+C,WAChB,EACApO,YAAY,EACZC,cAAc,IAElBhxC,OAAO6wC,eAAeyN,EAAc79C,UAAW,eAAgB,CAI3DuQ,IAAK,WAID,OAHKrQ,KAAKq+C,gBACNr+C,KAAKq+C,cAAgB,IAElBr+C,KAAKq+C,aAChB,EACAjO,YAAY,EACZC,cAAc,IAElBhxC,OAAO6wC,eAAeyN,EAAc79C,UAAW,SAAU,CAOrDuQ,IAAK,WAKD,OAJKrQ,KAAK0+C,UACN1+C,KAAK0+C,QAAU,IAAI,IAAM1+C,MACzBA,KAAKs+C,aAAazmD,KAAKmI,KAAK0+C,UAEzB1+C,KAAK0+C,OAChB,EACAtO,YAAY,EACZC,cAAc,IAElBhxC,OAAO6wC,eAAeyN,EAAc79C,UAAW,UAAW,CAOtDuQ,IAAK,WAKD,OAJKrQ,KAAK2+C,WACN3+C,KAAK2+C,SAAW,IAAI,IAAW3+C,MAC/BA,KAAKs+C,aAAazmD,KAAKmI,KAAK2+C,WAEzB3+C,KAAK2+C,QAChB,EACAvO,YAAY,EACZC,cAAc,IAQlBsN,EAAc79C,UAAU8+C,YAAc,SAAUC,GAC5C,IAAI18C,EAAQnC,KAUZ,OATKA,KAAK8+C,aACN9+C,KAAK8+C,WAAa,CAAC,GAElB9+C,KAAK8+C,WAAWD,KACjB7+C,KAAK8+C,WAAWD,GAAW,SAAU7zC,GAEjC,OAAQ7I,EAAM08C,GAAW7zC,CAC7B,GAEGhL,KAAK8+C,WAAWD,EAC3B,EAIAlB,EAAc79C,UAAUo+C,oBAAsB,SAAUa,EAAcC,QACjD,IAAbA,IAAuBA,EAAW,CAAC,GAGnCD,GAAgBC,GAAYD,EAAaX,eAAiBY,EAASZ,eACnEp+C,KAAKm+C,iBAAiBY,EAAaX,aAAc,MACjDp+C,KAAKm+C,iBAAiBa,EAASZ,aAAcp+C,MAErD,EAOA29C,EAAc79C,UAAUm/C,kBAAoB,SAAUC,IAClD,OAAiBl/C,KAAKwK,UAAWxK,KAAKkC,MAAOg9C,EACjD,EAMAvB,EAAc79C,UAAUq/C,uBAAyB,SAAUC,IACvD,OAAsBp/C,KAAKwK,UAAWxK,KAAKkC,MAAOk9C,EACtD,EAQAzB,EAAc79C,UAAUu/C,gCAAkC,SAAUC,EAAeC,EAAqBC,IACpG,OAA+Bx/C,KAAKwK,UAAWxK,KAAKkC,MAAOo9C,EAAeC,EAAqBC,EACnG,EACA7B,EAAc79C,UAAUq+C,iBAAmB,SAAUnzC,EAAKgE,IACjDhP,KAAKy/C,6BAA+Bz0C,IAClB,mBAARA,GACPA,EAAIgE,GAEW,iBAARhE,IAEPA,EAAI5H,QAAU4L,GAG1B,EACO2uC,CACX,CApLkC,CAoLhC,aAcF,SAASG,EAAUhO,EAAKhwC,EAAW4/C,GAE/B,IAAIC,EAAc7P,EAAI4P,GAClBE,EAAkB9/C,EAAU4/C,IAC5BC,GAAeC,KACf9P,EAAI4P,GAAc,WAEd,IADA,IAKIG,EALA3jB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAUzB,OANI4nD,IACAC,EAASD,EAAgBrjD,MAAMyD,KAAMk8B,IAErCyjB,IAAgBC,IAChBC,EAASF,EAAYpjD,MAAMyD,KAAMk8B,IAE9B2jB,CACX,EAER,CAMO,SAASthD,IACZ,OAAO,IACX,2ECpOIuhD,EAA+B,SAAU79C,GAEzC,SAAS69C,EAAc59C,GACnB,IAAIC,EAAQF,EAAOlC,KAAKC,KAAMkC,IAAUlC,KAIxC,OAHAmC,EAAMzE,MAAQ,CACVqiD,YAAY,GAET59C,CACX,CAqBA,OA5BA,QAAU29C,EAAe79C,GAQzB69C,EAAchgD,UAAUkJ,kBAAoB,WACxC,IAAI7G,EAAQnC,KACRggD,EAAQhgD,KAAKkC,MAAM89C,MACvBhgD,KAAKu9C,WAAa97C,OAAO25B,YAAW,WAChCj5B,EAAM89C,SAAS,CACXF,YAAY,GAEpB,GAAGC,EACP,EACAF,EAAchgD,UAAUgK,qBAAuB,WACvC9J,KAAKu9C,YACL9D,aAAaz5C,KAAKu9C,WAE1B,EACAuC,EAAchgD,UAAUoK,OAAS,WAC7B,OAAOlK,KAAKtC,MAAMqiD,WAAa,WAAeG,KAAKlgD,KAAKkC,MAAM7F,UAAY,IAC9E,EACAyjD,EAAcvwC,aAAe,CACzBywC,MAAO,GAEJF,CACX,CA9BkC,CA8BhC,0EC5BEK,EAA4B,WAE5B,SAASA,EAAWjlD,GAChB8E,KAAKqI,IAAM83C,EAAWC,YACtBpgD,KAAKq5C,QAAUn+C,EACf8E,KAAKqgD,cAAgB,EACzB,CA6NA,OAtNAF,EAAWG,MAAQ,SAAUxjD,EAAQoyC,EAAWqR,EAAWC,GACvD,IAAIX,EACJ,GAAIM,EAAWM,WAAW3jD,IACtB,GAAwB,oBAAbb,UAA4BA,SAASsF,YAAa,CACzD,IAAId,EAAKxE,SAASsF,YAAY,cAC9Bd,EAAGw7B,UAAUiT,EAAWsR,IAAe,GAAO,IAC9C,QAAO//C,EAAI8/C,GACXV,EAAS/iD,EAAO4E,cAAcjB,EAClC,MACK,GAAwB,oBAAbxE,UAA4BA,SAASykD,kBAAmB,CAEpE,IAAIC,EAAQ1kD,SAASykD,kBAAkBH,GAEvCzjD,EAAO8jD,UAAU,KAAO1R,EAAWyR,EACvC,OAGA,KAAO7jD,IAAqB,IAAX+iD,GAAkB,CAC/B,IAAIgB,EAAS/jD,EAAOgkD,WAChBC,EAAeF,EAASA,EAAO3R,GAAa,KAChD,GAAI6R,EACA,IAAK,IAAI9oC,KAAM8oC,EACX,GAAIA,EAAathD,eAAewY,GAE5B,IADA,IAAI+oC,EAAkBD,EAAa9oC,GAC1BgpC,EAAY,GAAc,IAAXpB,GAAoBoB,EAAYD,EAAgB9oD,OAAQ+oD,IAAa,CACzF,IAAI7kB,EAAS4kB,EAAgBC,GACzB7kB,EAAO8kB,iBACPrB,EAASzjB,EAAO8kB,eAAenhD,KAAKq8B,EAAOlhC,OAAQqlD,GAE3D,CAKZzjD,EAAS0jD,EAAc1jD,EAAO5B,OAAS,IAC3C,CAEJ,OAAO2kD,CACX,EACAM,EAAWgB,WAAa,SAAUrkD,EAAQoyC,GACtC,IAAI2R,EAAS/jD,GAAUA,EAAOgkD,WAC9B,QAASD,KAAYA,EAAO3R,EAChC,EAEAiR,EAAWiB,WAAa,SAAUtkD,EAAQoyC,GACtC,IAAImS,EAAiBvkD,GAAUA,EAAOwkD,iBACtC,QAASD,KAAoBA,EAAenS,EAChD,EACAiR,EAAWx8C,gBAAkB,SAAU5C,GAC/BA,EAAM4C,gBACN5C,EAAM4C,kBAIN5C,EAAMwgD,cAAe,CAE7B,EACApB,EAAWM,WAAa,SAAU3jD,GAC9B,QAAUA,MAAaA,EAAOuM,kBAA4C,oBAAhBm4C,aAA+B1kD,aAAkB0kD,YAC/G,EACArB,EAAWrgD,UAAU05C,QAAU,WACtBx5C,KAAKo5C,cACNp5C,KAAKo5C,aAAc,EACnBp5C,KAAKyhD,MACLzhD,KAAKq5C,QAAU,KAEvB,EAEA8G,EAAWrgD,UAAU4hD,MAAQ,SAAU5kD,EAAQ+jD,EAAQ1R,GACnD,IAAK,IAAID,KAAa2R,EACdA,EAAOphD,eAAeyvC,IACtBlvC,KAAKsvC,GAAGxyC,EAAQoyC,EAAW2R,EAAO3R,GAAYC,EAG1D,EAKAgR,EAAWrgD,UAAUwvC,GAAK,SAAUxyC,EAAQoyC,EAAW7I,EAAUlzB,GAC7D,IAAIhR,EAAQnC,KACZ,GAAIkvC,EAAUv3C,QAAQ,MAAQ,EAE1B,IADA,IAAIkpD,EAAS3R,EAAU5F,MAAM,SACpBrwC,EAAI,EAAGA,EAAI4nD,EAAO3oD,OAAQe,IAC/B+G,KAAKsvC,GAAGxyC,EAAQ+jD,EAAO5nD,GAAIotC,EAAUlzB,OAGxC,CACD,IAAIwuC,EAAW3hD,KAAKq5C,QAChBuI,EAAc,CACd9kD,OAAQA,EACRoyC,UAAWA,EACXh0C,OAAQymD,EACRtb,SAAUA,EACVlzB,QAASA,GAYb,IATI0tC,EAAU/jD,EAAOgkD,WAAahkD,EAAOgkD,YAAc,CAAC,GACjD5R,GACH2R,EAAO3R,IACH,CACItV,MAAO,GAEnBinB,EAAO3R,GAAWlvC,KAAKqI,KAAOw4C,EAAO3R,GAAWlvC,KAAKqI,MAAQ,GAC7Dw4C,EAAO3R,GAAWlvC,KAAKqI,KAAKxQ,KAAK+pD,GACjCf,EAAO3R,GAAWtV,QACdumB,EAAWM,WAAW3jD,GAAS,CAC/B,IAAI+kD,EAAsB,WAEtB,IADA,IAAI3lB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzB,IAAImK,EAAMi3C,YAAV,CAGA,IAAI7kD,EACJ,IAEI,IAAe,KADfA,EAAS8xC,EAAS9pC,MAAMolD,EAAUzlB,KACVA,EAAK,GAAI,CAC7B,IAAIthB,EAAIshB,EAAK,GACTthB,EAAExT,gBACFwT,EAAExT,iBAEFwT,EAAEjX,iBACFiX,EAAEjX,kBAENiX,EAAE2mC,cAAe,CACrB,CACJ,CACA,MAAO3mC,GAEP,CACA,OAAOrmB,CAlBP,CAmBJ,EACAqtD,EAAYE,gBAAkBD,EAC1B/kD,EAAOuM,iBACPvM,EAAOuM,iBAAiB6lC,EAAW2S,EAAqB1uC,GAEnDrW,EAAOilD,aAEZjlD,EAAOilD,YAAY,KAAO7S,EAAW2S,EAE7C,MAYID,EAAYV,eAVa,WAErB,IADA,IAAIhlB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzB,IAAImK,EAAMi3C,YAGV,OAAO/S,EAAS9pC,MAAMolD,EAAUzlB,EACpC,EAIJl8B,KAAKqgD,cAAcxoD,KAAK+pD,EAC5B,CACJ,EACAzB,EAAWrgD,UAAU2hD,IAAM,SAAU3kD,EAAQoyC,EAAW7I,EAAUlzB,GAC9D,IAAK,IAAIla,EAAI,EAAGA,EAAI+G,KAAKqgD,cAAcnoD,OAAQe,IAAK,CAChD,IAAI2oD,EAAc5hD,KAAKqgD,cAAcpnD,GACrC,KAAM6D,GAAUA,IAAW8kD,EAAY9kD,QACjCoyC,GAAaA,IAAc0S,EAAY1S,WACvC7I,GAAYA,IAAaub,EAAYvb,UACnB,kBAAZlzB,GAAyBA,IAAYyuC,EAAYzuC,SAAU,CACnE,IAAI0tC,EAASe,EAAY9kD,OAAOgkD,WAC5BkB,EAAoBnB,EAAOe,EAAY1S,WACvC+S,EAAcD,EAAoBA,EAAkBhiD,KAAKqI,KAAO,KAEhE45C,IAC2B,IAAvBA,EAAY/pD,QAAiBmuC,GAK7B2b,EAAkBpoB,QAClBqoB,EAAY1kD,OAAO0kD,EAAYtqD,QAAQiqD,GAAc,KALrDI,EAAkBpoB,OAASqoB,EAAY/pD,cAChC2oD,EAAOe,EAAY1S,WAAWlvC,KAAKqI,MAMzC25C,EAAkBpoB,cACZinB,EAAOe,EAAY1S,YAG9B0S,EAAYE,kBACRF,EAAY9kD,OAAOkN,oBACnB43C,EAAY9kD,OAAOkN,oBAAoB43C,EAAY1S,UAAW0S,EAAYE,gBAAiBF,EAAYzuC,SAElGyuC,EAAY9kD,OAAOolD,aAExBN,EAAY9kD,OAAOolD,YAAY,KAAON,EAAY1S,UAAW0S,EAAYE,kBAGjF9hD,KAAKqgD,cAAc9iD,OAAOtE,IAAK,EACnC,CACJ,CACJ,EAEAknD,EAAWrgD,UAAUwgD,MAAQ,SAAUpR,EAAWqR,EAAWC,GACzD,OAAOL,EAAWG,MAAMtgD,KAAKq5C,QAASnK,EAAWqR,EAAWC,EAChE,EAEAL,EAAWrgD,UAAUqiD,QAAU,SAAUphD,GACrC,IAAIsgD,EAAkBrhD,KAAKq5C,QAAQiI,iBAAmBthD,KAAKq5C,QAAQiI,kBAAoB,CAAC,EACxF,GAAqB,iBAAVvgD,EACPsgD,EAAetgD,IAAS,OAGxB,IAAK,IAAI9H,EAAI,EAAGA,EAAI8H,EAAM7I,OAAQe,IAC9BooD,EAAetgD,EAAM9H,KAAM,CAGvC,EACAknD,EAAWC,UAAY,EAChBD,CACX,CApO+B,kDCZ/B,IAAIhmB,EAAM,WACN,MAA8B,oBAAhBC,aAAiCA,YAAYD,IAAMC,YAAYD,MAAQ3lC,KAAK2lC,KAC9F,EAQIioB,EAAmC,WACnC,SAASA,IACT,CAqCA,OA9BAA,EAAkB/nB,QAAU,SAAU+D,EAAM9D,GACpC8nB,EAAkB7E,YAClB6E,EAAkBC,mBAEtB,IAAI9nB,EAAQJ,IACZG,IACA,IAAIrzB,EAAMkzB,IACNmoB,EAAcF,EAAkBG,QAAQnkB,IAAS,CACjDokB,cAAe,EACf5oB,MAAO,EACPrzB,IAAK,IAELszB,EAAW5yB,EAAMszB,EACrB+nB,EAAYE,eAAiB3oB,EAC7ByoB,EAAY1oB,QACZ0oB,EAAY/7C,IAAI1O,KAAK,CACjBgiC,SAAUA,EACV4oB,UAAWx7C,IAEfm7C,EAAkBG,QAAQnkB,GAAQkkB,CACtC,EACAF,EAAkB1pC,MAAQ,WACtB0pC,EAAkBG,QAAU,CAAC,EAC7B9I,aAAa2I,EAAkB7E,YAC/B6E,EAAkB7E,WAAamF,GACnC,EACAN,EAAkBC,iBAAmB,WACjCD,EAAkB7E,WAAaniB,YAAW,WAAc,OAAOgnB,EAAkB1pC,OAAS,GA3C7E,KA4CjB,EACA0pC,EAAkBG,QAAU,CAAC,EACtBH,CACX,CAxCsC,iECDlCO,EAA4B,qBAC5BC,EAA2B,gBAC3Brd,EAAW,EASXsd,EAAgC,WAChC,SAASA,IACT,CAyCA,OAxCAA,EAAepL,SAAW,SAAU//B,EAAKujB,GACrC,IAAI6nB,EAAiBC,IAIrB,YAH4BvlD,IAAxBslD,EAAeprC,KACforC,EAAeprC,GAA+B,mBAAjBujB,EAA8BA,IAAiBA,GAEzE6nB,EAAeprC,EAC1B,EACAmrC,EAAeG,SAAW,SAAUtrC,EAAK1I,GACrC,IAAI8zC,EAAiBC,IACjBE,EAAYH,EAAeF,GAC3BM,EAAWJ,EAAeprC,GAC9B,GAAI1I,IAAUk0C,EAAU,CACpBJ,EAAeprC,GAAO1I,EACtB,IAAIm0C,EAAoB,CACpBD,SAAUA,EACVl0C,MAAOA,EACP0I,IAAKA,GAET,IAAK,IAAIO,KAAMgrC,EACPA,EAAUxjD,eAAewY,IACzBgrC,EAAUhrC,GAAIkrC,EAG1B,CACA,OAAOn0C,CACX,EACA6zC,EAAeO,kBAAoB,SAAUC,GAGzC,IAAIprC,EAAKorC,EAAGC,OACRL,EAAYM,IACXtrC,IACDA,EAAKorC,EAAGC,OAAS/U,OAAOhJ,MAE5B0d,EAAUhrC,GAAMorC,CACpB,EACAR,EAAeW,qBAAuB,SAAUH,UAC5BE,IACCF,EAAGC,OACxB,EACOT,CACX,CA5CmC,GA+CnC,SAASE,IACL,IAAI5kD,EAGAslD,GAFM,UAEa,CAAC,EAMxB,OALKA,EAAUd,KACXc,EAAUd,KAA8BxkD,EAAK,CAAC,GACvCykD,GAA4B,CAAC,EAChCzkD,IAEDslD,EAAUd,EACrB,CACA,SAASY,IAEL,OADqBR,IACCH,EAC1B,iDC5EO,IAAIz9C,EAAW,CAClBu+C,UAAW,EACXt9C,IAAK,EACLe,MAAO,GACPw8C,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,WAAY,GACZC,SAAU,GACVC,OAAQ,GACR5+C,MAAO,GACPe,OAAQ,GACRF,SAAU,GACVgB,IAAK,GACLH,KAAM,GACNxB,KAAM,GACNM,GAAI,GACJF,MAAO,GACPK,KAAM,GACNk+C,OAAQ,GACRC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,MAAO,GACPC,KAAM,GACNC,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,MAAO,GACPC,KAAM,GACN9lD,EAAG,GACHM,EAAG,GACHylD,EAAG,GACH1lD,EAAG,GACHyb,EAAG,GACHkqC,EAAG,GACH5rB,EAAG,GACH6rB,EAAG,GACH9rD,EAAG,GACH8F,EAAG,GACHF,EAAG,GACHmmD,EAAG,GACHjyB,EAAG,GACHlzB,EAAG,GACHolD,EAAG,GACHzlD,EAAG,GACH0lD,EAAG,GACHtmD,EAAG,GACHH,EAAG,GACHmB,EAAG,GACHulD,EAAG,GACHzZ,EAAG,GACH0Z,EAAG,GACHz9C,EAAG,GACH09C,EAAG,GACHC,EAAG,GACHC,WAAY,GACZC,YAAa,GACbC,OAAQ,GAERC,YAAa,GACbC,WAAY,GACZC,WAAY,GACZC,aAAc,GACdC,YAAa,IACbC,YAAa,IACbC,WAAY,IACZC,aAAc,IACdC,aAAc,IACdC,YAAa,IAEbC,SAAU,IACVh9C,IAAK,IACLi9C,SAAU,IACVC,aAAc,IACdC,OAAQ,IACRC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,QAAS,IACTC,WAAY,IACZC,UAAW,IACXC,UAAW,IACXC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,aAAc,IACdC,YAAa,IACbC,YAAa,IACbC,UAAW,IACXC,aAAc,IACdC,YAAa,oDCrGjB,IAAIC,EAA2B,WAC3B,SAASA,EAAU3iD,EAAMI,EAAOmC,EAAKE,QACpB,IAATzC,IAAmBA,EAAO,QAChB,IAAVI,IAAoBA,EAAQ,QACpB,IAARmC,IAAkBA,EAAM,QACb,IAAXE,IAAqBA,EAAS,GAClC/H,KAAK6H,IAAMA,EACX7H,KAAK+H,OAASA,EACd/H,KAAKsF,KAAOA,EACZtF,KAAK0F,MAAQA,CACjB,CAgCA,OA/BArG,OAAO6wC,eAAe+X,EAAUnoD,UAAW,QAAS,CAIhDuQ,IAAK,WACD,OAAOrQ,KAAK0F,MAAQ1F,KAAKsF,IAC7B,EACA8qC,YAAY,EACZC,cAAc,IAElBhxC,OAAO6wC,eAAe+X,EAAUnoD,UAAW,SAAU,CAIjDuQ,IAAK,WACD,OAAOrQ,KAAK+H,OAAS/H,KAAK6H,GAC9B,EACAuoC,YAAY,EACZC,cAAc,IAKlB4X,EAAUnoD,UAAUooD,OAAS,SAAU75C,GAGnC,OAAQR,WAAW7N,KAAK6H,IAAIiG,QAAQ,MAAQD,WAAWQ,EAAKxG,IAAIiG,QAAQ,KACpED,WAAW7N,KAAK+H,OAAO+F,QAAQ,MAAQD,WAAWQ,EAAKtG,OAAO+F,QAAQ,KACtED,WAAW7N,KAAKsF,KAAKwI,QAAQ,MAAQD,WAAWQ,EAAK/I,KAAKwI,QAAQ,KAClED,WAAW7N,KAAK0F,MAAMoI,QAAQ,MAAQD,WAAWQ,EAAK3I,MAAMoI,QAAQ,GAC5E,EACOm6C,CACX,CA3C8B,iCCDvB,SAASE,EAAejtD,GAE3B,IADA,IAAIktD,EAAY,GACPpwD,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCowD,EAAUpwD,EAAK,GAAK2G,UAAU3G,GAElC,OAAIowD,EAAUlwD,OAAS,EACZkwD,EAAU,GAEd,WAEH,IADA,IAAIlsB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzBowD,EAAUt/C,SAAQ,SAAUg8C,GAAK,OAAOA,GAAKA,EAAEvoD,MAAMrB,EAAQghC,EAAO,GACxE,CACJ,gDCdO,SAASmsB,IAEZ,IADA,IAAIC,EAAiB,GACZtwD,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCswD,EAAetwD,GAAM2G,UAAU3G,GAEnC,IAAIuwD,EAAkBD,EACjBE,QAAO,SAAUnf,GAAO,OAAOA,CAAK,IACpCt4B,KAAK,KACL46B,OACL,MAA2B,KAApB4c,OAAyB/qD,EAAY+qD,CAChD,gDCPO,SAASE,EAAUC,EAAOrF,EAAIsF,QACf,IAAdA,IAAwBA,EAAY,GAExC,IADA,IAAIrrD,GAAS,EACJrE,EAAI0vD,EAAWD,GAASzvD,EAAIyvD,EAAMxwD,OAAQe,IAC/C,GAAIoqD,EAAGqF,EAAMzvD,GAAIA,GAAI,CACjBqE,EAAQrE,EACR,KACJ,CAEJ,OAAOqE,CACX,CAMO,SAASsrD,EAAKF,EAAOrF,GACxB,IAAI/lD,EAAQmrD,EAAUC,EAAOrF,GAC7B,KAAI/lD,EAAQ,GAGZ,OAAOorD,EAAMprD,EACjB,CAQO,SAASurD,EAAYjgD,EAAMkgD,GAE9B,IADA,IAAIJ,EAAQ,GACHzvD,EAAI,EAAGA,EAAI2P,EAAM3P,IACtByvD,EAAM7wD,KAAKixD,EAAQ7vD,IAEvB,OAAOyvD,CACX,CAUO,SAASK,EAASC,EAAOC,GAC5B,OAAOD,EAAMnd,QAAO,SAAUqd,EAAMnsB,EAAcz/B,GAO9C,OANIA,EAAQ2rD,GAAgB,EACxBC,EAAKrxD,KAAK,CAACklC,IAGXmsB,EAAKA,EAAKhxD,OAAS,GAAGL,KAAKklC,GAExBmsB,CACX,GAAG,GACP,CAMO,SAASC,EAAYT,EAAOprD,GAC/B,OAAOorD,EAAMF,QAAO,SAAUY,EAAGnwD,GAAK,OAAOqE,IAAUrE,CAAG,GAC9D,CAOO,SAASowD,EAAeX,EAAOY,EAAYhsD,GAC9C,IAAIisD,EAAOb,EAAMptB,QAEjB,OADAiuB,EAAKjsD,GAASgsD,EACPC,CACX,CAOO,SAASC,EAAkBd,EAAOprD,EAAOmsD,GAC5C,IAAIF,EAAOb,EAAMptB,QAEjB,OADAiuB,EAAKhsD,OAAOD,EAAO,EAAGmsD,GACfF,CACX,CAKO,SAASG,EAAQhB,GACpB,IAAIn0D,EAAS,GAEb,OADAm0D,EAAM5/C,SAAQ,SAAUxM,GAAQ,OAAQ/H,EAASA,EAAO01B,OAAO3tB,EAAQ,IAChE/H,CACX,CAQO,SAASo1D,EAAYC,EAAQC,GAChC,GAAID,EAAO1xD,SAAW2xD,EAAO3xD,OACzB,OAAO,EAEX,IAAK,IAAIe,EAAI,EAAGA,EAAI2wD,EAAO1xD,OAAQe,IAC/B,GAAI2wD,EAAO3wD,KAAO4wD,EAAO5wD,GACrB,OAAO,EAGf,OAAO,CACX,oLCrGI6wD,EAAsC,oBAAZ54C,QAEtB,IAAIA,aACN1T,EAOC,SAASusD,EAAQ52C,GACpB,IAAI2lC,EAAuB,SAAU72C,GAEjC,SAAS62C,IACL,IAAI32C,EAAmB,OAAXF,GAAmBA,EAAO1F,MAAMyD,KAAMrB,YAAcqB,KAIhE,OAHAmC,EAAMzE,MAAQ,CACVssD,UAAWF,EAAmBA,EAAiBz5C,IAAI8C,EAAQ82C,WAAQzsD,GAEhE2E,CACX,CA2BA,OAlCA,QAAU22C,EAAO72C,GAQjB62C,EAAMh5C,UAAUoK,OAAS,WAGrB,IAAI/L,EAAK6B,KAAKkC,MAAOgoD,EAAe/rD,EAAG+rD,aAAcC,EAAchsD,EAAGisD,iBAAkBC,GAAO,QAAOlsD,EAAI,CAAC,eAAgB,qBACvH6rD,EAAYhqD,KAAKtC,MAAMssD,UAC3B,OAAOA,EAAa,gBAAoBA,GAAW,SAAS,QAAS,CAAC,EAAGK,GAAO,CAAEr/C,IAAKk/C,KAAoBC,EAAe,gBAAoBA,EAAa,MAAS,IACxK,EACArR,EAAMh5C,UAAUkJ,kBAAoB,WAChC,IAAI7G,EAAQnC,KACIA,KAAKtC,MAAMssD,WAEvB72C,EACK82C,OACAK,MAAK,SAAUC,GACZA,IAEAT,GAAoBA,EAAiBv5C,IAAI4C,EAAQ82C,KAAMM,GAEvDpoD,EAAM89C,SAAS,CACX+J,UAAWO,GACZp3C,EAAQq3C,QAEnB,IACKC,MAAMt3C,EAAQ4lC,QAE3B,EACOD,CACX,CApC0B,CAoCxB,aACF,OAAO,cAAiB,SAAU52C,EAAO8I,GAAO,OAAO,gBAAoB8tC,GAAO,QAAS,CAAC,EAAG52C,EAAO,CAAEgoD,aAAcl/C,IAAS,GACnI,gCCjEO,SAAS0/C,EAAY/iD,GACxB,MAAM,IAAIlQ,MAAM,sBAAwBkQ,EAC5C,gKCJA,IAAIgjD,EAAkB,GAClBC,EAAiC,EACjCC,EAAsB,EACtB5hB,EAAa,IAAWtwB,cACxBswB,GAAcA,EAAWrwB,SACzBqwB,EAAWrwB,SAAQ,WAAc,OAAOiyC,GAAuB,IAOnE,IAAIhL,EAAS,aASN,SAASiL,EAAmB33C,QAIf,IAAZA,IAAsBA,EAAU,CAAC,GAIrC,IAAI2pB,EAAM,IAAIxsB,IACVy6C,EAAiB,EACjBC,EAAqB,EACrBC,EAA4BJ,EA2DhC,OA1DoB,SAAUjiB,EAAuBD,GAEjD,IAAIxqC,EAAIuC,EAIR,QALmB,IAAfioC,IAAyBA,EAAa,CAAC,GAKvCx1B,EAAQ+3C,iBACyB,mBAA1BtiB,GACPA,EAAsBuiB,oBACtB,OAAOviB,EAAsBD,GAEjCqiB,IACA,IAAI5nD,EAAU05B,EACV14B,EAAQukC,EAAWvkC,MACnBiU,EAAMjU,QAAuB5G,IAAd4G,EAAMiU,IAAoBjU,EAAMiU,KAAM,UACrD+yC,EAAiBj4C,EAAQi4C,eAyC7B,OAvCIH,IAA8BJ,IAC9BI,EAA4BJ,EAC5B/tB,EAAM,IAAIxsB,IACVy6C,EAAiB,GAEhB53C,EAAQi4C,iBACThoD,EAAUioD,EAAavuB,EAAK8L,GAC5BxlC,EAAUioD,EAAajoD,EAASulC,KAEhCyiB,GAAmBhoD,EAAQy8C,KAEvBz8C,EAAQy8C,QADkBriD,IAA1BorC,EACkB,CAAC,GAGD,OAAa,CACO,mBAA1BA,EACFA,EAAsBD,GACtBC,GACP,CAAEvwB,MAAOA,EAAKqyB,sBAAuBv3B,EAAQ+3C,gBAAkBN,OAAiCptD,IAElG4tD,GACDL,KAGJA,GAAkB53C,EAAQm4C,WAAaX,MAEwC,QAA1EjqD,EAAoB,QAAdvC,GADD,gBAC8B,IAAPA,OAAgB,EAASA,EAAGonB,oBAAiC,IAAP7kB,OAAgB,EAASA,EAAG6qD,mCAE/GruB,QAAQE,KAAK,oEAAsE2tB,EAAiB,IAAMC,EAAqB,KAE/H9tB,QAAQsuB,SAEZ1uB,EAAI2uB,QACJV,EAAiB,EAEjB53C,EAAQi4C,gBAAiB,GAItBhoD,EAAQy8C,EACnB,CAEJ,CACA,SAAS6L,EAActoD,EAAS4L,GAK5B,OAJAA,EA+BJ,SAAyBA,GACrB,OAAQA,GACJ,UAAKxR,EACD,MAAO,gBACX,KAAK,KACD,MAAO,WACX,QACI,OAAOwR,EAEnB,CAxCY28C,CAAgB38C,GACnB5L,EAAQsN,IAAI1B,IACb5L,EAAQmN,IAAIvB,EAAO,IAAIsB,KAEpBlN,EAAQiN,IAAIrB,EACvB,CACA,SAASq8C,EAAajoD,EAASwoD,GAC3B,GAAsB,mBAAXA,EAEP,GAD6BA,EAAOC,iBAKhC,IAAK,IAAI7zD,EAAK,EAAGmG,EAAKytD,EAAOC,iBAAkB7zD,EAAKmG,EAAGjG,OAAQF,IAE3DoL,EAAUsoD,EAActoD,EADZjF,EAAGnG,SAKnBoL,EAAUsoD,EAActoD,EAASwoD,QAGpC,GAAsB,iBAAXA,EACZ,IAAK,IAAIr4C,KAAYq4C,EACbA,EAAOnsD,eAAe8T,KACtBnQ,EAAUsoD,EAActoD,EAASwoD,EAAOr4C,KAIpD,OAAOnQ,CACX,sFCvGI0oD,GAAsB,SArB1B,SAAiCC,GAC7B,IAAIC,EAAQD,EAkBZ,OAjBoB,SAAe,SAAUE,GACzC,GAAIF,IAAUE,EACV,MAAM,IAAIx0D,MAAM,iDAEpB,IAAIy0D,EAAQD,EACRE,GAAgB,SAAe,SAAUC,GAIzC,OAH6B,SAAUC,GACnC,OAAO,gBAAoBH,GAAO,QAAS,CAAC,EAAGG,EAAY,CAAED,cAAeA,IAChF,CAEJ,IAKA,OAJ6B,SAAUE,GACnC,IAAIF,EAAgBE,EAAWF,cAC/B,OAAO,gBAAoBJ,GAAO,QAAS,CAAC,EAAGM,EAAY,CAAEF,cAAeA,EAAgBD,EAAcC,GAAiBF,IAC/H,CAEJ,GAEJ,IASO,SAASK,EAAmBR,EAAOE,GACtC,OAAOH,EAAoBC,EAApBD,CAA2BG,EACtC,gCC5BO,SAASO,EAAatqD,EAAOuqD,GAGhC,YAA4BjvD,IAArB0E,EAAMuqD,IAAiD,OAArBvqD,EAAMuqD,EACnD,2FCLA,IAeWnqD,EAAkB,SAAU0M,GACnC,IAAI09C,EAAQ,CACR5d,KAAM,IAEV,OAAO,WAEH,IADA,IAAI6d,EAAU,GACL30D,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpC20D,EAAQ30D,GAAM2G,UAAU3G,GAM5B,OAJK00D,EAAME,WAAa,QAAYF,EAAM5d,KAAM6d,KAC5CD,EAAME,SAzBG,SAAUF,GAAS,OAAO,SAAUG,GACrD,IAAK,IAAI70D,EAAK,EAAGmG,EAAKuuD,EAAM5d,KAAM92C,EAAKmG,EAAGjG,OAAQF,IAAM,CACpD,IAAIgT,EAAM7M,EAAGnG,GACM,mBAARgT,EACPA,EAAI6hD,GAEC7hD,IAELA,EAAI5H,QAAUypD,EAEtB,CACJ,CAAG,CAc0BC,CAAeJ,IAEpCA,EAAM5d,KAAO6d,EACND,EAAME,QACjB,CACJ,gCC9BO,SAAShiD,IAEZ,IADA,IAAIsxB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAGzB,IADA,IAAImc,EAAU,GACLhW,EAAK,EAAGguC,EAASjQ,EAAM/9B,EAAKguC,EAAOj0C,OAAQiG,IAAM,CACtD,IAAIkrC,EAAM8C,EAAOhuC,GACjB,GAAIkrC,EACA,GAAmB,iBAARA,EACPl1B,EAAQtc,KAAKwxC,QAEZ,GAAIA,EAAI5pC,eAAe,aAAuC,mBAAjB4pC,EAAI8G,SAClDh8B,EAAQtc,KAAKwxC,EAAI8G,iBAIjB,IAAK,IAAIz4B,KAAO2xB,EAERA,EAAI3xB,IACJvD,EAAQtc,KAAK6f,EAKjC,CACA,OAAOvD,EAAQpD,KAAK,IACxB,2FC7BIg8C,EAAoB,CAAE7yC,SAAU,CAAC,EAAGC,eAAgB,CAAC,EAAGF,qBAAqB,GAC7E+yC,EAAe,IAAevV,SAFJ,iBAEsC,CAChEv9B,SAAU,CAAC,EACXC,eAAgB,CAAC,EACjBF,qBAAqB,IAErBgiC,EAAU,GACVgR,EAAgC,WAChC,SAASA,IACT,CA+DA,OA9DAA,EAAev0C,MAAQ,WACnBs0C,EAAa9yC,SAAW,CAAC,EACzB8yC,EAAa7yC,eAAiB,CAAC,CACnC,EAIA8yC,EAAe7W,cAAgB,SAAUl8B,GACrC8yC,EAAa9yC,UAAW,SAAS,QAAS,CAAC,EAAG8yC,EAAa9yC,UAAWA,GACtE+yC,EAAeC,cACnB,EAIAD,EAAeE,oBAAsB,SAAUC,EAAWlzC,GACtD8yC,EAAa7yC,eAAeizC,IAAa,SAAS,QAAS,CAAC,EAAGJ,EAAa7yC,eAAeizC,IAAalzC,GACxG+yC,EAAeC,cACnB,EACAD,EAAepvB,YAAc,SAAUwvB,EAAYD,EAAWE,QACpC,IAAlBA,IAA4BA,EAAgBP,GAIhD,IAHA,IAAI7yC,EAAW,CAAC,EACZqzC,EAAuBH,GAAaE,EAAcnzC,eAAeizC,IAAe,CAAC,EACjFI,EAAwBJ,GAAaJ,EAAa7yC,eAAeizC,IAAe,CAAC,EAC5Ep1D,EAAK,EAAGy1D,EAAeJ,EAAYr1D,EAAKy1D,EAAav1D,OAAQF,IAAM,CACxE,IAAI01D,EAAWD,EAAaz1D,GAC5BkiB,EAASwzC,GACLH,EAAoBG,IAChBJ,EAAcpzC,SAASwzC,IACvBF,EAAqBE,IACrBV,EAAa9yC,SAASwzC,EAClC,CACA,OAAOxzC,CACX,EAMA+yC,EAAeU,oBAAsB,SAAUpW,EAAMqW,GACjDX,EAAeY,kBAAmB,EAClC,IACItW,GACJ,CACA,MAAOp5C,GAEP,CACA8uD,EAAeY,kBAAmB,EAC7BD,GACDX,EAAeC,cAEvB,EACAD,EAAea,QAAU,SAAUC,GAC/B9R,EAAQpkD,KAAKk2D,EACjB,EACAd,EAAee,UAAY,SAAUD,GACjC9R,EAAUA,EAAQuM,QAAO,SAAUnF,GAAM,OAAOA,IAAO0K,CAAU,GACrE,EACAd,EAAeC,aAAe,WACrBD,EAAeY,kBAChB5R,EAAQnzC,SAAQ,SAAUu6C,GAAM,OAAOA,GAAM,GAErD,EACO4J,CACX,CAlEmC,6GCS/BgB,EAA4B,SAAUhsD,GAEtC,SAASgsD,IACL,IAAI9rD,EAAmB,OAAXF,GAAmBA,EAAO1F,MAAMyD,KAAMrB,YAAcqB,KAEhE,OADAmC,EAAM+rD,uBAAyB,WAAc,OAAO/rD,EAAMgsD,aAAe,EAClEhsD,CACX,CAkBA,OAvBA,QAAU8rD,EAAYhsD,GAMtBgsD,EAAWnuD,UAAUkJ,kBAAoB,WACrC,IAAe8kD,QAAQ9tD,KAAKkuD,uBAChC,EACAD,EAAWnuD,UAAUgK,qBAAuB,WACxC,IAAekkD,UAAUhuD,KAAKkuD,uBAClC,EACAD,EAAWnuD,UAAUoK,OAAS,WAC1B,IAAI/H,EAAQnC,KACRouD,EAAmBpuD,KAAKkC,MAAMksD,iBAClC,OAAQ,gBAAoB,IAAkBC,SAAU,MAAM,SAAUC,GACpE,IAAI1Y,GAAa,OAAoBzzC,EAAMD,MAAOosD,GAIlD,OAHIF,IACAxY,EAAawY,EAAiBxY,IAE3B,gBAAoB,IAAkBp9B,SAAU,CAAExJ,MAAO4mC,GAAczzC,EAAMD,MAAM7F,SAC9F,GACJ,EACO4xD,CACX,CAzB+B,CAyB7B,gEC3CSM,WAAoB,cAAoB,CAC/Cv0C,eAAgB,CACZC,qBAAqB,EACrBC,SAAU,CAAC,EACXC,eAAgB,CAAC,0MCClB,SAASq0C,EAAaC,EAAO9wB,EAAQ+wB,GAExC,OAAO,SAA6BC,GAChC,IAAIxwD,EACAywD,IAAezwD,EAAoB,SAAU8D,GAEzC,SAAS4sD,EAA2B3sD,GAChC,IAAIC,EAAQF,EAAOlC,KAAKC,KAAMkC,IAAUlC,KAIxC,OAFAmC,EAAM2sD,YAAc,CAAC,EACrB3sD,EAAM4sD,kBAAoB5sD,EAAM4sD,kBAAkB3S,KAAKj6C,GAChDA,CACX,CAkCA,OAzCA,QAAU0sD,EAA4B5sD,GAQtC4sD,EAA2B/uD,UAAUkJ,kBAAoB,WACrD,IAAe8kD,QAAQ9tD,KAAK+uD,kBAChC,EACAF,EAA2B/uD,UAAUgK,qBAAuB,WACxD,IAAekkD,UAAUhuD,KAAK+uD,kBAClC,EACAF,EAA2B/uD,UAAUoK,OAAS,WAC1C,IAAI/H,EAAQnC,KACZ,OAAQ,gBAAoB,IAAkBquD,SAAU,MAAM,SAAUt+C,GACpE,IAAIR,EAAe,IAAesuB,YAAYF,EAAQ8wB,EAAO1+C,EAAQiK,gBAEjE0jB,EAAiBv7B,EAAMD,MAM3B,GAJIqN,EAAa4I,QAAyC,mBAAxB5I,EAAa4I,SAC3C5I,EAAa4I,OAAS5I,EAAa4I,QAAO,SAAS,QAAS,CAAC,EAAG5I,GAAemuB,KAG/EgxB,GAAgBn/C,EAAa4I,OAAQ,CACrC,GAAIhW,EAAM2sD,YAAYE,UAAYz/C,EAAa4I,QAC3ChW,EAAM2sD,YAAYpvB,YAAchC,EAAevlB,OAAQ,CACvD,IAAI82C,GAAe,OAAgB1/C,EAAa4I,OAAQulB,EAAevlB,QACvEhW,EAAM2sD,YAAYE,QAAUz/C,EAAa4I,OACzChW,EAAM2sD,YAAYpvB,UAAYhC,EAAevlB,OAC7ChW,EAAM2sD,YAAYI,OAASD,CAC/B,CACA,OAAO,gBAAoBN,GAAmB,QAAS,CAAC,EAAGp/C,EAAcmuB,EAAgB,CAAEvlB,OAAQhW,EAAM2sD,YAAYI,SACzH,CACA,OAAO,gBAAoBP,GAAmB,QAAS,CAAC,EAAGp/C,EAAcmuB,GAC7E,GACJ,EACAmxB,EAA2B/uD,UAAUivD,kBAAoB,WACrD/uD,KAAKmuD,aACT,EACOU,CACX,CA3CkC,CA2ChC,cACC/5C,YAAc,aAAe25C,EAChCtwD,GACJ,OAAO,OAAawwD,EAAmBC,EAC3C,CACJ,4EClDO,SAASO,EAAoBjtD,EAAOosD,GACvC,IAAInwD,GAAMmwD,GAAiB,CAAC,GAAGt0C,eAAgBA,OAAwB,IAAP7b,EAAgB,CAAE+b,SAAU,CAAC,EAAGC,eAAgB,CAAC,GAAMhc,EACvH,MAAO,CACH6b,eAAgB,CACZE,UAAU,OAAcF,EAAeE,SAAUhY,EAAMgY,UACvDC,gBAAgB,OAAoBH,EAAeG,eAAgBjY,EAAMiY,gBACzEF,qBAAqB,GAGjC,oFCTO,SAASm1C,EAAcC,EAAa1Z,QACnB,IAAhB0Z,IAA0BA,EAAc,CAAC,GAC7C,IAAIC,EAAoBC,EAAoB5Z,GAAeA,EAW/D,SAA4BA,GACxB,OAAO,SAAUz7B,GAAY,OAAQy7B,GAAc,SAAS,QAAS,CAAC,EAAGz7B,GAAWy7B,GAAez7B,CAAW,CAClH,CAb6Es1C,CAAmB7Z,GAC5F,OAAO2Z,EAAkBD,EAC7B,CACO,SAASI,EAAoBJ,EAAa1Z,GAG7C,YAFoB,IAAhB0Z,IAA0BA,EAAc,CAAC,IACrBE,EAAoB5Z,GAAeA,QAU3B,KADF+Z,EAToE/Z,KAUxD+Z,EAA0B,CAAC,GAC9D,SAAUC,GACb,IAAIC,GAAoB,QAAS,CAAC,EAAGD,GACrC,IAAK,IAAIvC,KAAasC,EACdA,EAAwBjwD,eAAe2tD,KACvCwC,EAAkBxC,IAAa,SAAS,QAAS,CAAC,EAAGuC,EAAkBvC,IAAasC,EAAwBtC,KAGpH,OAAOwC,CACX,IAlByBP,GAQ7B,IAAkCK,CAPlC,CACA,SAASH,EAAoBr1C,GACzB,MAA2B,mBAAbA,CAClB,sHCbO,SAAS21C,EAAyBxC,EAAYD,GACjD,IAiB4BpK,EAjBxBmL,GAiBwBnL,EAAnB,WAAe,GAAkB,GACnC,WAAc,OAAOA,GAAS,SAAUh0C,GAAS,QAASA,CAAO,GAAI,GAjBxEgL,EAAiB,aAAiB,KAAmBA,eACrDC,EAAsBD,EAAeC,oBAYzC,OAXA,aAAgB,WAIZ,OAHKA,GACD,IAAe6zC,QAAQK,GAEpB,WACEl0C,GACD,IAAe+zC,UAAUG,EAEjC,CAEJ,GAAG,CAACl0C,IACG,IAAe4jB,YAAYwvB,EAAYD,EAAWpzC,EAC7D,m+BCdO,SAAS1K,EAAY5C,GACxB,IAAI,KAA8B,oBAAbzQ,SAArB,CAII,IAAIgsB,EAAKvb,EACT,OAAOub,GAAMA,EAAGie,cAAgBje,EAAGie,cAAgBjqC,QACvD,CACJ,yGCZO,SAAS6zD,EAAQr0D,GACpB,IAAI4S,EAgBJ,OAfI5S,IACIA,IAAYgG,OACZ4M,EAAO,CACH/I,KAAM,EACNuC,IAAK,EACLK,MAAOzG,OAAOsuD,WACdxhD,OAAQ9M,OAAOuuD,YACftqD,MAAOjE,OAAOsuD,WACdhoD,OAAQtG,OAAOuuD,aAGdv0D,EAAQ6R,wBACbe,EAAO5S,EAAQ6R,0BAGhBe,CACX,wKCtBA,IAAI4hD,EAAU,gBAAS,KAIvB,IACIA,EAAUxuD,MACd,CACA,MAAOmZ,GAEP,CASO,SAAS1R,EAAUwD,GACtB,IAAI,UAA6B,IAAZujD,EAArB,CAII,IAAIhoC,EAAKvb,EACT,OAAOub,GAAMA,EAAGie,eAAiBje,EAAGie,cAAcgqB,YAAcjoC,EAAGie,cAAcgqB,YAAcD,CACnG,CACJ,0GC3BO,SAAS3gB,EAAG7zC,EAASyzC,EAAW7I,EAAUlzB,GAE7C,OADA1X,EAAQ4N,iBAAiB6lC,EAAW7I,EAAUlzB,GACvC,WAAc,OAAO1X,EAAQuO,oBAAoBklC,EAAW7I,EAAUlzB,EAAU,CAC3F,2HCFO,SAASg9C,EAAWrzD,GACvB,IAAIiE,EAIR,SAAwBmuC,GACpB,IAAInuC,EAUJ,MATqB,mBAAVqvD,MAEPrvD,EAAQ,IAAIqvD,MAAMlhB,IAIlBnuC,EAAQ9E,SAASsF,YAAY,UACvB06B,UAAUiT,GAAW,GAAM,GAE9BnuC,CACX,CAhBgBsvD,CAAe,eAC3BtvD,EAAMk7B,UAAU,SAAS,GAAM,GAC/Bn/B,EAAO4E,cAAcX,EACzB,+JCLO,IAAIuvD,GAAS,EAMb,SAASC,EAAOC,GACnBF,EAASE,CACb,uJCJO,SAASC,EAAgBv1D,EAAQw1D,GACpC,IAAK,IAAIzyD,KAAUyyD,EACXA,EAAQjxD,eAAexB,KAEvB/C,EAAO+C,IAAU,OAAe/C,EAAQA,EAAO+C,GAASyyD,EAAQzyD,IAG5E,8TCNA,IAAIgC,EAAyB,oBACzB0wD,EAAuB,kBACvBzwD,EAAyB,oBACzB0wD,EAA0B,wBAMvB,SAASC,EAAkBnkD,EAAaokD,EAAgBC,GAC3D,OAAOC,EAAetkD,EAAaokD,GAAgB,GAAoB,GAAmC,EAAkCC,EAChJ,CAMO,SAASE,EAAiBvkD,EAAaokD,EAAgBC,GAC1D,OAAOG,EAAmBxkD,EAAaokD,GAAgB,GAAoB,GAAmC,EAA2BC,EAC7I,CAWO,SAASI,EAAiBzkD,EAAaokD,EAAgBC,EAA6BK,GAEvF,YADkB,IAAdA,IAAwBA,GAAY,GACjCJ,EAAetkD,EAAaokD,EAAgBM,GAAW,GAAmC,EAAkCL,GAA6B,GAA0B,EAC9L,CAWO,SAASM,EAAgB3kD,EAAaokD,EAAgBC,EAA6BK,GAEtF,YADkB,IAAdA,IAAwBA,GAAY,GACjCF,EAAmBxkD,EAAaokD,EAAgBM,GAAW,GAAmC,EAA2BL,GAA6B,GAA0B,EAC3L,CAQO,SAASO,EAAgB5kD,GAC5B,IAAIjR,EAAUu1D,EAAetkD,EAAaA,GAAa,GAAM,GAAO,GAAO,GAC3E,QAAIjR,IACA81D,EAAW91D,IACJ,EAGf,CAOO,SAASy1D,EAAmBxkD,EAAaokD,EAAgBM,EAAWI,EAAyBC,EAAkBV,EAA6B9kD,EAAgBylD,GAC/J,IAAKZ,IAAoB7kD,GAAkB6kD,IAAmBpkD,EAC1D,OAAO,KAEX,IAAIilD,EAA0BC,EAAiBd,GAE/C,GAAIW,GACAE,IACCZ,IAAiCc,EAAmBf,KAAmBgB,EAAsBhB,IAAmB,CACjH,IAAIiB,EAAab,EAAmBxkD,EAAaokD,EAAerjD,kBAAkB,GAAM,GAAM,EAAMsjD,EAA6B9kD,EAAgBylD,GACjJ,GAAIK,EAAY,CACZ,GAAKL,GAAYM,EAAkBD,GAAY,KAAWL,EACtD,OAAOK,EAEX,IAAIE,EAAyBf,EAAmBxkD,EAAaqlD,EAAWG,wBAAwB,GAAM,GAAM,EAAMnB,EAA6B9kD,EAAgBylD,GAC/J,GAAIO,EACA,OAAOA,EAOX,IALA,IAAIE,EAAmBJ,EAAW5uD,cAK3BgvD,GAAoBA,IAAqBrB,GAAgB,CAC5D,IAAIsB,EAAwBlB,EAAmBxkD,EAAaylD,EAAiBD,wBAAwB,GAAM,GAAM,EAAMnB,EAA6B9kD,EAAgBylD,GACpK,GAAIU,EACA,OAAOA,EAEXD,EAAmBA,EAAiBhvD,aACxC,CACJ,CACJ,CAEA,OAAIiuD,GAAaO,GAA2BK,EAAkBlB,EAAgBY,GACnEZ,EAGQI,EAAmBxkD,EAAaokD,EAAeoB,wBAAwB,GAAM,GAAM,EAAMnB,EAA6B9kD,EAAgBylD,KAKpJF,EAGE,KAFIN,EAAmBxkD,EAAaokD,EAAe3tD,eAAe,GAAM,GAAO,EAAO4tD,EAA6B9kD,EAAgBylD,GAG9I,CAQO,SAASV,EAAetkD,EAAaokD,EAAgBM,EAAWI,EAAyBa,EAAwBtB,EAA6B9kD,EAAgBylD,GACjK,IAAKZ,GAAmBA,IAAmBpkD,GAAe2lD,IAA2BpmD,EACjF,OAAO,KAEX,IAAI0lD,EAA0BC,EAAiBd,GAE/C,GAAIM,GAAaO,GAA2BK,EAAkBlB,EAAgBY,GAC1E,OAAOZ,EAGX,IAAKuB,GACDV,IACCZ,IAAiCc,EAAmBf,KAAmBgB,EAAsBhB,IAAmB,CACjH,IAAIiB,EAAaf,EAAetkD,EAAaokD,EAAenkD,mBAAmB,GAAM,GAAM,EAAOokD,EAA6B9kD,EAAgBylD,GAC/I,GAAIK,EACA,OAAOA,CAEf,CACA,OAAIjB,IAAmBpkD,EACZ,KAGQskD,EAAetkD,EAAaokD,EAAejkD,oBAAoB,GAAM,GAAM,EAAOkkD,EAA6B9kD,EAAgBylD,KAI7IF,EAGE,KAFIR,EAAetkD,EAAaokD,EAAe3tD,eAAe,GAAO,GAAO,EAAM4tD,EAA6B9kD,EAAgBylD,GAG1I,CAMO,SAASE,EAAiBn2D,GAE7B,IAAKA,IAAYA,EAAQK,aACrB,OAAO,EAEX,IAAIw2D,EAAsB72D,EAAQK,aAAa60D,GAE/C,OAAI2B,QAC+B,SAAxBA,EAGsB,IAAzB72D,EAAQ82D,cACa,OAAzB92D,EAAQ+2D,eAEc,IAAtB/2D,EAAQg3D,SAChB,CAQO,SAAST,EAAkBv2D,EAASi3D,GAEvC,IAAKj3D,GAAWA,EAAQsI,SACpB,OAAO,EAEX,IAAIsI,EAAW,EACXsmD,EAAyB,KACzBl3D,GAAWA,EAAQK,eACnB62D,EAAyBl3D,EAAQK,aAAa,eAE1CuQ,EAAWqiC,SAASikB,EAAwB,KAGpD,IAAIC,EAAuBn3D,EAAQK,aAAeL,EAAQK,aAAamE,GAA0B,KAC7F4yD,EAA2C,OAA3BF,GAAmCtmD,GAAY,EAC/D9X,IAAWkH,GACc,UAAzBm3D,IACqB,MAApBn3D,EAAQgR,SACe,WAApBhR,EAAQgR,SACY,UAApBhR,EAAQgR,SACY,aAApBhR,EAAQgR,SACY,WAApBhR,EAAQgR,SACiB,SAAzBmmD,GACAC,GACR,OAAOH,GAA8B,IAAdrmD,GAAmB9X,EAASA,CACvD,CAMO,SAASs9D,EAAmBp2D,GAC/B,SAAUA,GAAWA,EAAQK,cAAkBL,EAAQK,aAAaoE,GACxE,CAMO,SAAS4xD,EAAsBr2D,GAClC,SAAUA,IAAWA,EAAQK,cAAkE,SAAlDL,EAAQK,aAAa80D,GACtE,CAMO,SAASkC,EAAwBr3D,GACpC,IAAIQ,GAAW,OAAYR,GACvBs3D,EAAuB92D,GAAYA,EAAS2I,cAChD,SAAImuD,KAAwB,OAAgBt3D,EAASs3D,GAIzD,CAOO,SAASC,EAAgBv3D,EAAS2T,GACrC,MAAkE,UAA3D,OAAyB3T,EAAS2T,EAC7C,CACA,IAAI6jD,EAA6B,gBAAS,KAOnC,SAAS1B,EAAW91D,GACvB,GAAIA,EAAS,CAET,GAAIw3D,EAEA,YADAA,EAA6Bx3D,GAGjCw3D,EAA6Bx3D,EAC7B,IAAIqc,GAAM,OAAUrc,GAChBqc,GAEAA,EAAI2vB,uBAAsB,WACtB,IAAIyrB,EAAmBD,EAEvBA,OAA6Bz1D,EACzB01D,IACIA,EAAiBp3D,cAA0E,SAA1Do3D,EAAiBp3D,aAAamE,KAI1DizD,EAAiBp3D,aAAa,aAC/Bo3D,EAAiBj2D,aAAa,WAAY,MAGlDi2D,EAAiB5vD,QAEzB,GAER,CACJ,CAKO,SAAS6vD,EAAwBj4D,EAAQ8I,GAE5C,IADA,IAAIvI,EAAUP,EACLlD,EAAK,EAAGyf,EAASzT,EAAMhM,EAAKyf,EAAOvf,OAAQF,IAAM,CACtD,IAAIsF,EAAQma,EAAOzf,GACfo7D,EAAY33D,EAAQY,SAASpF,KAAKu6C,IAAIl0C,EAAO7B,EAAQY,SAASnE,OAAS,IAC3E,IAAKk7D,EACD,MAEJ33D,EAAU23D,CACd,CAKA,OAHIpB,EAAkBv2D,IAAYm2D,EAAiBn2D,GACzCA,EACAu1D,EAAe91D,EAAQO,GAAS,IAASy1D,EAAmBh2D,EAAQO,EAElF,CAOO,SAAS43D,EAAoBC,EAAaC,GAE7C,IADA,IAAIvvD,EAAO,GACJuvD,GAAaD,GAAeC,IAAcD,GAAa,CAC1D,IAAI3R,GAAW,OAAU4R,GAAW,GACpC,GAAiB,OAAb5R,EACA,MAAO,GAEX39C,EAAKwvD,QAAQ98D,MAAMoJ,UAAUnI,QAAQoI,KAAK4hD,EAAStlD,SAAUk3D,IAC7DA,EAAY5R,CAChB,CACA,OAAO39C,CACX,kGClUA,IAAIyvD,EAAsB,gBACtBC,EAAoB,OAEpBzuB,GAAU,UAAe,CAAC,OACOznC,IAAjCynC,EAAQwuB,KACRxuB,EAAQwuB,GAAuB,GAEnC,IAAIE,GAA+B,EAM5B,SAASrrD,EAAMgJ,GAClB,IAAKqiD,EAA8B,CAE/B,IAAI1qB,EAAa,IAAWtwB,cACxBswB,GAAcA,EAAWrwB,SACzBqwB,EAAWrwB,QAAQg7C,GAEvBD,GAA+B,CACnC,CACA,IAAIr2D,EAAQ2nC,EAAQwuB,KACpB,YAAmBj2D,IAAX8T,EAAuBoiD,EAAoBpiD,GAAUhU,CACjE,CAMO,SAASs2D,EAASC,QACL,IAAZA,IAAsBA,EAAU,GACpC5uB,EAAQwuB,GAAuBI,CACnC,gECnCIC,EAAmB,CACnBC,MAAO,KACPC,MAAO,KACPC,MAAO,KACPC,GAAI,KACJC,GAAI,KACJr1D,EAAG,KACHs1D,OAAQ,KACRC,MAAO,KACPC,SAAU,KACV7O,OAAQ,KACRjpB,OAAQ,KACR+3B,MAAO,KACPvrC,GAAI,KACJD,GAAI,KACJyrC,GAAI,KACJC,SAAU,KACVC,IAAK,KACLC,KAAM,KACNC,OAAQ,KACRC,IAAK,MAUF,SAASC,EAAsBroD,EAASvK,EAAO6yD,GAClD,IAAIC,EAAoBvoD,GAAWqnD,EAAiBrnD,IAAa,KACjE,OAAO,QAAevK,EAAO8yD,EAAkBD,EACnD,4EC1BO,SAASE,EAAqB1lD,EAAc2lD,GAE/C,IADA,IAAIhzD,GAAQ,QAAS,CAAC,EAAGgzD,GAChBl9D,EAAK,EAAGmG,EAAKkB,OAAOoS,KAAKlC,GAAevX,EAAKmG,EAAGjG,OAAQF,IAAM,CACnE,IAAI0f,EAAMvZ,EAAGnG,QACMwF,IAAf0E,EAAMwV,KACNxV,EAAMwV,GAAOnI,EAAamI,GAElC,CACA,OAAOxV,CACX,yDCjBA,IAAIizD,EAA6B,UAC7B,WACA,SACA,qBACA,4BACA,oBACA,4BACA,mCACA,wBACA,sBACA,0BACA,6BACA,qBACA,wBACH,KAUM,SAASC,EAEhBC,EAEAC,EAAQC,QACe,IAAfA,IAAyBA,EAAaJ,GAC1C,IAAIK,EAAU,GACV11B,EAAU,SAAU4f,GACc,mBAAvB4V,EAAO5V,SACcliD,IAA5B63D,EAAY3V,IACV6V,IAAkD,IAApCA,EAAW59D,QAAQ+nD,KACnC8V,EAAQ39D,KAAK6nD,GAEb2V,EAAY3V,GAAc,WAEtB,IADA,IAAIxjB,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzBs9D,EAAO5V,GAAYnjD,MAAM+4D,EAAQp5B,EACrC,EAER,EACA,IAAK,IAAIwjB,KAAc4V,EACnBx1B,EAAQ4f,GAEZ,OAAO8V,CACX,CASO,SAASC,EAAeH,EAAQ1X,GACnCA,EAAY90C,SAAQ,SAAU42C,GAAc,cAAc4V,EAAO5V,EAAa,GAClF,gCCnDO,SAASgW,EAAaJ,EAAQK,GACjC,IAAK,IAAI13D,KAAUq3D,EACXA,EAAO71D,eAAexB,KAEtB03D,EAAK13D,GAAUq3D,EAAOr3D,IAG9B,OAAO03D,CACX,4FCjBO,IAAIC,EAAS,WAChB,IAAIz3D,EAAIuC,EACJoX,GAAM,SACV,SAA8E,QAAvEpX,EAAoB,QAAdvC,EAAK2Z,SAAwB,IAAP3Z,OAAgB,EAASA,EAAG2mC,iBAA8B,IAAPpkC,OAAgB,EAASA,EAAGskC,YAG3GltB,EAAIgtB,UAAUE,UAAUrtC,QAAQ,YAAc,CACzD,ooFCLA,cAAW,sBAAuB,oFCI3B,SAASyQ,EAAuB0nC,IACnC,OAAgBA,EAAK,CACjB9mC,kBAAmB6sD,EACnBpsD,mBAAoBqsD,EACpBhsD,qBAAsBisD,GAE9B,CACA,SAASF,IACL1X,EAAiBn+C,KAAKkC,MAAMk8C,aAAcp+C,KAC9C,CACA,SAAS81D,EAAU9X,GACXA,EAAUI,eAAiBp+C,KAAKkC,MAAMk8C,eAEtCD,EAAiBH,EAAUI,aAAc,MACzCD,EAAiBn+C,KAAKkC,MAAMk8C,aAAcp+C,MAElD,CACA,SAAS+1D,IACL5X,EAAiBn+C,KAAKkC,MAAMk8C,aAAc,KAC9C,CACA,SAASD,EAAiBC,EAAcpvC,GAChCovC,IAC4B,iBAAjBA,EACPA,EAAah7C,QAAU4L,EAEM,mBAAjBovC,GACZA,EAAapvC,GAGzB,kICjBO,SAASgnD,EAAqBv0D,GACjC,IAAItD,EACA2Z,EAAOrW,IAAU,SAChBqW,IAA+F,KAA3D,QAA3B3Z,EAAK2Z,EAAIyN,oBAAiC,IAAPpnB,OAAgB,EAASA,EAAG83D,qBAGxEn+C,EAAIo+C,8BACLp+C,EAAIo+C,6BAA8B,EAClCp+C,EAAIzO,iBAAiB,YAAavF,GAAc,GAChDgU,EAAIzO,iBAAiB,cAAe8sD,GAAgB,GACpDr+C,EAAIzO,iBAAiB,UAAWlF,GAAY,IAEpD,CACA,SAASL,EAAarD,IAClB,SAAmB,EAAOA,EAAG3D,OACjC,CACA,SAASq5D,EAAe11D,GACG,UAAnBA,EAAG21D,cACH,SAAmB,EAAO31D,EAAG3D,OAErC,CACA,SAASqH,EAAW1D,IAEhB,OAAqBA,EAAGyE,SAAU,SAAmB,EAAMzE,EAAG3D,OAClE,iDCpCA,IAAIu5D,EAA4B,8BAK5BC,EAAuB,6DAKvBC,EAAoB,gCAEpBC,EAA6B,OAU7BC,EAAyB,6MAgCtB,SAASC,EAAY5hD,EAAa6hD,EAAOC,GAC5C,OAAK9hD,GAGLA,EAhBJ,SAA4BA,GAKxB,OAFAA,GADAA,GADAA,EAAcA,EAAYo2B,QAAQmrB,EAA2B,KACnCnrB,QAAQorB,EAAsB,KAC9BprB,QAAQsrB,EAA4B,MACpC7qB,MAE9B,CAUkBkrB,CAAmB/hD,GAE7B2hD,EAAuB1xB,KAAKjwB,KAAkB8hD,GAAsBL,EAAkBxxB,KAAKjwB,GACpF,GAtCf,SAA0BA,EAAa6hD,GACnC,IAAIG,EAAW,GACXC,EAASjiD,EAAYw0B,MAAM,KAY/B,OAXsB,IAAlBytB,EAAO7+D,QACP4+D,GAAYC,EAAO,GAAGvpB,OAAO,GAAGkJ,cAChCogB,GAAYC,EAAO,GAAGvpB,OAAO,GAAGkJ,eAET,IAAlBqgB,EAAO7+D,QACZ4+D,GAAYC,EAAO,GAAGvpB,OAAO,GAAGkJ,cAChCogB,GAAYC,EAAO,GAAGvpB,OAAO,GAAGkJ,eAET,IAAlBqgB,EAAO7+D,SACZ4+D,GAAYC,EAAO,GAAGvpB,OAAO,GAAGkJ,eAEhCigB,GAASG,EAAS5+D,OAAS,EACpB4+D,EAAStpB,OAAO,GAAKspB,EAAStpB,OAAO,GAEzCspB,CACX,CAsBWE,CAAiBliD,EAAa6hD,IAP1B,EAQf,6DCvEIx4D,aAEA84D,IAAuB94D,EAAK,CAAC,GAC1B,IAASyH,IAAM,EAClBzH,EAAG,IAAS4H,MAAQ,EACpB5H,EAAG,IAASmH,MAAQ,EACpBnH,EAAG,IAASuH,OAAS,EACrBvH,EAAG,IAAS2I,MAAQ,EACpB3I,EAAG,IAAS8I,KAAO,EACnB9I,EAAG,IAASiI,KAAO,EACnBjI,EAAG,IAASgI,QAAU,EACtBhI,EAAG,IAAS8H,UAAY,EACxB9H,GAIG,SAAS+4D,EAAqBhyD,GACjC,QAAS+xD,EAAoB/xD,EACjC,CAMO,SAASiyD,EAAsBjyD,GAClC+xD,EAAoB/xD,GAAS,CACjC,0ICtBA,IAAIkyD,EACAC,EAAc,WAMX,SAASC,EAAYC,GAExB,QADwB,IAApBA,IAA8BA,EAAkB,qBAClC/5D,IAAd45D,EAAyB,CACzB,IAAI1tD,GAAM,SACN8tD,EAAoC,iBAApBD,EACd,IAAqBF,GACD,mBAApBE,EACI,IAAuBF,QACvB75D,EACNg6D,IACAJ,EAAYI,QAEEh6D,IAAd45D,GAA2B1tD,IAC3B0tD,EAAY1tD,EAAI66B,gBAAgBzoC,aAAa,cAE/B0B,IAAd45D,IACAA,EAAY,KAEpB,CACA,OAAOA,CACX,CACO,SAASK,EAAY/tC,EAAUguC,GAClC,IAAIhuD,GAAM,SACNA,GACAA,EAAI66B,gBAAgBtnC,aAAa,OAAQysB,GAE7C,IAAI6tC,GAAuC,IAArBG,EAA4B,OAAUA,GAAmB,eACvD,iBAApBH,EACA,IAAqBF,EAAa3tC,GAET,mBAApB6tC,GACL,IAAuBF,EAAa3tC,GAExC0tC,EAAY1tC,CAChB,oFCxCO,SAASo/B,EAAQpxC,GACpB,IAAInjB,EAAS,KACb,IACI,IAAIujB,GAAM,SACVvjB,EAASujB,EAAMA,EAAI6/C,aAAa7O,QAAQpxC,GAAO,IACnD,CACA,MAAOkD,GAEP,CACA,OAAOrmB,CACX,CAMO,SAASqjE,EAAQlgD,EAAKmgD,GACzB,IACI,IAAI//C,GAAM,SACVA,GAAOA,EAAI6/C,aAAaC,QAAQlgD,EAAKmgD,EACzC,CACA,MAAOj9C,GAEP,CACJ,gCCvBO,SAASk9C,EAAyBC,EAAQC,GAC7C,IAAIC,EAAQF,EAAOzyD,MAAQyyD,EAAOpwD,GAAK,EACnCuwD,EAAOH,EAAOlwD,KAAOkwD,EAAO1S,GAAK,EACjC8S,EAAQH,EAAO1yD,MAAQ0yD,EAAOrwD,GAAK,EACnCywD,EAAOJ,EAAOnwD,KAAOmwD,EAAO3S,GAAK,EAGrC,OADepuD,KAAKohE,KAAKphE,KAAKqhE,IAAIL,EAAQE,EAAO,GAAKlhE,KAAKqhE,IAAIJ,EAAOE,EAAM,GAEhF,CAYO,SAASG,EAAmBplD,GAC/B,IAGIqlD,EAHAC,EAActlD,EAAQslD,YAAaC,EAAavlD,EAAQulD,WAAYv6D,EAAKgV,EAAQ4mB,KAAMA,OAAc,IAAP57B,EAAgB,UAAYA,EAAIuC,EAAKyS,EAAQwlD,SAAUA,OAAkB,IAAPj4D,EAAgB,EAAIA,EACpLk4D,EAAqBH,EAAYvwD,MAAQuwD,EAAYlqD,OACrDsqD,EAAoBH,EAAWxwD,MAAQwwD,EAAWnqD,OAGlDiqD,GADS,YAATz+B,EAAqB6+B,EAAqBC,EAAoBD,EAAqBC,GAC3EH,EAAWxwD,MAAQuwD,EAAYvwD,MAG/BwwD,EAAWnqD,OAASkqD,EAAYlqD,OAE5C,IAAIuqD,EAAa7hE,KAAKu6C,IAAImnB,EAAUH,GACpC,MAAO,CACHtwD,MAAOuwD,EAAYvwD,MAAQ4wD,EAC3BvqD,OAAQkqD,EAAYlqD,OAASuqD,EAErC,CAQO,SAASC,EAAmB/pD,GAO/B,IAAIgqD,EAAS,0BAA0Bn+B,KAAK0T,OAAOv/B,IACnD,OAAKgqD,EAGDA,EAAO,IACCA,EAAO,GAAG9gE,OAElB8gE,EAAO,GACAA,EAAO,GAAG9gE,OAEd,EARI,CASf,CAMO,SAAS+gE,EAAejqD,EAAOkqD,EAAWC,QAChC,IAATA,IAAmBA,EAAO,IAC9B,IAAIC,EAAMniE,KAAKqhE,IAAIa,EAAMD,GACzB,OAAOjiE,KAAKwmD,MAAMzuC,EAAQoqD,GAAOA,CACrC,4JC7EA,IAAIzF,GAA+B,EAC/B0F,EAAgB,EAChBC,EAAe,CAAEC,OAAO,GACxBC,EAAc,CAAC,EACfC,EAA8B,oBAAZvoD,QAA0B,KAAOA,QAMhD,SAASwoD,EAAkBC,GAC9BF,EAAWE,CACf,CAIO,SAASC,IACZP,GACJ,CAQO,SAASQ,EAAQ/8D,EAAQ4a,EAAKoiD,GAGjC,IAAIC,EAAKC,EAAgBF,EAAW9qD,OAAS8qD,EAAW9qD,MAAMotC,KAAK,OACnE,MAAO,CACH/L,cAAc,EACdhgC,IAAK,WACD,OAAO0pD,CACX,EAER,CAoBO,SAASC,EAAgB3W,EAAI4W,EAAcC,GAI9C,QAHqB,IAAjBD,IAA2BA,EAAe,UACV,IAAhCC,IAA0CA,GAA8B,IAEvET,EACD,OAAOpW,EAEX,IAAKsQ,EAA8B,CAC/B,IAAI1qB,EAAa,IAAWtwB,cACxBswB,GAAcA,EAAWrwB,SACzB,IAAWD,cAAcC,QAAQghD,GAErCjG,GAA+B,CACnC,CACA,IAAIwG,EACA7O,EAAY,EACZ8O,EAAoBf,EACxB,OAAO,WAEH,IADA,IAAIn9B,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,GAAM2G,UAAU3G,GAEzB,IA2DeqiE,EA3DXC,EAAcH,QACD38D,IAAb28D,GACAC,IAAsBf,GACrBY,EAAe,GAAK3O,EAAY2O,KACjCE,EAAWI,IACXjP,EAAY,EACZ8O,EAAoBf,GAExBiB,EAAcH,EAEd,IAAK,IAAIlhE,EAAI,EAAGA,EAAIijC,EAAKhkC,OAAQe,IAAK,CAClC,IAAIowC,GAgDOgxB,EAhDan+B,EAAKjjC,IAoDb,iBAARohE,GAAmC,mBAARA,EAChCA,GAEDb,EAAYa,KAClBb,EAAYa,GAAO,CAAEA,IAAKA,IAEvBb,EAAYa,IARRf,EAjDEgB,EAAYx9B,IAAIpsB,IAAI24B,IACrBixB,EAAYx9B,IAAIvsB,IAAI84B,EAAKkxB,KAE7BD,EAAcA,EAAYx9B,IAAIzsB,IAAIg5B,EACtC,CAQA,OAPKixB,EAAY76D,eAAe,WAC5B66D,EAAYtrD,MAAQq0C,EAAG9mD,WAAM,EAAQ2/B,GACrCovB,MAEA4O,GAAsD,OAAtBI,EAAYtrD,YAAwCxR,IAAtB88D,EAAYtrD,QAC1EsrD,EAAYtrD,MAAQq0C,EAAG9mD,WAAM,EAAQ2/B,IAElCo+B,EAAYtrD,KACvB,CACJ,CAYO,SAASwrD,EAAe/iB,GAC3B,IAAKgiB,EAED,OAAOhiB,EAEX,IAAIgjB,EAAQ,IAAIhB,EAchB,OAbA,SAA0BpF,GACtB,IAAKA,GAA2B,mBAAVA,GAAyC,iBAAVA,EAGjD,OAAO5c,EAAS4c,GAEpB,GAAIoG,EAAM/pD,IAAI2jD,GACV,OAAOoG,EAAMpqD,IAAIgkD,GAErB,IAAIrlD,EAAQyoC,EAAS4c,GAErB,OADAoG,EAAMlqD,IAAI8jD,EAAOrlD,GACVA,CACX,CAEJ,CAaA,SAASurD,IACL,MAAO,CACHz9B,IAAK28B,EAAW,IAAIA,EAAa,KAEzC,gCCrJO,SAASiB,EAAM59D,GAElB,IADA,IAAIo/B,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,EAAK,GAAK2G,UAAU3G,GAE7B,IAAK,IAAImG,EAAK,EAAGguC,EAASjQ,EAAM/9B,EAAKguC,EAAOj0C,OAAQiG,IAEhDw8D,EAAO79D,GAAU,CAAC,EADRqvC,EAAOhuC,IAGrB,OAAOrB,CACX,CAQA,SAAS69D,EAAO79D,EAAQw4D,EAAQsF,GAG5B,IAAK,IAAI38D,UAFkB,IAAvB28D,IAAiCA,EAAqB,IAC1DA,EAAmB/iE,KAAKy9D,GACLA,EACf,GAAIA,EAAO71D,eAAexB,IACP,cAAXA,GAAqC,gBAAXA,GAAuC,cAAXA,EAAwB,CAC9E,IAAI+Q,EAAQsmD,EAAOr3D,GACnB,GAAqB,iBAAV+Q,GAAgC,OAAVA,GAAmBtY,MAAMuZ,QAAQjB,GAO9DlS,EAAOmB,GAAU+Q,MAPqD,CACtE,IAAI6rD,EAAsBD,EAAmBjjE,QAAQqX,IAAU,EAC/DlS,EAAOmB,GAAW48D,EACZ7rD,EACA2rD,EAAO79D,EAAOmB,IAAW,CAAC,EAAG+Q,EAAO4rD,EAC9C,CAIJ,CAIR,OADAA,EAAmB32D,MACZnH,CACX,iECxCO,IAAIg+D,EAAQ,WACf,SAAKr5D,QAAWA,OAAOqjC,WAAcrjC,OAAOqjC,UAAUE,YAG/C,oBAAoBD,KAAKtjC,OAAOqjC,UAAUE,UACrD,4ECCO,SAAS+1B,EAASj+D,GAKrB,IAJA,IAAIqB,EACA68D,EAAgB,GAChBC,GAAiB,OAAYn+D,IAAWb,SAErCa,IAAWm+D,EAAe/+D,MAAM,CAEnC,IAAK,IAAIlE,EAAK,EAAG0I,EAAK5D,EAAOqG,cAAc9G,SAAUrE,EAAK0I,EAAGxI,OAAQF,IAAM,CACvE,IAAIkjE,EAAUx6D,EAAG1I,GAEbkjE,IAAYp+D,GAAiH,UAAvD,QAA9CqB,EAAK+8D,EAAQp/D,aAAa,sBAAmC,IAAPqC,OAAgB,EAASA,EAAGuQ,gBAC1GssD,EAAcnjE,KAAKqjE,EAE3B,CACA,IAAKp+D,EAAOqG,cACR,MAEJrG,EAASA,EAAOqG,aACpB,CAKA,OAHA63D,EAAclyD,SAAQ,SAAUqyD,GAC5BA,EAAKl+D,aAAa,cAAe,OACrC,IACO,YAQX,SAAoB+9D,GAChBA,EAAclyD,SAAQ,SAAUqyD,GAE5BA,EAAKl+D,aAAa,cAAe,QACrC,GACJ,CAZQm+D,CAAWJ,GACXA,EAAgB,EACpB,CACJ,+BC/BO,SAASK,EAAev8D,EAAGM,GAC9B,IAAK,IAAImU,KAAYzU,EACjB,GAAIA,EAAEW,eAAe8T,MACZnU,EAAEK,eAAe8T,IAAanU,EAAEmU,KAAczU,EAAEyU,IACjD,OAAO,EAInB,IAAK,IAAIA,KAAYnU,EACjB,GAAIA,EAAEK,eAAe8T,KACZzU,EAAEW,eAAe8T,GAClB,OAAO,EAInB,OAAO,CACX,CAYO,SAAS5T,EAAO7C,GAEnB,IADA,IAAIo/B,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,EAAK,GAAK2G,UAAU3G,GAE7B,OAAOsjE,EAAe/+D,MAAMyD,KAAM,CAAC,KAAMlD,GAAQmtB,OAAOiS,GAC5D,CAcO,SAASo/B,EAAeC,EAAWz+D,GAEtC,IADA,IAAIo/B,EAAO,GACFlkC,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCkkC,EAAKlkC,EAAK,GAAK2G,UAAU3G,GAE7B8E,EAASA,GAAU,CAAC,EACpB,IAAK,IAAIqB,EAAK,EAAGguC,EAASjQ,EAAM/9B,EAAKguC,EAAOj0C,OAAQiG,IAAM,CACtD,IAAIq9D,EAAervB,EAAOhuC,GAC1B,GAAIq9D,EACA,IAAK,IAAIjoD,KAAYioD,GACbA,EAAa/7D,eAAe8T,IAAegoD,IAAaA,EAAUhoD,KAClEzW,EAAOyW,GAAYioD,EAAajoD,GAIhD,CACA,OAAOzW,CACX,CAQO,SAAS2+D,EAEhBC,EAASr1B,GAEL,OAAOhnC,OAAOoS,KAAKiqD,GACd5+B,KAAI,SAAUt9B,GAEf,GAAI+uC,OAAOqF,OAAOp0C,MAAQA,EAEtB,OAAO6mC,EAAS7mC,EAAGk8D,EAAQl8D,GAGnC,IACKgpD,QAAO,SAAU9c,GAAK,QAASA,CAAG,GAC3C,CAOO,SAASiwB,EAAO7rB,GACnB,OAAOzwC,OAAOoS,KAAKq+B,GAAKjE,QAAO,SAAU+vB,EAAKlkD,GAE1C,OADAkkD,EAAI/jE,KAAKi4C,EAAIp4B,IACNkkD,CACX,GAAG,GACP,CAeO,SAASC,EAAK/rB,EAAKylB,GAEtB,IAAIhhE,EAAS,CAAC,EACd,IAAK,IAAImjB,KAAOo4B,GACqB,IAA7BylB,EAAW59D,QAAQ+f,IAAeo4B,EAAIrwC,eAAeiY,KACrDnjB,EAAOmjB,GAAOo4B,EAAIp4B,IAG1B,OAAOnjB,CACX,0IChIA,IAAIunE,EAKG,SAASC,EAAMrjD,GAClB,QAA2B,IAAhBojD,GAA+BpjD,EAAO,CAC7C,IAAIZ,GAAM,SACNktB,EAAYltB,GAAOA,EAAIgtB,UAAUE,UACrC82B,IAAgB92B,IAAiD,IAApCA,EAAUrtC,QAAQ,YACnD,CACA,QAASmkE,CACb,gCCNO,SAASE,EAAsBvgE,GAClC,OAAOA,EAAQwgE,YAAcxgE,EAAQygE,WACzC,CAQO,SAASC,EAAoB1gE,GAChC,OAAOA,EAAQyS,aAAezS,EAAQ2gE,YAC1C,CAQO,SAASC,EAAY5gE,GACxB,OAAOugE,EAAsBvgE,IAAY0gE,EAAoB1gE,EACjE,sTC7BA,IAAI6gE,EAAc,WAEd,IADA,IAAItT,EAAQ,GACHhxD,EAAK,EAAGA,EAAK2G,UAAUzG,OAAQF,IACpCgxD,EAAMhxD,GAAM2G,UAAU3G,GAG1B,IADA,IAAIzD,EAAS,CAAC,EACL4J,EAAK,EAAGo+D,EAAUvT,EAAO7qD,EAAKo+D,EAAQrkE,OAAQiG,IAGnD,IAFA,IAAI7B,EAAOigE,EAAQp+D,GAEVuC,EAAK,EAAG87D,EADN9lE,MAAMuZ,QAAQ3T,GAAQA,EAAO+C,OAAOoS,KAAKnV,GACpBoE,EAAK87D,EAAOtkE,OAAQwI,IAEhDnM,EADUioE,EAAO97D,IACH,EAGtB,OAAOnM,CACX,EAMWkoE,EAAoBH,EAAY,CACvC,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,yBAOOI,EAAwBJ,EAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAOOK,EAAwBL,EAAYI,EAAuBD,GAM3DG,EAAkBN,EAAYK,EAAuB,CAC5D,SAOOE,EAAkBP,EAAYK,EAAuB,CAC5D,SACA,OACA,QACA,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,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,IACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,KACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,KACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,KACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ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","sources":["webpack:///../node_modules/@fluentui/date-time-utilities/lib/dateMath/dateMath.js","webpack:///../node_modules/@fluentui/date-time-utilities/lib/dateValues/dateValues.js","webpack:///../node_modules/@fluentui/date-time-utilities/lib/dateValues/timeConstants.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/elementContains.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/getChildren.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/getParent.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","webpack:///../node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","webpack:///../node_modules/@fluentui/react-compose/lib/next/getSlots.js","webpack:///../node_modules/@fluentui/react-compose/lib/next/nullRender.js","webpack:///../node_modules/@fluentui/react-compose/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@fluentui/react-focus/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","webpack:///../node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","webpack:///../node_modules/@fluentui/react-focus/lib/version.js","webpack:///../node_modules/@fluentui/react-stylesheets/lib/StylesheetContext.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/ThemeContext.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/tokensToStyleObject.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/useThemeProviderClasses.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/useThemeProvider.js","webpack:///../node_modules/@fluentui/react-compose/lib/next/makeMergeProps.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/ThemeProvider.js","webpack:///../node_modules/@fluentui/react-stylesheets/lib/useStylesheet.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/getTokens.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/makeStyles.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/renderThemeProvider.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/styleRenderers/mergeStylesRenderer.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/styleRenderers/useStyleRenderer.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/useTheme.js","webpack:///../node_modules/@fluentui/react-theme-provider/lib/useThemeProviderState.js","webpack:///../node_modules/@fluentui/react-theme-provider/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","webpack:///../node_modules/@fluentui/set-version/lib/setVersion.js","webpack:///../node_modules/@fluentui/set-version/lib/index.js","webpack:///../node_modules/@fluentui/react/lib/version.js","webpack:///../node_modules/@fluentui/theme/lib/FluentTheme.js","webpack:///../node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","webpack:///../node_modules/@fluentui/theme/lib/colors/FluentColors.js","webpack:///../node_modules/@fluentui/theme/lib/createTheme.js","webpack:///../node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","webpack:///../node_modules/@fluentui/theme/lib/effects/FluentDepths.js","webpack:///../node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","webpack:///../node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","webpack:///../node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","webpack:///../node_modules/@fluentui/theme/lib/mergeThemes.js","webpack:///../node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","webpack:///../node_modules/@fluentui/theme/lib/motion/FluentMotion.js","webpack:///../node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","webpack:///../node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","webpack:///../node_modules/@fluentui/theme/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@microsoft/load-themed-styles/lib-es6/index.js","webpack:///../node_modules/@uifabric/foundation/lib/createComponent.js","webpack:///../node_modules/@uifabric/foundation/lib/slots.js","webpack:///../node_modules/@uifabric/foundation/lib/utilities.js","webpack:///../node_modules/@uifabric/foundation/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-0.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-1.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-10.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-11.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-12.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-13.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-14.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-15.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-16.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-17.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-2.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-3.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-4.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-5.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-6.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-7.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-8.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons-9.js","webpack:///../node_modules/@uifabric/icons/lib/fabric-icons.js","webpack:///../node_modules/@uifabric/icons/lib/iconAliases.js","webpack:///../node_modules/@uifabric/icons/lib/version.js","webpack:///../node_modules/@uifabric/icons/lib/index.js","webpack:///../node_modules/@uifabric/merge-styles/lib/StyleOptionsState.js","webpack:///../node_modules/@uifabric/merge-styles/lib/Stylesheet.js","webpack:///../node_modules/@uifabric/merge-styles/lib/concatStyleSets.js","webpack:///../node_modules/@uifabric/merge-styles/lib/concatStyleSetsWithProps.js","webpack:///../node_modules/@uifabric/merge-styles/lib/extractStyleParts.js","webpack:///../node_modules/@uifabric/merge-styles/lib/fontFace.js","webpack:///../node_modules/@uifabric/merge-styles/lib/getVendorSettings.js","webpack:///../node_modules/@uifabric/merge-styles/lib/keyframes.js","webpack:///../node_modules/@uifabric/merge-styles/lib/mergeStyleSets.js","webpack:///../node_modules/@uifabric/merge-styles/lib/mergeStyles.js","webpack:///../node_modules/@uifabric/merge-styles/lib/styleToClassName.js","webpack:///../node_modules/@uifabric/merge-styles/lib/transforms/kebabRules.js","webpack:///../node_modules/@uifabric/merge-styles/lib/transforms/prefixRules.js","webpack:///../node_modules/@uifabric/merge-styles/lib/transforms/provideUnits.js","webpack:///../node_modules/@uifabric/merge-styles/lib/transforms/rtlifyRules.js","webpack:///../node_modules/@uifabric/merge-styles/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@uifabric/react-hooks/lib/useConst.js","webpack:///../node_modules/@uifabric/react-hooks/lib/useMergedRefs.js","webpack:///../node_modules/@uifabric/react-hooks/lib/useOnEvent.js","webpack:///../node_modules/@uifabric/react-hooks/lib/usePrevious.js","webpack:///../node_modules/@uifabric/react-hooks/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@uifabric/set-version/lib/setVersion.js","webpack:///../node_modules/@uifabric/set-version/lib/index.js","webpack:///../node_modules/@uifabric/styling/lib/classNames/AnimationClassNames.js","webpack:///../node_modules/@uifabric/styling/lib/classNames/ColorClassNames.js","webpack:///../node_modules/@uifabric/styling/lib/classNames/FontClassNames.js","webpack:///../node_modules/@uifabric/styling/lib/version.js","webpack:///../node_modules/@uifabric/styling/lib/index.js","webpack:///../node_modules/@uifabric/styling/lib/styles/CommonStyles.js","webpack:///../node_modules/@uifabric/styling/lib/styles/GeneralStyles.js","webpack:///../node_modules/@uifabric/styling/lib/styles/PulsingBeaconAnimationStyles.js","webpack:///../node_modules/@uifabric/styling/lib/styles/getFadedOverflowStyle.js","webpack:///../node_modules/@uifabric/styling/lib/styles/getFocusStyle.js","webpack:///../node_modules/@uifabric/styling/lib/styles/getGlobalClassNames.js","webpack:///../node_modules/@uifabric/styling/lib/styles/getPlaceholderStyles.js","webpack:///../node_modules/@uifabric/styling/lib/styles/hiddenContentStyle.js","webpack:///../node_modules/@uifabric/styling/lib/styles/scheme.js","webpack:///../node_modules/@uifabric/styling/lib/styles/theme.js","webpack:///../node_modules/@uifabric/styling/lib/styles/zIndexes.js","webpack:///../node_modules/@uifabric/styling/lib/utilities/buildClassMap.js","webpack:///../node_modules/@uifabric/styling/lib/utilities/getIconClassName.js","webpack:///../node_modules/@uifabric/styling/lib/utilities/icons.js","webpack:///../node_modules/@uifabric/styling/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/@uifabric/utilities/lib/Async.js","webpack:///../node_modules/@uifabric/utilities/lib/AutoScroll.js","webpack:///../node_modules/@uifabric/utilities/lib/BaseComponent.js","webpack:///../node_modules/@uifabric/utilities/lib/DelayedRender.js","webpack:///../node_modules/@uifabric/utilities/lib/EventGroup.js","webpack:///../node_modules/@uifabric/utilities/lib/FabricPerformance.js","webpack:///../node_modules/@uifabric/utilities/lib/GlobalSettings.js","webpack:///../node_modules/@uifabric/utilities/lib/KeyCodes.js","webpack:///../node_modules/@uifabric/utilities/lib/Rectangle.js","webpack:///../node_modules/@uifabric/utilities/lib/appendFunction.js","webpack:///../node_modules/@uifabric/utilities/lib/aria.js","webpack:///../node_modules/@uifabric/utilities/lib/array.js","webpack:///../node_modules/@uifabric/utilities/lib/asAsync.js","webpack:///../node_modules/@uifabric/utilities/lib/assertNever.js","webpack:///../node_modules/@uifabric/utilities/lib/classNamesFunction.js","webpack:///../node_modules/@uifabric/utilities/lib/componentAs/composeComponentAs.js","webpack:///../node_modules/@uifabric/utilities/lib/controlled.js","webpack:///../node_modules/@uifabric/utilities/lib/createMergedRef.js","webpack:///../node_modules/@uifabric/utilities/lib/css.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/Customizations.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/Customizer.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/CustomizerContext.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/customizable.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/mergeCustomizations.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/mergeSettings.js","webpack:///../node_modules/@uifabric/utilities/lib/customizations/useCustomizationSettings.js","webpack:///../node_modules/@uifabric/utilities/lib/dom/getDocument.js","webpack:///../node_modules/@uifabric/utilities/lib/dom/getRect.js","webpack:///../node_modules/@uifabric/utilities/lib/dom/getWindow.js","webpack:///../node_modules/@uifabric/utilities/lib/dom/on.js","webpack:///../node_modules/@uifabric/utilities/lib/dom/raiseClick.js","webpack:///../node_modules/@uifabric/utilities/lib/dom/setSSR.js","webpack:///../node_modules/@uifabric/utilities/lib/extendComponent.js","webpack:///../node_modules/@uifabric/utilities/lib/focus.js","webpack:///../node_modules/@uifabric/utilities/lib/getId.js","webpack:///../node_modules/@uifabric/utilities/lib/getNativeElementProps.js","webpack:///../node_modules/@uifabric/utilities/lib/getPropsWithDefaults.js","webpack:///../node_modules/@uifabric/utilities/lib/hoist.js","webpack:///../node_modules/@uifabric/utilities/lib/hoistStatics.js","webpack:///../node_modules/@uifabric/utilities/lib/ie11Detector.js","webpack:///../node_modules/@uifabric/utilities/lib/version.js","webpack:///../node_modules/@uifabric/utilities/lib/initializeComponentRef.js","webpack:///../node_modules/@uifabric/utilities/lib/initializeFocusRects.js","webpack:///../node_modules/@uifabric/utilities/lib/initials.js","webpack:///../node_modules/@uifabric/utilities/lib/keyboard.js","webpack:///../node_modules/@uifabric/utilities/lib/language.js","webpack:///../node_modules/@uifabric/utilities/lib/localStorage.js","webpack:///../node_modules/@uifabric/utilities/lib/math.js","webpack:///../node_modules/@uifabric/utilities/lib/memoize.js","webpack:///../node_modules/@uifabric/utilities/lib/merge.js","webpack:///../node_modules/@uifabric/utilities/lib/mobileDetector.js","webpack:///../node_modules/@uifabric/utilities/lib/modalize.js","webpack:///../node_modules/@uifabric/utilities/lib/object.js","webpack:///../node_modules/@uifabric/utilities/lib/osDetector.js","webpack:///../node_modules/@uifabric/utilities/lib/overflow.js","webpack:///../node_modules/@uifabric/utilities/lib/properties.js","webpack:///../node_modules/@uifabric/utilities/lib/renderFunction/composeRenderFunction.js","webpack:///../node_modules/@uifabric/utilities/lib/resources.js","webpack:///../node_modules/@uifabric/utilities/lib/rtl.js","webpack:///../node_modules/@uifabric/utilities/lib/safeRequestAnimationFrame.js","webpack:///../node_modules/@uifabric/utilities/lib/safeSetTimeout.js","webpack:///../node_modules/@uifabric/utilities/lib/scroll.js","webpack:///../node_modules/@uifabric/utilities/lib/selection/Selection.js","webpack:///../node_modules/@uifabric/utilities/lib/selection/Selection.types.js","webpack:///../node_modules/@uifabric/utilities/lib/sessionStorage.js","webpack:///../node_modules/@uifabric/utilities/lib/setFocusVisibility.js","webpack:///../node_modules/@uifabric/utilities/lib/string.js","webpack:///../node_modules/@uifabric/utilities/lib/styled.js","webpack:///../node_modules/@uifabric/utilities/lib/useFocusRects.js","webpack:///../node_modules/@uifabric/utilities/lib/warn/warn.js","webpack:///../node_modules/@uifabric/utilities/lib/warn/warnConditionallyRequiredProps.js","webpack:///../node_modules/@uifabric/utilities/lib/warn/warnControlledUsage.js","webpack:///../node_modules/@uifabric/utilities/lib/warn/warnDeprecations.js","webpack:///../node_modules/@uifabric/utilities/lib/warn/warnMutuallyExclusive.js","webpack:///../node_modules/@uifabric/utilities/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/base64-js/index.js","webpack:///../node_modules/buffer/index.js","webpack:///../node_modules/classnames/index.js","webpack:///../node_modules/ieee754/index.js","webpack:///../node_modules/js-cookie/src/js.cookie.js","webpack:///../node_modules/lodash/lodash.js","webpack:///../node_modules/moment/locale/af.js","webpack:///../node_modules/moment/locale/ar-dz.js","webpack:///../node_modules/moment/locale/ar-kw.js","webpack:///../node_modules/moment/locale/ar-ly.js","webpack:///../node_modules/moment/locale/ar-ma.js","webpack:///../node_modules/moment/locale/ar-sa.js","webpack:///../node_modules/moment/locale/ar-tn.js","webpack:///../node_modules/moment/locale/ar.js","webpack:///../node_modules/moment/locale/az.js","webpack:///../node_modules/moment/locale/be.js","webpack:///../node_modules/moment/locale/bg.js","webpack:///../node_modules/moment/locale/bm.js","webpack:///../node_modules/moment/locale/bn.js","webpack:///../node_modules/moment/locale/bo.js","webpack:///../node_modules/moment/locale/br.js","webpack:///../node_modules/moment/locale/bs.js","webpack:///../node_modules/moment/locale/ca.js","webpack:///../node_modules/moment/locale/cs.js","webpack:///../node_modules/moment/locale/cv.js","webpack:///../node_modules/moment/locale/cy.js","webpack:///../node_modules/moment/locale/da.js","webpack:///../node_modules/moment/locale/de-at.js","webpack:///../node_modules/moment/locale/de-ch.js","webpack:///../node_modules/moment/locale/de.js","webpack:///../node_modules/moment/locale/dv.js","webpack:///../node_modules/moment/locale/el.js","webpack:///../node_modules/moment/locale/en-SG.js","webpack:///../node_modules/moment/locale/en-au.js","webpack:///../node_modules/moment/locale/en-ca.js","webpack:///../node_modules/moment/locale/en-gb.js","webpack:///../node_modules/moment/locale/en-ie.js","webpack:///../node_modules/moment/locale/en-il.js","webpack:///../node_modules/moment/locale/en-nz.js","webpack:///../node_modules/moment/locale/eo.js","webpack:///../node_modules/moment/locale/es-do.js","webpack:///../node_modules/moment/locale/es-us.js","webpack:///../node_modules/moment/locale/es.js","webpack:///../node_modules/moment/locale/et.js","webpack:///../node_modules/moment/locale/eu.js","webpack:///../node_modules/moment/locale/fa.js","webpack:///../node_modules/moment/locale/fi.js","webpack:///../node_modules/moment/locale/fo.js","webpack:///../node_modules/moment/locale/fr-ca.js","webpack:///../node_modules/moment/locale/fr-ch.js","webpack:///../node_modules/moment/locale/fr.js","webpack:///../node_modules/moment/locale/fy.js","webpack:///../node_modules/moment/locale/ga.js","webpack:///../node_modules/moment/locale/gd.js","webpack:///../node_modules/moment/locale/gl.js","webpack:///../node_modules/moment/locale/gom-latn.js","webpack:///../node_modules/moment/locale/gu.js","webpack:///../node_modules/moment/locale/he.js","webpack:///../node_modules/moment/locale/hi.js","webpack:///../node_modules/moment/locale/hr.js","webpack:///../node_modules/moment/locale/hu.js","webpack:///../node_modules/moment/locale/hy-am.js","webpack:///../node_modules/moment/locale/id.js","webpack:///../node_modules/moment/locale/is.js","webpack:///../node_modules/moment/locale/it-ch.js","webpack:///../node_modules/moment/locale/it.js","webpack:///../node_modules/moment/locale/ja.js","webpack:///../node_modules/moment/locale/jv.js","webpack:///../node_modules/moment/locale/ka.js","webpack:///../node_modules/moment/locale/kk.js","webpack:///../node_modules/moment/locale/km.js","webpack:///../node_modules/moment/locale/kn.js","webpack:///../node_modules/moment/locale/ko.js","webpack:///../node_modules/moment/locale/ku.js","webpack:///../node_modules/moment/locale/ky.js","webpack:///../node_modules/moment/locale/lb.js","webpack:///../node_modules/moment/locale/lo.js","webpack:///../node_modules/moment/locale/lt.js","webpack:///../node_modules/moment/locale/lv.js","webpack:///../node_modules/moment/locale/me.js","webpack:///../node_modules/moment/locale/mi.js","webpack:///../node_modules/moment/locale/mk.js","webpack:///../node_modules/moment/locale/ml.js","webpack:///../node_modules/moment/locale/mn.js","webpack:///../node_modules/moment/locale/mr.js","webpack:///../node_modules/moment/locale/ms-my.js","webpack:///../node_modules/moment/locale/ms.js","webpack:///../node_modules/moment/locale/mt.js","webpack:///../node_modules/moment/locale/my.js","webpack:///../node_modules/moment/locale/nb.js","webpack:///../node_modules/moment/locale/ne.js","webpack:///../node_modules/moment/locale/nl-be.js","webpack:///../node_modules/moment/locale/nl.js","webpack:///../node_modules/moment/locale/nn.js","webpack:///../node_modules/moment/locale/pa-in.js","webpack:///../node_modules/moment/locale/pl.js","webpack:///../node_modules/moment/locale/pt-br.js","webpack:///../node_modules/moment/locale/pt.js","webpack:///../node_modules/moment/locale/ro.js","webpack:///../node_modules/moment/locale/ru.js","webpack:///../node_modules/moment/locale/sd.js","webpack:///../node_modules/moment/locale/se.js","webpack:///../node_modules/moment/locale/si.js","webpack:///../node_modules/moment/locale/sk.js","webpack:///../node_modules/moment/locale/sl.js","webpack:///../node_modules/moment/locale/sq.js","webpack:///../node_modules/moment/locale/sr-cyrl.js","webpack:///../node_modules/moment/locale/sr.js","webpack:///../node_modules/moment/locale/ss.js","webpack:///../node_modules/moment/locale/sv.js","webpack:///../node_modules/moment/locale/sw.js","webpack:///../node_modules/moment/locale/ta.js","webpack:///../node_modules/moment/locale/te.js","webpack:///../node_modules/moment/locale/tet.js","webpack:///../node_modules/moment/locale/tg.js","webpack:///../node_modules/moment/locale/th.js","webpack:///../node_modules/moment/locale/tl-ph.js","webpack:///../node_modules/moment/locale/tlh.js","webpack:///../node_modules/moment/locale/tr.js","webpack:///../node_modules/moment/locale/tzl.js","webpack:///../node_modules/moment/locale/tzm-latn.js","webpack:///../node_modules/moment/locale/tzm.js","webpack:///../node_modules/moment/locale/ug-cn.js","webpack:///../node_modules/moment/locale/uk.js","webpack:///../node_modules/moment/locale/ur.js","webpack:///../node_modules/moment/locale/uz-latn.js","webpack:///../node_modules/moment/locale/uz.js","webpack:///../node_modules/moment/locale/vi.js","webpack:///../node_modules/moment/locale/x-pseudo.js","webpack:///../node_modules/moment/locale/yo.js","webpack:///../node_modules/moment/locale/zh-cn.js","webpack:///../node_modules/moment/locale/zh-hk.js","webpack:///../node_modules/moment/locale/zh-tw.js","webpack:///../node_modules/moment/moment.js","webpack:///../node_modules/object-assign/index.js","webpack:///../node_modules/office-ui-fabric-react/lib/common/DirectionalHint.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ActivityItem/ActivityItem.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ActivityItem/ActivityItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ActivityItem/ActivityItem.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Announced/Announced.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Announced/Announced.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Announced/Announced.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Autofill/Autofill.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Breadcrumb/Breadcrumb.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Breadcrumb/Breadcrumb.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Breadcrumb/Breadcrumb.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/ActionButton/ActionButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/ActionButton/ActionButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/BaseButton.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/BaseButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/BaseButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/Button.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/Button.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/ButtonThemes.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/CommandBarButton/CommandBarButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/CommandBarButton/CommandBarButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/CommandButton/CommandButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/CompoundButton/CompoundButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/CompoundButton/CompoundButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/DefaultButton/DefaultButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/DefaultButton/DefaultButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/IconButton/IconButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/IconButton/IconButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/MessageBarButton/MessageBarButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/MessageBarButton/MessageBarButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/PrimaryButton/PrimaryButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/SplitButton/SplitButton.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Button/SplitButton/SplitButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Calendar/Calendar.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Calendar/CalendarDay.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Calendar/CalendarYear.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Calendar/CalendarMonth.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Calendar/Calendar.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Callout/Callout.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Callout/CalloutContent.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Callout/CalloutContent.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Callout/CalloutContent.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Callout/FocusTrapCallout.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Check/Check.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Check/Check.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Check/Check.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Checkbox/Checkbox.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Checkbox/Checkbox.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Checkbox/Checkbox.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroup.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroup.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/Beak/Beak.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/Beak/Beak.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/Coachmark.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/Coachmark.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/Coachmark.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/PositioningContainer/PositioningContainer.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Coachmark/PositioningContainer/PositioningContainer.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorSlider/ColorSlider.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorSlider/ColorSlider.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorSlider/ColorSlider.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorPicker.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorPicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ColorPicker/ColorPicker.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ComboBox/ComboBox.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ComboBox/ComboBox.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ComboBox/ComboBox.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ComboBox/VirtualizedComboBox.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/CommandBar/CommandBar.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/CommandBar/CommandBar.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/CommandBar/CommandBar.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItem.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DatePicker/DatePicker.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DatePicker/DatePicker.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DatePicker/DatePicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsColumn.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsColumn.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsColumn.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsHeader.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsHeader.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsHeader.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsHeader.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsList.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsList.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsList.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsList.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsRow.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsRow.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsRow.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsRowCheck.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsRowCheck.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/DetailsRowFields.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/ShimmeredDetailsList.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/ShimmeredDetailsList.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DetailsList/ShimmeredDetailsList.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/Dialog.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/Dialog.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/Dialog.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogContent.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogContent.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogContent.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogContent.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogFooter.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogFooter.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dialog/DialogFooter.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCard.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCard.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCard.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCard.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardActions.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardActions.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardActions.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardActivity.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardActivity.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardActivity.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardDetails.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardDetails.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardDetails.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardImage.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardImage.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardImage.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardLocation.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardLocation.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardLocation.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardLogo.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardLogo.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardLogo.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardPreview.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardPreview.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardPreview.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardStatus.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardStatus.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardStatus.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardTitle.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardTitle.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/DocumentCard/DocumentCardTitle.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dropdown/Dropdown.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dropdown/Dropdown.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Dropdown/Dropdown.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ExtendedPicker/BaseExtendedPicker.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ExtendedPicker/BaseExtendedPicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ExtendedPicker/PeoplePicker/ExtendedPeoplePicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Fabric/Fabric.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Fabric/Fabric.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Fabric/Fabric.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Facepile/FacepileButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Facepile/FacepileButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Facepile/Facepile.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Facepile/Facepile.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Facepile/Facepile.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Facepile/Facepile.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/BaseFloatingPicker.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/BaseFloatingPicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/PeoplePicker/FloatingPeoplePicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/PeoplePicker/PeoplePickerItems/SuggestionItemDefault.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/PeoplePicker/PeoplePicker.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/Suggestions/SuggestionsControl.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/Suggestions/SuggestionsControl.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/Suggestions/SuggestionsCore.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/Suggestions/SuggestionsCore.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FloatingPicker/Suggestions/SuggestionsStore.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/FocusTrapZone/FocusTrapZone.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupFooter.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupFooter.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupFooter.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupHeader.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupHeader.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupHeader.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupShowAll.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupShowAll.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupShowAll.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupSpacer.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedList.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedList.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedList.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedList.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedListSection.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedListV2.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/GroupedList/GroupedListV2.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/CardCallout/CardCallout.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/ExpandingCard.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/ExpandingCard.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/ExpandingCard.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/ExpandingCard.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/HoverCard.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/HoverCard.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/HoverCard.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/HoverCard.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/PlainCard/PlainCard.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/PlainCard/PlainCard.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/HoverCard/PlainCard/PlainCard.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Icon/FontIcon.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Icon/ImageIcon.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Image/Image.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Image/Image.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Image/Image.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Image/Image.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipData/KeytipData.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipData/useKeytipData.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipData/useKeytipRef.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipLayer/KeytipTree.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipLayer/KeytipLayer.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipLayer/KeytipLayer.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/KeytipLayer/KeytipLayer.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Keytip/KeytipContent.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Keytip/Keytip.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Keytip/KeytipContent.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Keytip/Keytip.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Label/Label.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Label/Label.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Label/Label.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.notification.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Layer/LayerHost.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Link/Link.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Link/Link.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Link/Link.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/List/utils/scroll.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/List/List.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/List/utils/canUseDom.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/List/List.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MarqueeSelection/MarqueeSelection.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MarqueeSelection/MarqueeSelection.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MarqueeSelection/MarqueeSelection.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/DraggableZone/DraggableZone.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/DraggableZone/DraggableZone.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Modal/Modal.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Modal/Modal.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Modal/Modal.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Nav/Nav.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Nav/Nav.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Nav/Nav.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/OverflowSet/OverflowSet.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/OverflowSet/OverflowSet.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/OverflowSet/OverflowSet.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaPresence/PersonaPresence.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaCoin/PersonaCoin.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaConsts.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaInitialsColor.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Pivot/Pivot.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Pivot/Pivot.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Pivot/Pivot.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Pivot/Pivot.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Pivot/PivotItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Popup/Popup.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ProgressIndicator/ProgressIndicator.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ProgressIndicator/ProgressIndicator.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ProgressIndicator/ProgressIndicator.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Rating/Rating.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Rating/Rating.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Rating/Rating.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Rating/Rating.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ResizeGroup/ResizeGroup.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ResizeGroup/ResizeGroup.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ResizeGroup/ResizeGroup.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ScrollablePane/ScrollablePane.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ScrollablePane/ScrollablePane.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ScrollablePane/ScrollablePane.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ScrollablePane/ScrollablePane.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SearchBox/SearchBox.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SearchBox/SearchBox.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SearchBox/SearchBox.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/BaseSelectedItemsList.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/SelectedPeopleList/Items/SelectedItemWithContextMenu.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/SelectedPeopleList/Items/EditingItem.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/SelectedPeopleList/Items/EditingItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SelectedItemsList/SelectedPeopleList/SelectedPeopleList.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Separator/Separator.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Separator/Separator.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Separator/Separator.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/Shimmer.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/Shimmer.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/Shimmer.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/Shimmer.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerGap/ShimmerGap.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Shimmer/ShimmerLine/ShimmerLine.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Slider/Slider.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Slider/Slider.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Slider/Slider.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SpinButton/SpinButton.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SpinButton/SpinButton.classNames.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SpinButton/SpinButton.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Spinner/Spinner.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Spinner/Spinner.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Spinner/Spinner.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Spinner/Spinner.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Stack/Stack.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Stack/Stack.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Stack/StackItem/StackItem.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Stack/StackItem/StackItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Stack/StackUtils.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Sticky/Sticky.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Sticky/Sticky.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SwatchColorPicker/ColorPickerGridCell.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SwatchColorPicker/ColorPickerGridCell.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SwatchColorPicker/ColorPickerGridCell.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SwatchColorPicker/SwatchColorPicker.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SwatchColorPicker/SwatchColorPicker.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/SwatchColorPicker/SwatchColorPicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TeachingBubble/TeachingBubble.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TeachingBubble/TeachingBubble.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TeachingBubble/TeachingBubble.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TeachingBubble/TeachingBubbleContent.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TeachingBubble/TeachingBubbleContent.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TextField/MaskedTextField/inputMask.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TextField/MaskedTextField/MaskedTextField.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TextField/TextField.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TextField/TextField.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/TextField/TextField.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Text/Text.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Text/Text.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Text/Text.view.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ThemeGenerator/ThemeGenerator.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/ThemeGenerator/ThemeRulesStandard.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Toggle/Toggle.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Toggle/Toggle.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Toggle/Toggle.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.scss.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/SuggestionsController.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/SuggestionsItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/SuggestionsItem.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItem.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItem.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItemSuggestion.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItemSuggestion.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagPicker.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/ButtonGrid/ButtonGrid.base.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/ButtonGrid/ButtonGrid.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/ButtonGrid/ButtonGrid.styles.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/ButtonGrid/ButtonGridCell.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/_rgbaOrHexString.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/clamp.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/consts.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/correctHSV.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/correctHex.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/correctRGB.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/cssColor.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/getColorFromHSV.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/getColorFromRGBA.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/getColorFromString.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/getFullColorString.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/hsl2hsv.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/hsl2rgb.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/hsv2hex.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/hsv2hsl.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/hsv2rgb.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/rgb2hex.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/rgb2hsv.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/shades.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/updateA.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/updateH.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/updateRGB.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/updateSV.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/color/updateT.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/contextualMenu/contextualMenuUtility.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/decorators/BaseDecorator.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/decorators/withResponsiveMode.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/decorators/withViewport.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/dragdrop/DragDropHelper.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/groupedList/GroupedListUtility.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/hooks/useResponsiveMode.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/keytips/IKeytipTransitionKey.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipConfig.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipConstants.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipManager.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipUtils.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/positioning/positioning.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/positioning/positioning.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/selectableOption/SelectableOption.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/selectableOption/SelectableOption.types.js","webpack:///../node_modules/office-ui-fabric-react/lib/utilities/selection/SelectionZone.js","webpack:///../node_modules/office-ui-fabric-react/lib/version.js","webpack:///../node_modules/office-ui-fabric-react/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///../node_modules/react-dom/index.js","webpack:///../node_modules/react-hot-loader/index.js","webpack:///../node_modules/react-hot-loader/lib/AppContainer.js","webpack:///../node_modules/react-hot-loader/lib/AppContainer.prod.js","webpack:///../node_modules/react-hot-loader/lib/index.js","webpack:///../node_modules/react-hot-loader/lib/index.prod.js","webpack:///../node_modules/react-hot-loader/lib/patch.js","webpack:///../node_modules/react-hot-loader/node_modules/react/cjs/react.production.min.js","webpack:///../node_modules/react-hot-loader/node_modules/react/index.js","webpack:///../node_modules/react-hot-loader/patch.js","webpack:///../node_modules/react/cjs/react.production.min.js","webpack:///../node_modules/react/index.js","webpack:///../node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///../node_modules/scheduler/index.js","webpack:///../node_modules/@azure/msal-browser/lib/msal-browser.cjs","webpack:///../node_modules/axios/dist/browser/axios.cjs","webpack:///../node_modules/core-js/full/index.js","webpack:///../node_modules/core-js/index.js","webpack:///../node_modules/core-js/internals/a-callable.js","webpack:///../node_modules/core-js/internals/a-constructor.js","webpack:///../node_modules/core-js/internals/a-data-view.js","webpack:///../node_modules/core-js/internals/a-map.js","webpack:///../node_modules/core-js/internals/a-possible-prototype.js","webpack:///../node_modules/core-js/internals/a-set.js","webpack:///../node_modules/core-js/internals/a-string.js","webpack:///../node_modules/core-js/internals/a-weak-map.js","webpack:///../node_modules/core-js/internals/a-weak-set.js","webpack:///../node_modules/core-js/internals/add-disposable-resource.js","webpack:///../node_modules/core-js/internals/add-to-unscopables.js","webpack:///../node_modules/core-js/internals/advance-string-index.js","webpack:///../node_modules/core-js/internals/an-instance.js","webpack:///../node_modules/core-js/internals/an-object-or-undefined.js","webpack:///../node_modules/core-js/internals/an-object.js","webpack:///../node_modules/core-js/internals/an-uint8-array.js","webpack:///../node_modules/core-js/internals/array-buffer-basic-detection.js","webpack:///../node_modules/core-js/internals/array-buffer-byte-length.js","webpack:///../node_modules/core-js/internals/array-buffer-is-detached.js","webpack:///../node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///../node_modules/core-js/internals/array-buffer-not-detached.js","webpack:///../node_modules/core-js/internals/array-buffer-transfer.js","webpack:///../node_modules/core-js/internals/array-buffer-view-core.js","webpack:///../node_modules/core-js/internals/array-buffer.js","webpack:///../node_modules/core-js/internals/array-copy-within.js","webpack:///../node_modules/core-js/internals/array-fill.js","webpack:///../node_modules/core-js/internals/array-for-each.js","webpack:///../node_modules/core-js/internals/array-from-async.js","webpack:///../node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///../node_modules/core-js/internals/array-from.js","webpack:///../node_modules/core-js/internals/array-group-to-map.js","webpack:///../node_modules/core-js/internals/array-group.js","webpack:///../node_modules/core-js/internals/array-includes.js","webpack:///../node_modules/core-js/internals/array-iteration-from-last.js","webpack:///../node_modules/core-js/internals/array-iteration.js","webpack:///../node_modules/core-js/internals/array-last-index-of.js","webpack:///../node_modules/core-js/internals/array-method-has-species-support.js","webpack:///../node_modules/core-js/internals/array-method-is-strict.js","webpack:///../node_modules/core-js/internals/array-reduce.js","webpack:///../node_modules/core-js/internals/array-set-length.js","webpack:///../node_modules/core-js/internals/array-slice.js","webpack:///../node_modules/core-js/internals/array-sort.js","webpack:///../node_modules/core-js/internals/array-species-constructor.js","webpack:///../node_modules/core-js/internals/array-species-create.js","webpack:///../node_modules/core-js/internals/array-to-reversed.js","webpack:///../node_modules/core-js/internals/array-unique-by.js","webpack:///../node_modules/core-js/internals/array-with.js","webpack:///../node_modules/core-js/internals/async-from-sync-iterator.js","webpack:///../node_modules/core-js/internals/async-iterator-close.js","webpack:///../node_modules/core-js/internals/async-iterator-create-proxy.js","webpack:///../node_modules/core-js/internals/async-iterator-indexed.js","webpack:///../node_modules/core-js/internals/async-iterator-iteration.js","webpack:///../node_modules/core-js/internals/async-iterator-map.js","webpack:///../node_modules/core-js/internals/async-iterator-prototype.js","webpack:///../node_modules/core-js/internals/async-iterator-wrap.js","webpack:///../node_modules/core-js/internals/base64-map.js","webpack:///../node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///../node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///../node_modules/core-js/internals/classof-raw.js","webpack:///../node_modules/core-js/internals/classof.js","webpack:///../node_modules/core-js/internals/collection-from.js","webpack:///../node_modules/core-js/internals/collection-of.js","webpack:///../node_modules/core-js/internals/collection-strong.js","webpack:///../node_modules/core-js/internals/collection-weak.js","webpack:///../node_modules/core-js/internals/collection.js","webpack:///../node_modules/core-js/internals/composite-key.js","webpack:///../node_modules/core-js/internals/copy-constructor-properties.js","webpack:///../node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///../node_modules/core-js/internals/correct-prototype-getter.js","webpack:///../node_modules/core-js/internals/create-html.js","webpack:///../node_modules/core-js/internals/create-iter-result-object.js","webpack:///../node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///../node_modules/core-js/internals/create-property-descriptor.js","webpack:///../node_modules/core-js/internals/create-property.js","webpack:///../node_modules/core-js/internals/date-to-iso-string.js","webpack:///../node_modules/core-js/internals/date-to-primitive.js","webpack:///../node_modules/core-js/internals/define-built-in-accessor.js","webpack:///../node_modules/core-js/internals/define-built-in.js","webpack:///../node_modules/core-js/internals/define-built-ins.js","webpack:///../node_modules/core-js/internals/define-global-property.js","webpack:///../node_modules/core-js/internals/delete-property-or-throw.js","webpack:///../node_modules/core-js/internals/descriptors.js","webpack:///../node_modules/core-js/internals/detach-transferable.js","webpack:///../node_modules/core-js/internals/document-create-element.js","webpack:///../node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///../node_modules/core-js/internals/dom-exception-constants.js","webpack:///../node_modules/core-js/internals/dom-iterables.js","webpack:///../node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///../node_modules/core-js/internals/enum-bug-keys.js","webpack:///../node_modules/core-js/internals/environment-ff-version.js","webpack:///../node_modules/core-js/internals/environment-is-ie-or-edge.js","webpack:///../node_modules/core-js/internals/environment-is-ios-pebble.js","webpack:///../node_modules/core-js/internals/environment-is-ios.js","webpack:///../node_modules/core-js/internals/environment-is-node.js","webpack:///../node_modules/core-js/internals/environment-is-webos-webkit.js","webpack:///../node_modules/core-js/internals/environment-user-agent.js","webpack:///../node_modules/core-js/internals/environment-v8-version.js","webpack:///../node_modules/core-js/internals/environment-webkit-version.js","webpack:///../node_modules/core-js/internals/environment.js","webpack:///../node_modules/core-js/internals/error-stack-clear.js","webpack:///../node_modules/core-js/internals/error-stack-install.js","webpack:///../node_modules/core-js/internals/error-stack-installable.js","webpack:///../node_modules/core-js/internals/error-to-string.js","webpack:///../node_modules/core-js/internals/export.js","webpack:///../node_modules/core-js/internals/fails.js","webpack:///../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///../node_modules/core-js/internals/flatten-into-array.js","webpack:///../node_modules/core-js/internals/freezing.js","webpack:///../node_modules/core-js/internals/function-apply.js","webpack:///../node_modules/core-js/internals/function-bind-context.js","webpack:///../node_modules/core-js/internals/function-bind-native.js","webpack:///../node_modules/core-js/internals/function-bind.js","webpack:///../node_modules/core-js/internals/function-call.js","webpack:///../node_modules/core-js/internals/function-demethodize.js","webpack:///../node_modules/core-js/internals/function-name.js","webpack:///../node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///../node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///../node_modules/core-js/internals/function-uncurry-this.js","webpack:///../node_modules/core-js/internals/get-alphabet-option.js","webpack:///../node_modules/core-js/internals/get-async-iterator-flattenable.js","webpack:///../node_modules/core-js/internals/get-async-iterator.js","webpack:///../node_modules/core-js/internals/get-built-in-node-module.js","webpack:///../node_modules/core-js/internals/get-built-in-prototype-method.js","webpack:///../node_modules/core-js/internals/get-built-in.js","webpack:///../node_modules/core-js/internals/get-iterator-direct.js","webpack:///../node_modules/core-js/internals/get-iterator-flattenable.js","webpack:///../node_modules/core-js/internals/get-iterator-method.js","webpack:///../node_modules/core-js/internals/get-iterator.js","webpack:///../node_modules/core-js/internals/get-json-replacer-function.js","webpack:///../node_modules/core-js/internals/get-method.js","webpack:///../node_modules/core-js/internals/get-set-record.js","webpack:///../node_modules/core-js/internals/get-substitution.js","webpack:///../node_modules/core-js/internals/global-this.js","webpack:///../node_modules/core-js/internals/has-own-property.js","webpack:///../node_modules/core-js/internals/hidden-keys.js","webpack:///../node_modules/core-js/internals/host-report-errors.js","webpack:///../node_modules/core-js/internals/html.js","webpack:///../node_modules/core-js/internals/ie8-dom-define.js","webpack:///../node_modules/core-js/internals/ieee754.js","webpack:///../node_modules/core-js/internals/indexed-object.js","webpack:///../node_modules/core-js/internals/inherit-if-required.js","webpack:///../node_modules/core-js/internals/inspect-source.js","webpack:///../node_modules/core-js/internals/install-error-cause.js","webpack:///../node_modules/core-js/internals/internal-metadata.js","webpack:///../node_modules/core-js/internals/internal-state.js","webpack:///../node_modules/core-js/internals/is-array-iterator-method.js","webpack:///../node_modules/core-js/internals/is-array.js","webpack:///../node_modules/core-js/internals/is-big-int-array.js","webpack:///../node_modules/core-js/internals/is-callable.js","webpack:///../node_modules/core-js/internals/is-constructor.js","webpack:///../node_modules/core-js/internals/is-data-descriptor.js","webpack:///../node_modules/core-js/internals/is-forced.js","webpack:///../node_modules/core-js/internals/is-integral-number.js","webpack:///../node_modules/core-js/internals/is-iterable.js","webpack:///../node_modules/core-js/internals/is-null-or-undefined.js","webpack:///../node_modules/core-js/internals/is-object.js","webpack:///../node_modules/core-js/internals/is-possible-prototype.js","webpack:///../node_modules/core-js/internals/is-pure.js","webpack:///../node_modules/core-js/internals/is-raw-json.js","webpack:///../node_modules/core-js/internals/is-regexp.js","webpack:///../node_modules/core-js/internals/is-symbol.js","webpack:///../node_modules/core-js/internals/iterate-simple.js","webpack:///../node_modules/core-js/internals/iterate.js","webpack:///../node_modules/core-js/internals/iterator-close.js","webpack:///../node_modules/core-js/internals/iterator-create-constructor.js","webpack:///../node_modules/core-js/internals/iterator-create-proxy.js","webpack:///../node_modules/core-js/internals/iterator-define.js","webpack:///../node_modules/core-js/internals/iterator-indexed.js","webpack:///../node_modules/core-js/internals/iterator-map.js","webpack:///../node_modules/core-js/internals/iterators-core.js","webpack:///../node_modules/core-js/internals/iterators.js","webpack:///../node_modules/core-js/internals/length-of-array-like.js","webpack:///../node_modules/core-js/internals/make-built-in.js","webpack:///../node_modules/core-js/internals/map-helpers.js","webpack:///../node_modules/core-js/internals/map-iterate.js","webpack:///../node_modules/core-js/internals/map-upsert.js","webpack:///../node_modules/core-js/internals/math-expm1.js","webpack:///../node_modules/core-js/internals/math-float-round.js","webpack:///../node_modules/core-js/internals/math-fround.js","webpack:///../node_modules/core-js/internals/math-log10.js","webpack:///../node_modules/core-js/internals/math-log1p.js","webpack:///../node_modules/core-js/internals/math-log2.js","webpack:///../node_modules/core-js/internals/math-round-ties-to-even.js","webpack:///../node_modules/core-js/internals/math-scale.js","webpack:///../node_modules/core-js/internals/math-sign.js","webpack:///../node_modules/core-js/internals/math-trunc.js","webpack:///../node_modules/core-js/internals/microtask.js","webpack:///../node_modules/core-js/internals/native-raw-json.js","webpack:///../node_modules/core-js/internals/new-promise-capability.js","webpack:///../node_modules/core-js/internals/normalize-string-argument.js","webpack:///../node_modules/core-js/internals/not-a-nan.js","webpack:///../node_modules/core-js/internals/not-a-regexp.js","webpack:///../node_modules/core-js/internals/number-is-finite.js","webpack:///../node_modules/core-js/internals/number-parse-float.js","webpack:///../node_modules/core-js/internals/number-parse-int.js","webpack:///../node_modules/core-js/internals/numeric-range-iterator.js","webpack:///../node_modules/core-js/internals/object-assign.js","webpack:///../node_modules/core-js/internals/object-create.js","webpack:///../node_modules/core-js/internals/object-define-properties.js","webpack:///../node_modules/core-js/internals/object-define-property.js","webpack:///../node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///../node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///../node_modules/core-js/internals/object-get-own-property-names.js","webpack:///../node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///../node_modules/core-js/internals/object-get-prototype-of.js","webpack:///../node_modules/core-js/internals/object-is-extensible.js","webpack:///../node_modules/core-js/internals/object-is-prototype-of.js","webpack:///../node_modules/core-js/internals/object-iterator.js","webpack:///../node_modules/core-js/internals/object-keys-internal.js","webpack:///../node_modules/core-js/internals/object-keys.js","webpack:///../node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///../node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack:///../node_modules/core-js/internals/object-set-prototype-of.js","webpack:///../node_modules/core-js/internals/object-to-array.js","webpack:///../node_modules/core-js/internals/object-to-string.js","webpack:///../node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///../node_modules/core-js/internals/own-keys.js","webpack:///../node_modules/core-js/internals/parse-json-string.js","webpack:///../node_modules/core-js/internals/path.js","webpack:///../node_modules/core-js/internals/perform.js","webpack:///../node_modules/core-js/internals/promise-constructor-detection.js","webpack:///../node_modules/core-js/internals/promise-native-constructor.js","webpack:///../node_modules/core-js/internals/promise-resolve.js","webpack:///../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///../node_modules/core-js/internals/proxy-accessor.js","webpack:///../node_modules/core-js/internals/queue.js","webpack:///../node_modules/core-js/internals/reflect-metadata.js","webpack:///../node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///../node_modules/core-js/internals/regexp-exec.js","webpack:///../node_modules/core-js/internals/regexp-flags.js","webpack:///../node_modules/core-js/internals/regexp-get-flags.js","webpack:///../node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///../node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///../node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///../node_modules/core-js/internals/require-object-coercible.js","webpack:///../node_modules/core-js/internals/safe-get-built-in.js","webpack:///../node_modules/core-js/internals/same-value-zero.js","webpack:///../node_modules/core-js/internals/same-value.js","webpack:///../node_modules/core-js/internals/schedulers-fix.js","webpack:///../node_modules/core-js/internals/set-clone.js","webpack:///../node_modules/core-js/internals/set-difference.js","webpack:///../node_modules/core-js/internals/set-helpers.js","webpack:///../node_modules/core-js/internals/set-intersection.js","webpack:///../node_modules/core-js/internals/set-is-disjoint-from.js","webpack:///../node_modules/core-js/internals/set-is-subset-of.js","webpack:///../node_modules/core-js/internals/set-is-superset-of.js","webpack:///../node_modules/core-js/internals/set-iterate.js","webpack:///../node_modules/core-js/internals/set-method-accept-set-like.js","webpack:///../node_modules/core-js/internals/set-size.js","webpack:///../node_modules/core-js/internals/set-species.js","webpack:///../node_modules/core-js/internals/set-symmetric-difference.js","webpack:///../node_modules/core-js/internals/set-to-string-tag.js","webpack:///../node_modules/core-js/internals/set-union.js","webpack:///../node_modules/core-js/internals/shared-key.js","webpack:///../node_modules/core-js/internals/shared-store.js","webpack:///../node_modules/core-js/internals/shared.js","webpack:///../node_modules/core-js/internals/species-constructor.js","webpack:///../node_modules/core-js/internals/string-cooked.js","webpack:///../node_modules/core-js/internals/string-html-forced.js","webpack:///../node_modules/core-js/internals/string-multibyte.js","webpack:///../node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///../node_modules/core-js/internals/string-pad.js","webpack:///../node_modules/core-js/internals/string-parse.js","webpack:///../node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///../node_modules/core-js/internals/string-repeat.js","webpack:///../node_modules/core-js/internals/string-trim-end.js","webpack:///../node_modules/core-js/internals/string-trim-forced.js","webpack:///../node_modules/core-js/internals/string-trim-start.js","webpack:///../node_modules/core-js/internals/string-trim.js","webpack:///../node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack:///../node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///../node_modules/core-js/internals/symbol-define-to-primitive.js","webpack:///../node_modules/core-js/internals/symbol-is-registered.js","webpack:///../node_modules/core-js/internals/symbol-is-well-known.js","webpack:///../node_modules/core-js/internals/symbol-registry-detection.js","webpack:///../node_modules/core-js/internals/task.js","webpack:///../node_modules/core-js/internals/this-number-value.js","webpack:///../node_modules/core-js/internals/to-absolute-index.js","webpack:///../node_modules/core-js/internals/to-big-int.js","webpack:///../node_modules/core-js/internals/to-index.js","webpack:///../node_modules/core-js/internals/to-indexed-object.js","webpack:///../node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///../node_modules/core-js/internals/to-length.js","webpack:///../node_modules/core-js/internals/to-object.js","webpack:///../node_modules/core-js/internals/to-offset.js","webpack:///../node_modules/core-js/internals/to-positive-integer.js","webpack:///../node_modules/core-js/internals/to-primitive.js","webpack:///../node_modules/core-js/internals/to-property-key.js","webpack:///../node_modules/core-js/internals/to-set-like.js","webpack:///../node_modules/core-js/internals/to-string-tag-support.js","webpack:///../node_modules/core-js/internals/to-string.js","webpack:///../node_modules/core-js/internals/to-uint8-clamped.js","webpack:///../node_modules/core-js/internals/try-to-string.js","webpack:///../node_modules/core-js/internals/typed-array-constructor.js","webpack:///../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///../node_modules/core-js/internals/typed-array-from-same-type-and-list.js","webpack:///../node_modules/core-js/internals/typed-array-from.js","webpack:///../node_modules/core-js/internals/uid.js","webpack:///../node_modules/core-js/internals/uint8-from-base64.js","webpack:///../node_modules/core-js/internals/uint8-from-hex.js","webpack:///../node_modules/core-js/internals/url-constructor-detection.js","webpack:///../node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///../node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///../node_modules/core-js/internals/validate-arguments-length.js","webpack:///../node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///../node_modules/core-js/internals/weak-map-helpers.js","webpack:///../node_modules/core-js/internals/weak-set-helpers.js","webpack:///../node_modules/core-js/internals/well-known-symbol-define.js","webpack:///../node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///../node_modules/core-js/internals/well-known-symbol.js","webpack:///../node_modules/core-js/internals/whitespaces.js","webpack:///../node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///../node_modules/core-js/modules/es.aggregate-error.cause.js","webpack:///../node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack:///../node_modules/core-js/modules/es.aggregate-error.js","webpack:///../node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///../node_modules/core-js/modules/es.array-buffer.detached.js","webpack:///../node_modules/core-js/modules/es.array-buffer.is-view.js","webpack:///../node_modules/core-js/modules/es.array-buffer.slice.js","webpack:///../node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack:///../node_modules/core-js/modules/es.array-buffer.transfer.js","webpack:///../node_modules/core-js/modules/es.array.at.js","webpack:///../node_modules/core-js/modules/es.array.concat.js","webpack:///../node_modules/core-js/modules/es.array.copy-within.js","webpack:///../node_modules/core-js/modules/es.array.every.js","webpack:///../node_modules/core-js/modules/es.array.fill.js","webpack:///../node_modules/core-js/modules/es.array.filter.js","webpack:///../node_modules/core-js/modules/es.array.find-index.js","webpack:///../node_modules/core-js/modules/es.array.find-last-index.js","webpack:///../node_modules/core-js/modules/es.array.find-last.js","webpack:///../node_modules/core-js/modules/es.array.find.js","webpack:///../node_modules/core-js/modules/es.array.flat-map.js","webpack:///../node_modules/core-js/modules/es.array.flat.js","webpack:///../node_modules/core-js/modules/es.array.for-each.js","webpack:///../node_modules/core-js/modules/es.array.from.js","webpack:///../node_modules/core-js/modules/es.array.includes.js","webpack:///../node_modules/core-js/modules/es.array.index-of.js","webpack:///../node_modules/core-js/modules/es.array.is-array.js","webpack:///../node_modules/core-js/modules/es.array.iterator.js","webpack:///../node_modules/core-js/modules/es.array.join.js","webpack:///../node_modules/core-js/modules/es.array.last-index-of.js","webpack:///../node_modules/core-js/modules/es.array.map.js","webpack:///../node_modules/core-js/modules/es.array.of.js","webpack:///../node_modules/core-js/modules/es.array.push.js","webpack:///../node_modules/core-js/modules/es.array.reduce-right.js","webpack:///../node_modules/core-js/modules/es.array.reduce.js","webpack:///../node_modules/core-js/modules/es.array.reverse.js","webpack:///../node_modules/core-js/modules/es.array.slice.js","webpack:///../node_modules/core-js/modules/es.array.some.js","webpack:///../node_modules/core-js/modules/es.array.sort.js","webpack:///../node_modules/core-js/modules/es.array.species.js","webpack:///../node_modules/core-js/modules/es.array.splice.js","webpack:///../node_modules/core-js/modules/es.array.to-reversed.js","webpack:///../node_modules/core-js/modules/es.array.to-sorted.js","webpack:///../node_modules/core-js/modules/es.array.to-spliced.js","webpack:///../node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///../node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///../node_modules/core-js/modules/es.array.unshift.js","webpack:///../node_modules/core-js/modules/es.array.with.js","webpack:///../node_modules/core-js/modules/es.data-view.constructor.js","webpack:///../node_modules/core-js/modules/es.data-view.js","webpack:///../node_modules/core-js/modules/es.date.get-year.js","webpack:///../node_modules/core-js/modules/es.date.now.js","webpack:///../node_modules/core-js/modules/es.date.set-year.js","webpack:///../node_modules/core-js/modules/es.date.to-gmt-string.js","webpack:///../node_modules/core-js/modules/es.date.to-iso-string.js","webpack:///../node_modules/core-js/modules/es.date.to-json.js","webpack:///../node_modules/core-js/modules/es.date.to-primitive.js","webpack:///../node_modules/core-js/modules/es.date.to-string.js","webpack:///../node_modules/core-js/modules/es.error.cause.js","webpack:///../node_modules/core-js/modules/es.error.to-string.js","webpack:///../node_modules/core-js/modules/es.escape.js","webpack:///../node_modules/core-js/modules/es.function.bind.js","webpack:///../node_modules/core-js/modules/es.function.has-instance.js","webpack:///../node_modules/core-js/modules/es.function.name.js","webpack:///../node_modules/core-js/modules/es.global-this.js","webpack:///../node_modules/core-js/modules/es.iterator.constructor.js","webpack:///../node_modules/core-js/modules/es.iterator.drop.js","webpack:///../node_modules/core-js/modules/es.iterator.every.js","webpack:///../node_modules/core-js/modules/es.iterator.filter.js","webpack:///../node_modules/core-js/modules/es.iterator.find.js","webpack:///../node_modules/core-js/modules/es.iterator.flat-map.js","webpack:///../node_modules/core-js/modules/es.iterator.for-each.js","webpack:///../node_modules/core-js/modules/es.iterator.from.js","webpack:///../node_modules/core-js/modules/es.iterator.map.js","webpack:///../node_modules/core-js/modules/es.iterator.reduce.js","webpack:///../node_modules/core-js/modules/es.iterator.some.js","webpack:///../node_modules/core-js/modules/es.iterator.take.js","webpack:///../node_modules/core-js/modules/es.iterator.to-array.js","webpack:///../node_modules/core-js/modules/es.json.stringify.js","webpack:///../node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///../node_modules/core-js/modules/es.map.constructor.js","webpack:///../node_modules/core-js/modules/es.map.group-by.js","webpack:///../node_modules/core-js/modules/es.map.js","webpack:///../node_modules/core-js/modules/es.math.acosh.js","webpack:///../node_modules/core-js/modules/es.math.asinh.js","webpack:///../node_modules/core-js/modules/es.math.atanh.js","webpack:///../node_modules/core-js/modules/es.math.cbrt.js","webpack:///../node_modules/core-js/modules/es.math.clz32.js","webpack:///../node_modules/core-js/modules/es.math.cosh.js","webpack:///../node_modules/core-js/modules/es.math.expm1.js","webpack:///../node_modules/core-js/modules/es.math.fround.js","webpack:///../node_modules/core-js/modules/es.math.hypot.js","webpack:///../node_modules/core-js/modules/es.math.imul.js","webpack:///../node_modules/core-js/modules/es.math.log10.js","webpack:///../node_modules/core-js/modules/es.math.log1p.js","webpack:///../node_modules/core-js/modules/es.math.log2.js","webpack:///../node_modules/core-js/modules/es.math.sign.js","webpack:///../node_modules/core-js/modules/es.math.sinh.js","webpack:///../node_modules/core-js/modules/es.math.tanh.js","webpack:///../node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///../node_modules/core-js/modules/es.math.trunc.js","webpack:///../node_modules/core-js/modules/es.number.constructor.js","webpack:///../node_modules/core-js/modules/es.number.epsilon.js","webpack:///../node_modules/core-js/modules/es.number.is-finite.js","webpack:///../node_modules/core-js/modules/es.number.is-integer.js","webpack:///../node_modules/core-js/modules/es.number.is-nan.js","webpack:///../node_modules/core-js/modules/es.number.is-safe-integer.js","webpack:///../node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///../node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///../node_modules/core-js/modules/es.number.parse-float.js","webpack:///../node_modules/core-js/modules/es.number.parse-int.js","webpack:///../node_modules/core-js/modules/es.number.to-exponential.js","webpack:///../node_modules/core-js/modules/es.number.to-fixed.js","webpack:///../node_modules/core-js/modules/es.number.to-precision.js","webpack:///../node_modules/core-js/modules/es.object.assign.js","webpack:///../node_modules/core-js/modules/es.object.create.js","webpack:///../node_modules/core-js/modules/es.object.define-getter.js","webpack:///../node_modules/core-js/modules/es.object.define-properties.js","webpack:///../node_modules/core-js/modules/es.object.define-property.js","webpack:///../node_modules/core-js/modules/es.object.define-setter.js","webpack:///../node_modules/core-js/modules/es.object.entries.js","webpack:///../node_modules/core-js/modules/es.object.freeze.js","webpack:///../node_modules/core-js/modules/es.object.from-entries.js","webpack:///../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///../node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///../node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack:///../node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///../node_modules/core-js/modules/es.object.group-by.js","webpack:///../node_modules/core-js/modules/es.object.has-own.js","webpack:///../node_modules/core-js/modules/es.object.is-extensible.js","webpack:///../node_modules/core-js/modules/es.object.is-frozen.js","webpack:///../node_modules/core-js/modules/es.object.is-sealed.js","webpack:///../node_modules/core-js/modules/es.object.is.js","webpack:///../node_modules/core-js/modules/es.object.keys.js","webpack:///../node_modules/core-js/modules/es.object.lookup-getter.js","webpack:///../node_modules/core-js/modules/es.object.lookup-setter.js","webpack:///../node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///../node_modules/core-js/modules/es.object.proto.js","webpack:///../node_modules/core-js/modules/es.object.seal.js","webpack:///../node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///../node_modules/core-js/modules/es.object.to-string.js","webpack:///../node_modules/core-js/modules/es.object.values.js","webpack:///../node_modules/core-js/modules/es.parse-float.js","webpack:///../node_modules/core-js/modules/es.parse-int.js","webpack:///../node_modules/core-js/modules/es.promise.all-settled.js","webpack:///../node_modules/core-js/modules/es.promise.all.js","webpack:///../node_modules/core-js/modules/es.promise.any.js","webpack:///../node_modules/core-js/modules/es.promise.catch.js","webpack:///../node_modules/core-js/modules/es.promise.constructor.js","webpack:///../node_modules/core-js/modules/es.promise.finally.js","webpack:///../node_modules/core-js/modules/es.promise.js","webpack:///../node_modules/core-js/modules/es.promise.race.js","webpack:///../node_modules/core-js/modules/es.promise.reject.js","webpack:///../node_modules/core-js/modules/es.promise.resolve.js","webpack:///../node_modules/core-js/modules/es.promise.try.js","webpack:///../node_modules/core-js/modules/es.promise.with-resolvers.js","webpack:///../node_modules/core-js/modules/es.reflect.apply.js","webpack:///../node_modules/core-js/modules/es.reflect.construct.js","webpack:///../node_modules/core-js/modules/es.reflect.define-property.js","webpack:///../node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///../node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack:///../node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///../node_modules/core-js/modules/es.reflect.get.js","webpack:///../node_modules/core-js/modules/es.reflect.has.js","webpack:///../node_modules/core-js/modules/es.reflect.is-extensible.js","webpack:///../node_modules/core-js/modules/es.reflect.own-keys.js","webpack:///../node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack:///../node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack:///../node_modules/core-js/modules/es.reflect.set.js","webpack:///../node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack:///../node_modules/core-js/modules/es.regexp.constructor.js","webpack:///../node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///../node_modules/core-js/modules/es.regexp.exec.js","webpack:///../node_modules/core-js/modules/es.regexp.flags.js","webpack:///../node_modules/core-js/modules/es.regexp.sticky.js","webpack:///../node_modules/core-js/modules/es.regexp.test.js","webpack:///../node_modules/core-js/modules/es.regexp.to-string.js","webpack:///../node_modules/core-js/modules/es.set.constructor.js","webpack:///../node_modules/core-js/modules/es.set.difference.v2.js","webpack:///../node_modules/core-js/modules/es.set.intersection.v2.js","webpack:///../node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack:///../node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack:///../node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack:///../node_modules/core-js/modules/es.set.js","webpack:///../node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack:///../node_modules/core-js/modules/es.set.union.v2.js","webpack:///../node_modules/core-js/modules/es.string.anchor.js","webpack:///../node_modules/core-js/modules/es.string.at-alternative.js","webpack:///../node_modules/core-js/modules/es.string.big.js","webpack:///../node_modules/core-js/modules/es.string.blink.js","webpack:///../node_modules/core-js/modules/es.string.bold.js","webpack:///../node_modules/core-js/modules/es.string.code-point-at.js","webpack:///../node_modules/core-js/modules/es.string.ends-with.js","webpack:///../node_modules/core-js/modules/es.string.fixed.js","webpack:///../node_modules/core-js/modules/es.string.fontcolor.js","webpack:///../node_modules/core-js/modules/es.string.fontsize.js","webpack:///../node_modules/core-js/modules/es.string.from-code-point.js","webpack:///../node_modules/core-js/modules/es.string.includes.js","webpack:///../node_modules/core-js/modules/es.string.is-well-formed.js","webpack:///../node_modules/core-js/modules/es.string.italics.js","webpack:///../node_modules/core-js/modules/es.string.iterator.js","webpack:///../node_modules/core-js/modules/es.string.link.js","webpack:///../node_modules/core-js/modules/es.string.match-all.js","webpack:///../node_modules/core-js/modules/es.string.match.js","webpack:///../node_modules/core-js/modules/es.string.pad-end.js","webpack:///../node_modules/core-js/modules/es.string.pad-start.js","webpack:///../node_modules/core-js/modules/es.string.raw.js","webpack:///../node_modules/core-js/modules/es.string.repeat.js","webpack:///../node_modules/core-js/modules/es.string.replace-all.js","webpack:///../node_modules/core-js/modules/es.string.replace.js","webpack:///../node_modules/core-js/modules/es.string.search.js","webpack:///../node_modules/core-js/modules/es.string.small.js","webpack:///../node_modules/core-js/modules/es.string.split.js","webpack:///../node_modules/core-js/modules/es.string.starts-with.js","webpack:///../node_modules/core-js/modules/es.string.strike.js","webpack:///../node_modules/core-js/modules/es.string.sub.js","webpack:///../node_modules/core-js/modules/es.string.substr.js","webpack:///../node_modules/core-js/modules/es.string.sup.js","webpack:///../node_modules/core-js/modules/es.string.to-well-formed.js","webpack:///../node_modules/core-js/modules/es.string.trim-end.js","webpack:///../node_modules/core-js/modules/es.string.trim-left.js","webpack:///../node_modules/core-js/modules/es.string.trim-right.js","webpack:///../node_modules/core-js/modules/es.string.trim-start.js","webpack:///../node_modules/core-js/modules/es.string.trim.js","webpack:///../node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///../node_modules/core-js/modules/es.symbol.constructor.js","webpack:///../node_modules/core-js/modules/es.symbol.description.js","webpack:///../node_modules/core-js/modules/es.symbol.for.js","webpack:///../node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///../node_modules/core-js/modules/es.symbol.iterator.js","webpack:///../node_modules/core-js/modules/es.symbol.js","webpack:///../node_modules/core-js/modules/es.symbol.key-for.js","webpack:///../node_modules/core-js/modules/es.symbol.match-all.js","webpack:///../node_modules/core-js/modules/es.symbol.match.js","webpack:///../node_modules/core-js/modules/es.symbol.replace.js","webpack:///../node_modules/core-js/modules/es.symbol.search.js","webpack:///../node_modules/core-js/modules/es.symbol.species.js","webpack:///../node_modules/core-js/modules/es.symbol.split.js","webpack:///../node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///../node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///../node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///../node_modules/core-js/modules/es.typed-array.at.js","webpack:///../node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///../node_modules/core-js/modules/es.typed-array.every.js","webpack:///../node_modules/core-js/modules/es.typed-array.fill.js","webpack:///../node_modules/core-js/modules/es.typed-array.filter.js","webpack:///../node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///../node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack:///../node_modules/core-js/modules/es.typed-array.find-last.js","webpack:///../node_modules/core-js/modules/es.typed-array.find.js","webpack:///../node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///../node_modules/core-js/modules/es.typed-array.from.js","webpack:///../node_modules/core-js/modules/es.typed-array.includes.js","webpack:///../node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///../node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///../node_modules/core-js/modules/es.typed-array.join.js","webpack:///../node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///../node_modules/core-js/modules/es.typed-array.map.js","webpack:///../node_modules/core-js/modules/es.typed-array.of.js","webpack:///../node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///../node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///../node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///../node_modules/core-js/modules/es.typed-array.set.js","webpack:///../node_modules/core-js/modules/es.typed-array.slice.js","webpack:///../node_modules/core-js/modules/es.typed-array.some.js","webpack:///../node_modules/core-js/modules/es.typed-array.sort.js","webpack:///../node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///../node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///../node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack:///../node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack:///../node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///../node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///../node_modules/core-js/modules/es.typed-array.with.js","webpack:///../node_modules/core-js/modules/es.unescape.js","webpack:///../node_modules/core-js/modules/es.weak-map.constructor.js","webpack:///../node_modules/core-js/modules/es.weak-map.js","webpack:///../node_modules/core-js/modules/es.weak-set.constructor.js","webpack:///../node_modules/core-js/modules/es.weak-set.js","webpack:///../node_modules/core-js/modules/esnext.aggregate-error.js","webpack:///../node_modules/core-js/modules/esnext.array-buffer.detached.js","webpack:///../node_modules/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js","webpack:///../node_modules/core-js/modules/esnext.array-buffer.transfer.js","webpack:///../node_modules/core-js/modules/esnext.array.at.js","webpack:///../node_modules/core-js/modules/esnext.array.filter-out.js","webpack:///../node_modules/core-js/modules/esnext.array.filter-reject.js","webpack:///../node_modules/core-js/modules/esnext.array.find-last-index.js","webpack:///../node_modules/core-js/modules/esnext.array.find-last.js","webpack:///../node_modules/core-js/modules/esnext.array.from-async.js","webpack:///../node_modules/core-js/modules/esnext.array.group-by-to-map.js","webpack:///../node_modules/core-js/modules/esnext.array.group-by.js","webpack:///../node_modules/core-js/modules/esnext.array.group-to-map.js","webpack:///../node_modules/core-js/modules/esnext.array.group.js","webpack:///../node_modules/core-js/modules/esnext.array.is-template-object.js","webpack:///../node_modules/core-js/modules/esnext.array.last-index.js","webpack:///../node_modules/core-js/modules/esnext.array.last-item.js","webpack:///../node_modules/core-js/modules/esnext.array.to-reversed.js","webpack:///../node_modules/core-js/modules/esnext.array.to-sorted.js","webpack:///../node_modules/core-js/modules/esnext.array.to-spliced.js","webpack:///../node_modules/core-js/modules/esnext.array.unique-by.js","webpack:///../node_modules/core-js/modules/esnext.array.with.js","webpack:///../node_modules/core-js/modules/esnext.async-disposable-stack.constructor.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.async-dispose.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.constructor.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.drop.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.every.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.filter.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.find.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.flat-map.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.for-each.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.from.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.indexed.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.map.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.reduce.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.some.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.take.js","webpack:///../node_modules/core-js/modules/esnext.async-iterator.to-array.js","webpack:///../node_modules/core-js/modules/esnext.bigint.range.js","webpack:///../node_modules/core-js/modules/esnext.composite-key.js","webpack:///../node_modules/core-js/modules/esnext.composite-symbol.js","webpack:///../node_modules/core-js/modules/esnext.data-view.get-float16.js","webpack:///../node_modules/core-js/modules/esnext.data-view.get-uint8-clamped.js","webpack:///../node_modules/core-js/modules/esnext.data-view.set-float16.js","webpack:///../node_modules/core-js/modules/esnext.data-view.set-uint8-clamped.js","webpack:///../node_modules/core-js/modules/esnext.disposable-stack.constructor.js","webpack:///../node_modules/core-js/modules/esnext.error.is-error.js","webpack:///../node_modules/core-js/modules/esnext.function.demethodize.js","webpack:///../node_modules/core-js/modules/esnext.function.is-callable.js","webpack:///../node_modules/core-js/modules/esnext.function.is-constructor.js","webpack:///../node_modules/core-js/modules/esnext.function.metadata.js","webpack:///../node_modules/core-js/modules/esnext.function.un-this.js","webpack:///../node_modules/core-js/modules/esnext.global-this.js","webpack:///../node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js","webpack:///../node_modules/core-js/modules/esnext.iterator.concat.js","webpack:///../node_modules/core-js/modules/esnext.iterator.constructor.js","webpack:///../node_modules/core-js/modules/esnext.iterator.dispose.js","webpack:///../node_modules/core-js/modules/esnext.iterator.drop.js","webpack:///../node_modules/core-js/modules/esnext.iterator.every.js","webpack:///../node_modules/core-js/modules/esnext.iterator.filter.js","webpack:///../node_modules/core-js/modules/esnext.iterator.find.js","webpack:///../node_modules/core-js/modules/esnext.iterator.flat-map.js","webpack:///../node_modules/core-js/modules/esnext.iterator.for-each.js","webpack:///../node_modules/core-js/modules/esnext.iterator.from.js","webpack:///../node_modules/core-js/modules/esnext.iterator.indexed.js","webpack:///../node_modules/core-js/modules/esnext.iterator.map.js","webpack:///../node_modules/core-js/modules/esnext.iterator.range.js","webpack:///../node_modules/core-js/modules/esnext.iterator.reduce.js","webpack:///../node_modules/core-js/modules/esnext.iterator.some.js","webpack:///../node_modules/core-js/modules/esnext.iterator.take.js","webpack:///../node_modules/core-js/modules/esnext.iterator.to-array.js","webpack:///../node_modules/core-js/modules/esnext.iterator.to-async.js","webpack:///../node_modules/core-js/modules/esnext.json.is-raw-json.js","webpack:///../node_modules/core-js/modules/esnext.json.parse.js","webpack:///../node_modules/core-js/modules/esnext.json.raw-json.js","webpack:///../node_modules/core-js/modules/esnext.map.delete-all.js","webpack:///../node_modules/core-js/modules/esnext.map.emplace.js","webpack:///../node_modules/core-js/modules/esnext.map.every.js","webpack:///../node_modules/core-js/modules/esnext.map.filter.js","webpack:///../node_modules/core-js/modules/esnext.map.find-key.js","webpack:///../node_modules/core-js/modules/esnext.map.find.js","webpack:///../node_modules/core-js/modules/esnext.map.from.js","webpack:///../node_modules/core-js/modules/esnext.map.get-or-insert-computed.js","webpack:///../node_modules/core-js/modules/esnext.map.get-or-insert.js","webpack:///../node_modules/core-js/modules/esnext.map.group-by.js","webpack:///../node_modules/core-js/modules/esnext.map.includes.js","webpack:///../node_modules/core-js/modules/esnext.map.key-by.js","webpack:///../node_modules/core-js/modules/esnext.map.key-of.js","webpack:///../node_modules/core-js/modules/esnext.map.map-keys.js","webpack:///../node_modules/core-js/modules/esnext.map.map-values.js","webpack:///../node_modules/core-js/modules/esnext.map.merge.js","webpack:///../node_modules/core-js/modules/esnext.map.of.js","webpack:///../node_modules/core-js/modules/esnext.map.reduce.js","webpack:///../node_modules/core-js/modules/esnext.map.some.js","webpack:///../node_modules/core-js/modules/esnext.map.update-or-insert.js","webpack:///../node_modules/core-js/modules/esnext.map.update.js","webpack:///../node_modules/core-js/modules/esnext.map.upsert.js","webpack:///../node_modules/core-js/modules/esnext.math.clamp.js","webpack:///../node_modules/core-js/modules/esnext.math.deg-per-rad.js","webpack:///../node_modules/core-js/modules/esnext.math.degrees.js","webpack:///../node_modules/core-js/modules/esnext.math.f16round.js","webpack:///../node_modules/core-js/modules/esnext.math.fscale.js","webpack:///../node_modules/core-js/modules/esnext.math.iaddh.js","webpack:///../node_modules/core-js/modules/esnext.math.imulh.js","webpack:///../node_modules/core-js/modules/esnext.math.isubh.js","webpack:///../node_modules/core-js/modules/esnext.math.rad-per-deg.js","webpack:///../node_modules/core-js/modules/esnext.math.radians.js","webpack:///../node_modules/core-js/modules/esnext.math.scale.js","webpack:///../node_modules/core-js/modules/esnext.math.seeded-prng.js","webpack:///../node_modules/core-js/modules/esnext.math.signbit.js","webpack:///../node_modules/core-js/modules/esnext.math.sum-precise.js","webpack:///../node_modules/core-js/modules/esnext.math.umulh.js","webpack:///../node_modules/core-js/modules/esnext.number.from-string.js","webpack:///../node_modules/core-js/modules/esnext.number.range.js","webpack:///../node_modules/core-js/modules/esnext.object.group-by.js","webpack:///../node_modules/core-js/modules/esnext.object.has-own.js","webpack:///../node_modules/core-js/modules/esnext.object.iterate-entries.js","webpack:///../node_modules/core-js/modules/esnext.object.iterate-keys.js","webpack:///../node_modules/core-js/modules/esnext.object.iterate-values.js","webpack:///../node_modules/core-js/modules/esnext.observable.constructor.js","webpack:///../node_modules/core-js/modules/esnext.observable.from.js","webpack:///../node_modules/core-js/modules/esnext.observable.js","webpack:///../node_modules/core-js/modules/esnext.observable.of.js","webpack:///../node_modules/core-js/modules/esnext.promise.all-settled.js","webpack:///../node_modules/core-js/modules/esnext.promise.any.js","webpack:///../node_modules/core-js/modules/esnext.promise.try.js","webpack:///../node_modules/core-js/modules/esnext.promise.with-resolvers.js","webpack:///../node_modules/core-js/modules/esnext.reflect.define-metadata.js","webpack:///../node_modules/core-js/modules/esnext.reflect.delete-metadata.js","webpack:///../node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js","webpack:///../node_modules/core-js/modules/esnext.reflect.get-metadata.js","webpack:///../node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js","webpack:///../node_modules/core-js/modules/esnext.reflect.get-own-metadata.js","webpack:///../node_modules/core-js/modules/esnext.reflect.has-metadata.js","webpack:///../node_modules/core-js/modules/esnext.reflect.has-own-metadata.js","webpack:///../node_modules/core-js/modules/esnext.reflect.metadata.js","webpack:///../node_modules/core-js/modules/esnext.regexp.escape.js","webpack:///../node_modules/core-js/modules/esnext.set.add-all.js","webpack:///../node_modules/core-js/modules/esnext.set.delete-all.js","webpack:///../node_modules/core-js/modules/esnext.set.difference.js","webpack:///../node_modules/core-js/modules/esnext.set.difference.v2.js","webpack:///../node_modules/core-js/modules/esnext.set.every.js","webpack:///../node_modules/core-js/modules/esnext.set.filter.js","webpack:///../node_modules/core-js/modules/esnext.set.find.js","webpack:///../node_modules/core-js/modules/esnext.set.from.js","webpack:///../node_modules/core-js/modules/esnext.set.intersection.js","webpack:///../node_modules/core-js/modules/esnext.set.intersection.v2.js","webpack:///../node_modules/core-js/modules/esnext.set.is-disjoint-from.js","webpack:///../node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","webpack:///../node_modules/core-js/modules/esnext.set.is-subset-of.js","webpack:///../node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","webpack:///../node_modules/core-js/modules/esnext.set.is-superset-of.js","webpack:///../node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","webpack:///../node_modules/core-js/modules/esnext.set.join.js","webpack:///../node_modules/core-js/modules/esnext.set.map.js","webpack:///../node_modules/core-js/modules/esnext.set.of.js","webpack:///../node_modules/core-js/modules/esnext.set.reduce.js","webpack:///../node_modules/core-js/modules/esnext.set.some.js","webpack:///../node_modules/core-js/modules/esnext.set.symmetric-difference.js","webpack:///../node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","webpack:///../node_modules/core-js/modules/esnext.set.union.js","webpack:///../node_modules/core-js/modules/esnext.set.union.v2.js","webpack:///../node_modules/core-js/modules/esnext.string.at.js","webpack:///../node_modules/core-js/modules/esnext.string.code-points.js","webpack:///../node_modules/core-js/modules/esnext.string.cooked.js","webpack:///../node_modules/core-js/modules/esnext.string.dedent.js","webpack:///../node_modules/core-js/modules/esnext.string.is-well-formed.js","webpack:///../node_modules/core-js/modules/esnext.string.match-all.js","webpack:///../node_modules/core-js/modules/esnext.string.replace-all.js","webpack:///../node_modules/core-js/modules/esnext.string.to-well-formed.js","webpack:///../node_modules/core-js/modules/esnext.suppressed-error.constructor.js","webpack:///../node_modules/core-js/modules/esnext.symbol.async-dispose.js","webpack:///../node_modules/core-js/modules/esnext.symbol.custom-matcher.js","webpack:///../node_modules/core-js/modules/esnext.symbol.dispose.js","webpack:///../node_modules/core-js/modules/esnext.symbol.is-registered-symbol.js","webpack:///../node_modules/core-js/modules/esnext.symbol.is-registered.js","webpack:///../node_modules/core-js/modules/esnext.symbol.is-well-known-symbol.js","webpack:///../node_modules/core-js/modules/esnext.symbol.is-well-known.js","webpack:///../node_modules/core-js/modules/esnext.symbol.matcher.js","webpack:///../node_modules/core-js/modules/esnext.symbol.metadata-key.js","webpack:///../node_modules/core-js/modules/esnext.symbol.metadata.js","webpack:///../node_modules/core-js/modules/esnext.symbol.observable.js","webpack:///../node_modules/core-js/modules/esnext.symbol.pattern-match.js","webpack:///../node_modules/core-js/modules/esnext.symbol.replace-all.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.at.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.filter-out.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.filter-reject.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.find-last-index.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.find-last.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.from-async.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.group-by.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.to-reversed.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.to-sorted.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.to-spliced.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.unique-by.js","webpack:///../node_modules/core-js/modules/esnext.typed-array.with.js","webpack:///../node_modules/core-js/modules/esnext.uint8-array.from-base64.js","webpack:///../node_modules/core-js/modules/esnext.uint8-array.from-hex.js","webpack:///../node_modules/core-js/modules/esnext.uint8-array.set-from-base64.js","webpack:///../node_modules/core-js/modules/esnext.uint8-array.set-from-hex.js","webpack:///../node_modules/core-js/modules/esnext.uint8-array.to-base64.js","webpack:///../node_modules/core-js/modules/esnext.uint8-array.to-hex.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.delete-all.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.emplace.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.from.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.get-or-insert-computed.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.get-or-insert.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.of.js","webpack:///../node_modules/core-js/modules/esnext.weak-map.upsert.js","webpack:///../node_modules/core-js/modules/esnext.weak-set.add-all.js","webpack:///../node_modules/core-js/modules/esnext.weak-set.delete-all.js","webpack:///../node_modules/core-js/modules/esnext.weak-set.from.js","webpack:///../node_modules/core-js/modules/esnext.weak-set.of.js","webpack:///../node_modules/core-js/modules/web.atob.js","webpack:///../node_modules/core-js/modules/web.btoa.js","webpack:///../node_modules/core-js/modules/web.clear-immediate.js","webpack:///../node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///../node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///../node_modules/core-js/modules/web.dom-exception.constructor.js","webpack:///../node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///../node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack:///../node_modules/core-js/modules/web.immediate.js","webpack:///../node_modules/core-js/modules/web.queue-microtask.js","webpack:///../node_modules/core-js/modules/web.self.js","webpack:///../node_modules/core-js/modules/web.set-immediate.js","webpack:///../node_modules/core-js/modules/web.set-interval.js","webpack:///../node_modules/core-js/modules/web.set-timeout.js","webpack:///../node_modules/core-js/modules/web.structured-clone.js","webpack:///../node_modules/core-js/modules/web.timers.js","webpack:///../node_modules/core-js/modules/web.url-search-params.constructor.js","webpack:///../node_modules/core-js/modules/web.url-search-params.delete.js","webpack:///../node_modules/core-js/modules/web.url-search-params.has.js","webpack:///../node_modules/core-js/modules/web.url-search-params.js","webpack:///../node_modules/core-js/modules/web.url-search-params.size.js","webpack:///../node_modules/core-js/modules/web.url.can-parse.js","webpack:///../node_modules/core-js/modules/web.url.constructor.js","webpack:///../node_modules/core-js/modules/web.url.js","webpack:///../node_modules/core-js/modules/web.url.parse.js","webpack:///../node_modules/core-js/modules/web.url.to-json.js"],"sourcesContent":["import { DayOfWeek, MonthOfYear, FirstWeekOfYear, DateRangeType } from '../dateValues/dateValues';\nimport TimeConstants from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param date - The origin date\n * @param days - The number of days to offset. 'days' can be negative.\n * @returns A new Date object offset from the origin date by the given number of days\n */\nexport function addDays(date, days) {\n var result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of weeks.\n * @param date - The origin date\n * @param weeks - The number of weeks to offset. 'weeks' can be negative.\n * @returns A new Date object offset from the origin date by the given number of weeks\n */\nexport function addWeeks(date, weeks) {\n return addDays(date, weeks * TimeConstants.DaysInOneWeek);\n}\n/**\n * Returns a date offset from the given date by the specified number of months.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param months - The number of months to offset. 'months' can be negative.\n * @returns A new Date object offset from the origin date by the given number of months\n */\nexport function addMonths(date, months) {\n var result = new Date(date.getTime());\n var newMonth = result.getMonth() + months;\n result.setMonth(newMonth);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((newMonth % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of years.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param years - The number of years to offset. 'years' can be negative.\n * @returns A new Date object offset from the origin date by the given number of years\n */\nexport function addYears(date, years) {\n var result = new Date(date.getTime());\n result.setFullYear(date.getFullYear() + years);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((date.getMonth() % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date that is the first day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the month.\n */\nexport function getMonthStart(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the month.\n */\nexport function getMonthEnd(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the first day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the year.\n */\nexport function getYearStart(date) {\n return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the year.\n */\nexport function getYearEnd(date) {\n return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is a copy of the given date, aside from the month changing to the given month.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param month - The 0-based index of the month to set on the date.\n * @returns A new Date object with the given month set.\n */\nexport function setMonth(date, month) {\n return addMonths(date, month - date.getMonth());\n}\n/**\n * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.\n * @returns True if the two dates represent the same date (regardless of time-of-day), false otherwise.\n */\nexport function compareDates(date1, date2) {\n if (!date1 && !date2) {\n return true;\n }\n else if (!date1 || !date2) {\n return false;\n }\n else {\n return (date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate());\n }\n}\n/**\n * Compare the date parts of two dates\n * @param date1 - The first date to compare\n * @param date2 - The second date to compare\n * @returns A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value\n * if date1 is later than date2.\n */\nexport function compareDatePart(date1, date2) {\n return getDatePartHashValue(date1) - getDatePartHashValue(date2);\n}\n/**\n * Gets the date range array including the specified date. The date range array is calculated as the list\n * of dates accounting for the specified first day of the week and date range type.\n * @param date - The input date\n * @param dateRangeType - The desired date range type, i.e., day, week, month, etc.\n * @param firstDayOfWeek - The first day of the week.\n * @param workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.\n * @param daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day\n * for multiday view. Defaults to 1\n * @returns An array of dates representing the date range containing the specified date.\n */\nexport function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {\n if (daysToSelectInDayView === void 0) { daysToSelectInDayView = 1; }\n var datesArray = new Array();\n var startDate;\n var endDate = null;\n if (!workWeekDays) {\n workWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\n }\n daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);\n switch (dateRangeType) {\n case DateRangeType.Day:\n startDate = getDatePart(date);\n endDate = addDays(startDate, daysToSelectInDayView);\n break;\n case DateRangeType.Week:\n case DateRangeType.WorkWeek:\n startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);\n endDate = addDays(startDate, TimeConstants.DaysInOneWeek);\n break;\n case DateRangeType.Month:\n startDate = new Date(date.getFullYear(), date.getMonth(), 1);\n endDate = addMonths(startDate, 1);\n break;\n default:\n throw new Error('Unexpected object: ' + dateRangeType);\n }\n // Populate the dates array with the dates in range\n var nextDate = startDate;\n do {\n if (dateRangeType !== DateRangeType.WorkWeek) {\n // push all days not in work week view\n datesArray.push(nextDate);\n }\n else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {\n datesArray.push(nextDate);\n }\n nextDate = addDays(nextDate, 1);\n } while (!compareDates(nextDate, endDate));\n return datesArray;\n}\n/**\n * Checks whether the specified date is in the given date range.\n * @param date - The origin date\n * @param dateRange - An array of dates to do the lookup on\n * @returns True if the date matches one of the dates in the specified array, false otherwise.\n */\nexport function isInDateRangeArray(date, dateRange) {\n for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {\n var dateInRange = dateRange_1[_i];\n if (compareDates(date, dateInRange)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param navigatedDate - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The weeks number array for the current month.\n */\nexport function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {\n var selectedYear = navigatedDate.getFullYear();\n var selectedMonth = navigatedDate.getMonth();\n var dayOfMonth = 1;\n var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);\n var endOfFirstWeek = dayOfMonth +\n (firstDayOfWeek + TimeConstants.DaysInOneWeek - 1) -\n adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());\n var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);\n dayOfMonth = endOfWeekRange.getDate();\n var weeksArray = [];\n for (var i = 0; i < weeksInMonth; i++) {\n // Get week number for end of week\n weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));\n dayOfMonth += TimeConstants.DaysInOneWeek;\n endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);\n }\n return weeksArray;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param date - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The week's number in the year.\n */\nexport function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {\n // First four-day week of the year - minumum days count\n var fourDayWeek = 4;\n switch (firstWeekOfYear) {\n case FirstWeekOfYear.FirstFullWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, TimeConstants.DaysInOneWeek);\n case FirstWeekOfYear.FirstFourDayWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);\n default:\n return getFirstDayWeekOfYear(date, firstDayOfWeek);\n }\n}\n/**\n * Gets the date for the first day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getStartDateOfWeek(date, firstDayOfWeek) {\n var daysOffset = firstDayOfWeek - date.getDay();\n if (daysOffset > 0) {\n // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.\n daysOffset -= TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets the date for the last day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getEndDateOfWeek(date, firstDayOfWeek) {\n var lastDayOfWeek = firstDayOfWeek - 1 >= 0 ? firstDayOfWeek - 1 : TimeConstants.DaysInOneWeek - 1;\n var daysOffset = lastDayOfWeek - date.getDay();\n if (daysOffset < 0) {\n // If last day of week is < date, go 1 week forward, to ensure resulting date is in the future.\n daysOffset += TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets a new date with the time portion zeroed out, i.e., set to midnight\n * @param date - The origin date\n * @returns A new date with the time set to midnight\n */\nfunction getDatePart(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Helper function to assist in date comparisons\n */\nexport function getDatePartHashValue(date) {\n // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.\n return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);\n}\n/**\n * Helper function for getWeekNumber.\n * Returns week number for a date\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param numberOfFullDays - week settings.\n * @returns The week's number in the year.\n */\nfunction getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {\n var dayOfYear = getDayOfYear(date) - 1;\n var num = date.getDay() - (dayOfYear % TimeConstants.DaysInOneWeek);\n var lastDayOfPrevYear = new Date(date.getFullYear() - 1, MonthOfYear.December, 31);\n var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;\n var num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n var num3 = dayOfYear - num2;\n if (num3 < 0) {\n num -= daysInYear % TimeConstants.DaysInOneWeek;\n num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n num3 = daysInYear - num2;\n }\n return Math.floor(num3 / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for getWeekNumber.\n * Returns week number for a date\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @returns The week's number in the year.\n */\nfunction getFirstDayWeekOfYear(date, firstDayOfWeek) {\n var num = getDayOfYear(date) - 1;\n var num2 = date.getDay() - (num % TimeConstants.DaysInOneWeek);\n var num3 = (num2 - firstDayOfWeek + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n return Math.floor((num + num3) / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for getWeekNumber.\n * Returns adjusted week day number when firstDayOfWeek is other than Sunday\n * For Week Day Number comparison checks\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param dateWeekDay - shifts number forward to 1 week in case passed as true\n * @returns The day of week adjusted to `firstDayOfWeek`; e.g. when `firstDayOfWeek` is Monday (1),\n * Sunday becomes 7.\n */\nfunction adjustWeekDay(firstDayOfWeek, dateWeekDay) {\n return firstDayOfWeek !== DayOfWeek.Sunday && dateWeekDay < firstDayOfWeek\n ? dateWeekDay + TimeConstants.DaysInOneWeek\n : dateWeekDay;\n}\n/**\n * Returns the day number for a date in a year\n * The number of days since January 1st in the particular year.\n * @param date - A date to find the day number for.\n * @returns The day's number in the year.\n */\nfunction getDayOfYear(date) {\n var month = date.getMonth();\n var year = date.getFullYear();\n var daysUntilDate = 0;\n for (var i = 0; i < month; i++) {\n daysUntilDate += daysInMonth(i + 1, year);\n }\n daysUntilDate += date.getDate();\n return daysUntilDate;\n}\n/**\n * Returns the number of days in the month\n * @param month - The month number to target (months 1-12).\n * @param year - The year to target.\n * @returns The number of days in the month.\n */\nfunction daysInMonth(month, year) {\n return new Date(year, month, 0).getDate();\n}\n//# sourceMappingURL=dateMath.js.map","/**\n * The days of the week\n * {@docCategory DayOfWeek}\n */\nexport var DayOfWeek;\n(function (DayOfWeek) {\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\n})(DayOfWeek || (DayOfWeek = {}));\n/**\n * The months\n * {@docCategory MonthOfYear}\n */\nexport var MonthOfYear;\n(function (MonthOfYear) {\n MonthOfYear[MonthOfYear[\"January\"] = 0] = \"January\";\n MonthOfYear[MonthOfYear[\"February\"] = 1] = \"February\";\n MonthOfYear[MonthOfYear[\"March\"] = 2] = \"March\";\n MonthOfYear[MonthOfYear[\"April\"] = 3] = \"April\";\n MonthOfYear[MonthOfYear[\"May\"] = 4] = \"May\";\n MonthOfYear[MonthOfYear[\"June\"] = 5] = \"June\";\n MonthOfYear[MonthOfYear[\"July\"] = 6] = \"July\";\n MonthOfYear[MonthOfYear[\"August\"] = 7] = \"August\";\n MonthOfYear[MonthOfYear[\"September\"] = 8] = \"September\";\n MonthOfYear[MonthOfYear[\"October\"] = 9] = \"October\";\n MonthOfYear[MonthOfYear[\"November\"] = 10] = \"November\";\n MonthOfYear[MonthOfYear[\"December\"] = 11] = \"December\";\n})(MonthOfYear || (MonthOfYear = {}));\n/**\n * First week of the year settings types\n * {@docCategory FirstWeekOfYear}\n */\nexport var FirstWeekOfYear;\n(function (FirstWeekOfYear) {\n FirstWeekOfYear[FirstWeekOfYear[\"FirstDay\"] = 0] = \"FirstDay\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFullWeek\"] = 1] = \"FirstFullWeek\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFourDayWeek\"] = 2] = \"FirstFourDayWeek\";\n})(FirstWeekOfYear || (FirstWeekOfYear = {}));\n/**\n * The supported date range types\n * {@docCategory DateRangeType}\n */\nexport var DateRangeType;\n(function (DateRangeType) {\n DateRangeType[DateRangeType[\"Day\"] = 0] = \"Day\";\n DateRangeType[DateRangeType[\"Week\"] = 1] = \"Week\";\n DateRangeType[DateRangeType[\"Month\"] = 2] = \"Month\";\n DateRangeType[DateRangeType[\"WorkWeek\"] = 3] = \"WorkWeek\";\n})(DateRangeType || (DateRangeType = {}));\nexport var DAYS_IN_WEEK = 7;\n//# sourceMappingURL=dateValues.js.map","/**\n * Common constants and methods\n */\nvar TimeConstants = {\n MillisecondsInOneDay: 86400000,\n MillisecondsIn1Sec: 1000,\n MillisecondsIn1Min: 60000,\n MillisecondsIn30Mins: 1800000,\n MillisecondsIn1Hour: 3600000,\n MinutesInOneDay: 1440,\n MinutesInOneHour: 60,\n DaysInOneWeek: 7,\n MonthInOneYear: 12,\n};\nexport default TimeConstants;\n//# sourceMappingURL=timeConstants.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n var isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n }\n else {\n isContained = false;\n while (child) {\n var nextParent = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n }\n }\n else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute) {\n var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); });\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction) {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the elements which are child elements of the given element.\n * If `allowVirtualChildren` is `true`, this method enumerates virtual child elements\n * after the original children.\n * @param parent - The element to get the children of.\n * @param allowVirtualChildren - true if the method should enumerate virtual child elements.\n */\nexport function getChildren(parent, allowVirtualChildren) {\n if (allowVirtualChildren === void 0) { allowVirtualChildren = true; }\n var children = [];\n if (parent) {\n for (var i = 0; i < parent.children.length; i++) {\n children.push(parent.children.item(i));\n }\n if (allowVirtualChildren && isVirtualElement(parent)) {\n children.push.apply(children, parent._virtual.children);\n }\n }\n return children;\n}\n//# sourceMappingURL=getChildren.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n return (child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && child.parentNode)));\n}\n//# sourceMappingURL=getParent.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n var parent;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent) {\n var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); });\n return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n var virtualChild = child;\n var virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n var oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n var index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import * as React from 'react';\nimport { getNativeElementProps, omit } from '@uifabric/utilities';\nimport { nullRender } from './nullRender';\n/**\n * Given the state and an array of slot names, will break out `slots` and `slotProps`\n * collections.\n *\n * The root is always derived from the `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 the the slot type. For example, if the\n * slot is rendered `as: 'a'`, the props will be filtered for acceptable anchor props.\n *\n * @param state - State including slot definitions\n * @param slotNames - Name of which props are slots\n * @returns An object containing the `slots` map and `slotProps` map.\n */\nexport var getSlots = function (state, slotNames) {\n var slots = {\n root: state.as || 'div',\n };\n var slotProps = {\n root: typeof state.as === 'string' ? getNativeElementProps(state.as, state) : omit(state, ['as']),\n };\n if (slotNames) {\n for (var _i = 0, slotNames_1 = slotNames; _i < slotNames_1.length; _i++) {\n var name_1 = slotNames_1[_i];\n var slotDefinition = state[name_1] || {};\n var _a = slotDefinition.as, slotAs = _a === void 0 ? 'span' : _a, children = slotDefinition.children;\n var isSlotPrimitive = typeof slotAs === 'string';\n var isSlotEmpty = isSlotPrimitive && slotDefinition.children === undefined;\n slots[name_1] = isSlotEmpty ? nullRender : slotAs;\n if (typeof children === 'function') {\n slotProps[name_1] = {\n children: children(slots[name_1], omit(slotDefinition, ['as', 'children'])),\n };\n slots[name_1] = React.Fragment;\n }\n else if (slots[name_1] !== nullRender) {\n slotProps[name_1] = isSlotPrimitive\n ? getNativeElementProps(slotAs, slotDefinition)\n : omit(slotDefinition, ['as']);\n }\n }\n }\n return { slots: slots, slotProps: slotProps };\n};\n//# sourceMappingURL=getSlots.js.map","export var nullRender = function () { return null; };\n//# sourceMappingURL=nullRender.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { mergeStyles } from '@uifabric/merge-styles';\nimport { getTheme } from '@uifabric/styling';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, getWindow, findScrollableParent, createMergedRef, } from '@uifabric/utilities';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\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 _a, _b, _c, _d, _e, _f;\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: (_a = ev) === null || _a === void 0 ? void 0 : _a.ctrlKey,\n metaKey: (_b = ev) === null || _b === void 0 ? void 0 : _b.metaKey,\n shiftKey: (_c = ev) === null || _c === void 0 ? void 0 : _c.shiftKey,\n altKey: (_d = ev) === null || _d === void 0 ? void 0 : _d.altKey,\n bubbles: (_e = ev) === null || _e === void 0 ? void 0 : _e.bubbles,\n cancelable: (_f = ev) === null || _f === void 0 ? void 0 : _f.cancelable,\n });\n }\n else {\n event = document.createEvent('MouseEvents');\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, 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'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _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 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\n switch (ev.which) {\n case KeyCodes.space:\n if (_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._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, activeRect, 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 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 this._windowElement = getWindow(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 if (this._windowElement && _outerZones.size === 1) {\n this._windowElement.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\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 (doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body ||\n doc.activeElement === null ||\n (!this.props.preventFocusRestoration && 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 // If this is the last outer zone, remove the keydown listener.\n if (this._windowElement && _outerZones.size === 0) {\n this._windowElement.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\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 * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = 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 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));\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 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 || !this.props.shouldRaiseClicks) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA') {\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, 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\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\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 (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 (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), 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), 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 };\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","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('@fluentui/react-focus', '7.18.16');\n//# sourceMappingURL=version.js.map","import * as React from 'react';\nvar defaultDocument = { document: 'document' };\n/**\n * Register styles can be called with a single or multiple stylesheets. Each will be evaluated\n * if they've been registered already, and then passed along to `renderStyles` if they're new\n * to the given context.\n */\nexport var registerStyles = function (sheets, context) {\n var styleCache = context.styleCache, target = context.target;\n if (!sheets || sheets.length < 1) {\n return;\n }\n if (!Array.isArray(sheets)) {\n sheets = [sheets];\n }\n // Grab the style cache for the target document.\n var sheetsToRender = [];\n var cacheKey = target || defaultDocument;\n var targetStylesheets = styleCache.get(cacheKey);\n if (!targetStylesheets) {\n targetStylesheets = new Map();\n styleCache.set(cacheKey, targetStylesheets);\n }\n for (var _i = 0, sheets_1 = sheets; _i < sheets_1.length; _i++) {\n var sheet = sheets_1[_i];\n if (!targetStylesheets.has(sheet)) {\n sheetsToRender.push(sheet);\n targetStylesheets.set(sheet, true);\n }\n }\n if (sheetsToRender.length) {\n context.renderStyles(sheetsToRender, context);\n }\n};\n/**\n * Default renderStyles implementation, which will render the give sheets to the contextual\n * target.\n */\nvar renderStyles = function (sheets, context) {\n var target = context.target;\n if (sheets.length && target) {\n var styleElement = target.createElement('style');\n styleElement.textContent = sheets.join('');\n target.head.appendChild(styleElement);\n }\n};\n// Shared stylesheet context, providing the registration function and target document.\nexport var StylesheetContext = React.createContext({\n registerStyles: registerStyles,\n renderStyles: renderStyles,\n target: typeof window === 'object' ? window.document : undefined,\n styleCache: new WeakMap(),\n});\n//# sourceMappingURL=StylesheetContext.js.map","import * as React from 'react';\nexport var ThemeContext = React.createContext(undefined);\n//# sourceMappingURL=ThemeContext.js.map","export var tokensToStyleObject = function (tokens, prefix, style) {\n if (style === void 0) { style = {}; }\n var hasCheckedObject = false;\n if (tokens) {\n for (var _i = 0, _a = Object.keys(tokens); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n // On the first token property, check if this object has already been tokenized.\n if (!hasCheckedObject) {\n if (name_1.indexOf('--') === 0) {\n return tokens;\n }\n hasCheckedObject = true;\n }\n var varName = prefix ? \"\" + prefix + (name_1 === 'default' ? '' : '-' + name_1) : \"--\" + name_1;\n var varValue = tokens[name_1];\n if (varValue && typeof varValue === 'object') {\n tokensToStyleObject(varValue, varName, style);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n style[varName] = varValue;\n }\n }\n }\n return style;\n};\n//# sourceMappingURL=tokensToStyleObject.js.map","import * as React from 'react';\nimport { css } from '@uifabric/utilities';\nimport { useDocument } from '@fluentui/react-window-provider';\nimport { makeStyles } from './makeStyles';\nimport { tokensToStyleObject } from './tokensToStyleObject';\nvar useThemeProviderStyles = makeStyles(function (theme) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\n var tokens = theme.tokens;\n var tokenStyles = tokensToStyleObject(tokens);\n return {\n root: tokenStyles,\n body: [\n {\n color: (_c = (_b = (_a = tokens) === null || _a === void 0 ? void 0 : _a.color) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.contentColor,\n background: (_f = (_e = (_d = tokens) === null || _d === void 0 ? void 0 : _d.color) === null || _e === void 0 ? void 0 : _e.body) === null || _f === void 0 ? void 0 : _f.background,\n fontFamily: (_h = (_g = tokens) === null || _g === void 0 ? void 0 : _g.body) === null || _h === void 0 ? void 0 : _h.fontFamily,\n fontWeight: (_k = (_j = tokens) === null || _j === void 0 ? void 0 : _j.body) === null || _k === void 0 ? void 0 : _k.fontWeight,\n fontSize: (_m = (_l = tokens) === null || _l === void 0 ? void 0 : _l.body) === null || _m === void 0 ? void 0 : _m.fontSize,\n MozOsxFontSmoothing: (_p = (_o = tokens) === null || _o === void 0 ? void 0 : _o.body) === null || _p === void 0 ? void 0 : _p.mozOsxFontSmoothing,\n WebkitFontSmoothing: (_r = (_q = tokens) === null || _q === void 0 ? void 0 : _q.body) === null || _r === void 0 ? void 0 : _r.webkitFontSmoothing,\n },\n ],\n };\n});\n/**\n * Hook to add class to body element.\n */\nfunction useApplyClassToBody(state, classesToApply) {\n var _a;\n var applyTo = state.applyTo;\n var applyToBody = applyTo === 'body';\n var body = (_a = useDocument()) === null || _a === void 0 ? void 0 : _a.body;\n React.useEffect(function () {\n if (!applyToBody || !body) {\n return;\n }\n for (var _i = 0, classesToApply_1 = classesToApply; _i < classesToApply_1.length; _i++) {\n var classToApply = classesToApply_1[_i];\n if (classToApply) {\n body.classList.add(classToApply);\n }\n }\n return function () {\n if (!applyToBody || !body) {\n return;\n }\n for (var _i = 0, classesToApply_2 = classesToApply; _i < classesToApply_2.length; _i++) {\n var classToApply = classesToApply_2[_i];\n if (classToApply) {\n body.classList.remove(classToApply);\n }\n }\n };\n }, [applyToBody, body, classesToApply]);\n}\nexport function useThemeProviderClasses(state) {\n var classes = useThemeProviderStyles(state);\n var className = state.className, applyTo = state.applyTo;\n useApplyClassToBody(state, [classes.root, classes.body]);\n state.className = css(className, classes.root, applyTo === 'element' && classes.body);\n}\n//# sourceMappingURL=useThemeProviderClasses.js.map","import * as React from 'react';\nimport { renderThemeProvider as render } from './renderThemeProvider';\nimport { makeMergeProps } from '@fluentui/react-compose/lib/next/index';\nimport { useThemeProviderState } from './useThemeProviderState';\nimport { useMergedRefs } from '@uifabric/react-hooks';\nvar mergeProps = makeMergeProps();\n/**\n * Returns the ThemeProvider render function and calculated state, given user input, ref, and\n * a set of default prop values.\n */\nexport var useThemeProvider = function (props, ref, defaultProps) {\n var rootRef = useMergedRefs(ref, React.useRef(null));\n var state = mergeProps({\n ref: rootRef,\n as: 'div',\n }, defaultProps, props);\n // Apply changes to state.\n useThemeProviderState(state);\n return {\n state: state,\n render: render,\n };\n};\n//# sourceMappingURL=useThemeProvider.js.map","import { __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@uifabric/utilities';\n/**\n * Helper which deep clones props, but respectively assigns JSX, object refs, and class names\n * appropriately.\n *\n * @param target - the target object to merge onto.\n * @param propSets - one or more prop sets to deep merge onto the target.\n */\nexport var makeMergeProps = function (options) {\n if (options === void 0) { options = {}; }\n var deepMerge = __spreadArrays((options.deepMerge || []), ['style']);\n var mergeProps = function (target) {\n var propSets = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n propSets[_i - 1] = arguments[_i];\n }\n for (var _a = 0, propSets_1 = propSets; _a < propSets_1.length; _a++) {\n var props = propSets_1[_a];\n if (props) {\n for (var _b = 0, _c = Object.keys(props); _b < _c.length; _b++) {\n var propName = _c[_b];\n var propValue = props[propName];\n var propValueType = typeof propValue;\n if (propValue !== undefined) {\n if (propValue && propValueType === 'object') {\n if (Array.isArray(propValue)) {\n // for arrays, replace.\n target[propName] = propValue;\n }\n else {\n target[propName] = target[propName] || {};\n if (typeof target[propName] !== 'object' ||\n React.isValidElement(propValue) ||\n (propValue && typeof propValue === 'object' && propValue.hasOwnProperty('current')) ||\n deepMerge.indexOf(propName) === -1) {\n // if target is not an object, or value is JSX, or a ref object, replace\n target[propName] = propValue;\n }\n else {\n // else deep merge.\n mergeProps(target[propName], propValue);\n }\n }\n }\n else if (propName === 'className') {\n if (propValue) {\n // for classnames, append\n target[propName] = css(target[propName], propValue);\n }\n }\n else {\n target[propName] = propValue;\n }\n }\n }\n }\n }\n return target;\n };\n return mergeProps;\n};\n//# sourceMappingURL=makeMergeProps.js.map","import * as React from 'react';\nimport { useThemeProviderClasses } from './useThemeProviderClasses';\nimport { useThemeProvider } from './useThemeProvider';\nimport { mergeStylesRenderer } from './styleRenderers/mergeStylesRenderer';\nimport { useStylesheet } from '@fluentui/react-stylesheets';\nimport { useFocusRects } from '@uifabric/utilities';\n/**\n * ThemeProvider, used for providing css variables and registering stylesheets.\n */\nexport var ThemeProvider = React.forwardRef(function (props, ref) {\n var _a = useThemeProvider(props, ref, {\n // The renderer default value is required to be defined, so if you're recomposing\n // this component, be sure to do so.\n renderer: mergeStylesRenderer,\n applyTo: 'element',\n }), render = _a.render, state = _a.state;\n // Register stylesheets as needed.\n useStylesheet(state.theme.stylesheets);\n // Render styles.\n useThemeProviderClasses(state);\n // Apply focus rect class on key presses.\n useFocusRects(state.ref);\n // Return the rendered content.\n return render(state);\n});\nThemeProvider.displayName = 'ThemeProvider';\n//# sourceMappingURL=ThemeProvider.js.map","import * as React from 'react';\nimport { StylesheetContext } from './StylesheetContext';\n/**\n * A hook for providing a stylesheet or array of stylesheets. Can be used standalone\n * or with the `StylesheetProvider` component to direct styles to be registered to a\n * different target such as a child window or as a string in SSR scenarios.\n */\nexport var useStylesheet = function (sheets) {\n var context = React.useContext(StylesheetContext);\n context.registerStyles(sheets, context);\n};\n//# sourceMappingURL=useStylesheet.js.map","import { merge } from '@uifabric/utilities';\n/**\n * Get tokens from theme object.\n */\nexport function getTokens(theme, userTokens) {\n var fonts = theme.fonts;\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var preparedTokens = merge({\n color: {\n body: {\n background: semanticColors.bodyBackground,\n contentColor: semanticColors.bodyText,\n },\n // accent is currently only mapped for primary button to use.\n brand: {\n background: semanticColors.primaryButtonBackground,\n borderColor: semanticColors.primaryButtonBorder,\n contentColor: semanticColors.primaryButtonText,\n iconColor: palette.white,\n dividerColor: palette.white,\n secondaryContentColor: palette.white,\n hovered: {\n background: semanticColors.primaryButtonBackgroundHovered,\n contentColor: semanticColors.primaryButtonTextHovered,\n secondaryContentColor: palette.white,\n borderColor: 'var(--color-brand-borderColor)',\n },\n pressed: {\n background: semanticColors.primaryButtonBackgroundPressed,\n contentColor: semanticColors.primaryButtonTextPressed,\n secondaryContentColor: semanticColors.primaryButtonTextPressed,\n borderColor: 'var(--color-brand-borderColor)',\n iconColor: 'var(--color-brand-iconColor)',\n },\n focused: {\n background: 'var(--color-brand-background)',\n borderColor: 'var(--color-brand-borderColor)',\n contentColor: 'var(--color-brand-contentColor)',\n iconColor: 'var(--color-brand-iconColor)',\n secondaryContentColor: 'var(--color-brand-focused-contentColor)',\n },\n disabled: {\n background: semanticColors.primaryButtonBackgroundDisabled,\n contentColor: semanticColors.buttonTextDisabled,\n dividerColor: palette.neutralTertiaryAlt,\n secondaryContentColor: 'var(--color-brand-disabled-contentColor)',\n borderColor: 'var(--color-brand-disabled-background)',\n iconColor: 'var(--color-brand-disabled-contentColor)',\n },\n checked: {\n background: semanticColors.primaryButtonBackgroundPressed,\n contentColor: semanticColors.primaryButtonTextPressed,\n iconColor: semanticColors.primaryButtonTextPressed,\n },\n checkedHovered: {\n background: semanticColors.primaryButtonBackgroundPressed,\n contentColor: semanticColors.primaryButtonTextPressed,\n iconColor: semanticColors.primaryButtonTextPressed,\n },\n },\n },\n body: {\n fontFamily: fonts.medium.fontFamily,\n fontWeight: fonts.medium.fontWeight,\n fontSize: fonts.medium.fontSize,\n mozOsxFontSmoothing: fonts.medium.MozOsxFontSmoothing,\n webkitFontSmoothing: fonts.medium.WebkitFontSmoothing,\n },\n // TODO: This will be moved out as a text variant.\n text: {\n variant: {\n caption: {\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '14px',\n },\n body: {\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n },\n subHeadline: {\n fontSize: '16px',\n fontWeight: '600',\n lineHeight: '22px',\n },\n headline: {\n fontSize: '20px',\n fontWeight: '600',\n lineHeight: '28px',\n },\n title3: {\n fontSize: '24px',\n fontWeight: '600',\n lineHeight: '32px',\n },\n title2: {\n fontSize: '28px',\n fontWeight: '600',\n lineHeight: '36px',\n },\n title1: {\n fontSize: '32px',\n fontWeight: '600',\n lineHeight: '40px',\n },\n largeTitle: {\n fontSize: '40px',\n fontWeight: '600',\n lineHeight: '52px',\n },\n display: {\n fontSize: '68px',\n fontWeight: '600',\n lineHeight: '92px',\n },\n },\n },\n }, userTokens);\n return preparedTokens;\n}\n//# sourceMappingURL=getTokens.js.map","import { useTheme } from './useTheme';\nimport { useWindow } from '@fluentui/react-window-provider';\nimport { useStyleRenderer } from './styleRenderers/useStyleRenderer';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar graphGet = function (graphNode, path) {\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var key = path_1[_i];\n graphNode = graphNode.get(key);\n if (!graphNode) {\n return;\n }\n }\n return graphNode;\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar graphSet = function (graphNode, path, value) {\n for (var i = 0; i < path.length - 1; i++) {\n var key = path[i];\n var current = graphNode.get(key);\n if (!current) {\n current = new Map();\n graphNode.set(key, current);\n }\n graphNode = current;\n }\n graphNode.set(path[path.length - 1], value);\n};\n/**\n * Registers a css object, optionally as a function of the theme.\n *\n * @param styleOrFunction - Either a css javascript object, or a function which takes in `ITheme`\n * and returns a css javascript object.\n */\nexport function makeStyles(styleOrFunction) {\n // Create graph of inputs to map to output.\n var graph = new Map();\n return function (options) {\n if (options === void 0) { options = {}; }\n var theme = options.theme, renderer = options.renderer;\n var win = useWindow();\n var contextualTheme = useTheme();\n var contextualRenderer = useStyleRenderer();\n theme = theme || contextualTheme || {};\n renderer = (renderer || contextualRenderer);\n var id = renderer.getId();\n var isStyleFunction = typeof styleOrFunction === 'function';\n var path = isStyleFunction ? [id, win, theme] : [id, win];\n var value = graphGet(graph, path);\n if (!value) {\n var styles = isStyleFunction ? styleOrFunction(theme) : styleOrFunction;\n value = renderer.renderStyles(styles, { targetWindow: win, rtl: !!theme.rtl });\n graphSet(graph, path, value);\n }\n return value;\n };\n}\n//# sourceMappingURL=makeStyles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getSlots } from '@fluentui/react-compose/lib/next/index';\nimport { CustomizerContext } from '@uifabric/utilities';\nimport { ThemeContext } from './ThemeContext';\nimport { StyleRendererContext } from './styleRenderers/useStyleRenderer';\nexport var renderThemeProvider = function (state) {\n var _a = getSlots(state), slots = _a.slots, slotProps = _a.slotProps;\n var theme = state.theme, customizerContext = state.customizerContext;\n return (React.createElement(ThemeContext.Provider, { value: theme },\n React.createElement(StyleRendererContext.Provider, { value: state.renderer },\n React.createElement(CustomizerContext.Provider, { value: customizerContext },\n React.createElement(slots.root, __assign({}, slotProps.root))))));\n};\n//# sourceMappingURL=renderThemeProvider.js.map","import * as React from 'react';\nimport { StyleRendererContext } from './useStyleRenderer';\nimport { Stylesheet, mergeCssSets, fontFace as mergeFontFace, keyframes as mergeKeyframes, } from '@uifabric/merge-styles';\nvar _seed = 0;\nexport var mergeStylesRenderer = {\n reset: function () {\n // If the stylesheet reset call is made, invalidate the cache keys.\n Stylesheet.getInstance().onReset(function () { return _seed++; });\n },\n getId: function () { return _seed; },\n renderStyles: function (styleSet, options) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return mergeCssSets((Array.isArray(styleSet) ? styleSet : [styleSet]), options);\n },\n renderFontFace: function (fontFace, options) {\n return mergeFontFace(fontFace);\n },\n renderKeyframes: function (keyframes) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return mergeKeyframes(keyframes);\n },\n};\nexport var MergeStylesProvider = function (_a) {\n var children = _a.children;\n return (React.createElement(StyleRendererContext.Provider, { value: mergeStylesRenderer }, children));\n};\n//# sourceMappingURL=mergeStylesRenderer.js.map","import * as React from 'react';\nimport { mergeStylesRenderer } from './mergeStylesRenderer';\nexport var StyleRendererContext = React.createContext(mergeStylesRenderer);\nexport var useStyleRenderer = function () { return React.useContext(StyleRendererContext); };\n//# sourceMappingURL=useStyleRenderer.js.map","import { useContext } from 'react';\nimport { useCustomizationSettings } from '@uifabric/utilities';\nimport { createTheme } from '@fluentui/theme';\nimport { ThemeContext } from './ThemeContext';\n/**\n * Get theme from CustomizerContext or Customizations singleton.\n */\nfunction useCompatTheme() {\n return useCustomizationSettings(['theme']).theme;\n}\n/**\n * React hook for programmatically accessing the theme.\n */\nexport var useTheme = function () {\n var theme = useContext(ThemeContext);\n var legacyTheme = useCompatTheme();\n return theme || legacyTheme || createTheme({});\n};\n//# sourceMappingURL=useTheme.js.map","import { mergeThemes } from '@fluentui/theme';\nimport * as React from 'react';\nimport { useTheme } from './useTheme';\nimport { getId } from '@uifabric/utilities';\nimport { getTokens } from './getTokens';\nvar themeToIdMap = new Map();\nvar getThemeId = function () {\n var themes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n themes[_i] = arguments[_i];\n }\n var ids = [];\n for (var _a = 0, themes_1 = themes; _a < themes_1.length; _a++) {\n var theme = themes_1[_a];\n if (theme) {\n var id = theme.id || themeToIdMap.get(theme);\n if (!id) {\n id = getId('');\n themeToIdMap.set(theme, id);\n }\n ids.push(id);\n }\n }\n return ids.join('-');\n};\nexport var useThemeProviderState = function (draftState) {\n var userTheme = draftState.theme;\n // Pull contextual theme.\n var parentTheme = useTheme();\n // Update the incoming theme with a memoized version of the merged theme.\n var theme = (draftState.theme = React.useMemo(function () {\n var _a;\n var mergedTheme = mergeThemes(parentTheme, userTheme);\n mergedTheme.tokens = getTokens(mergedTheme, (_a = userTheme) === null || _a === void 0 ? void 0 : _a.tokens);\n mergedTheme.id = getThemeId(parentTheme, userTheme);\n return mergedTheme;\n }, [parentTheme, userTheme]));\n draftState.customizerContext = React.useMemo(function () { return ({\n customizations: {\n inCustomizerContext: true,\n settings: { theme: theme },\n scopedSettings: theme.components || {},\n },\n }); }, [theme]);\n if (draftState.theme.rtl !== parentTheme.rtl) {\n draftState.dir = draftState.theme.rtl ? 'rtl' : 'ltr';\n }\n};\n//# sourceMappingURL=useThemeProviderState.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as React from 'react';\n/**\n * Context for providing the window.\n */\nexport var WindowContext = React.createContext({\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","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n _win = window;\n}\ncatch (e) {\n /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var packages = (_win.__packages__ = _win.__packages__ || {});\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n var versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n//# sourceMappingURL=setVersion.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@fluentui/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react', '8.122.8');\n//# sourceMappingURL=version.js.map","import { createTheme } from './createTheme';\nexport var FluentTheme = createTheme({});\n//# sourceMappingURL=FluentTheme.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","export var CommunicationColors;\n(function (CommunicationColors) {\n CommunicationColors.shade30 = '#004578';\n CommunicationColors.shade20 = '#005a9e';\n CommunicationColors.shade10 = '#106ebe';\n CommunicationColors.primary = '#0078d4';\n CommunicationColors.tint10 = '#2b88d8';\n CommunicationColors.tint20 = '#c7e0f4';\n CommunicationColors.tint30 = '#deecf9';\n CommunicationColors.tint40 = '#eff6fc';\n})(CommunicationColors || (CommunicationColors = {}));\nexport var NeutralColors;\n(function (NeutralColors) {\n NeutralColors.black = '#000000';\n NeutralColors.gray220 = '#11100f';\n NeutralColors.gray210 = '#161514';\n NeutralColors.gray200 = '#1b1a19';\n NeutralColors.gray190 = '#201f1e';\n NeutralColors.gray180 = '#252423';\n NeutralColors.gray170 = '#292827';\n NeutralColors.gray160 = '#323130';\n NeutralColors.gray150 = '#3b3a39';\n NeutralColors.gray140 = '#484644';\n NeutralColors.gray130 = '#605e5c';\n NeutralColors.gray120 = '#797775';\n NeutralColors.gray110 = '#8a8886';\n NeutralColors.gray100 = '#979593';\n NeutralColors.gray90 = '#a19f9d';\n NeutralColors.gray80 = '#b3b0ad';\n NeutralColors.gray70 = '#bebbb8';\n NeutralColors.gray60 = '#c8c6c4';\n NeutralColors.gray50 = '#d2d0ce';\n NeutralColors.gray40 = '#e1dfdd';\n NeutralColors.gray30 = '#edebe9';\n NeutralColors.gray20 = '#f3f2f1';\n NeutralColors.gray10 = '#faf9f8';\n NeutralColors.white = '#ffffff';\n})(NeutralColors || (NeutralColors = {}));\nexport var SharedColors;\n(function (SharedColors) {\n SharedColors.pinkRed10 = '#750b1c';\n SharedColors.red20 = '#a4262c';\n SharedColors.red10 = '#d13438';\n SharedColors.redOrange20 = '#603d30';\n SharedColors.redOrange10 = '#da3b01';\n SharedColors.orange30 = '#8e562e';\n SharedColors.orange20 = '#ca5010';\n SharedColors.orange10 = '#ffaa44';\n SharedColors.yellow10 = '#fce100';\n SharedColors.orangeYellow20 = '#986f0b';\n SharedColors.orangeYellow10 = '#c19c00';\n SharedColors.yellowGreen10 = '#8cbd18';\n SharedColors.green20 = '#0b6a0b';\n SharedColors.green10 = '#498205';\n SharedColors.greenCyan10 = '#00ad56';\n SharedColors.cyan40 = '#005e50';\n SharedColors.cyan30 = '#005b70';\n SharedColors.cyan20 = '#038387';\n SharedColors.cyan10 = '#00b7c3';\n SharedColors.cyanBlue20 = '#004e8c';\n SharedColors.cyanBlue10 = '#0078d4';\n SharedColors.blue10 = '#4f6bed';\n SharedColors.blueMagenta40 = '#373277';\n SharedColors.blueMagenta30 = '#5c2e91';\n SharedColors.blueMagenta20 = '#8764b8';\n SharedColors.blueMagenta10 = '#8378de';\n SharedColors.magenta20 = '#881798';\n SharedColors.magenta10 = '#c239b3';\n SharedColors.magentaPink20 = '#9b0062';\n SharedColors.magentaPink10 = '#e3008c';\n SharedColors.gray40 = '#393939';\n SharedColors.gray30 = '#7a7574';\n SharedColors.gray20 = '#69797e';\n SharedColors.gray10 = '#a0aeb2';\n})(SharedColors || (SharedColors = {}));\n//# sourceMappingURL=FluentColors.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n if (theme === void 0) { theme = {}; }\n if (depComments === void 0) { depComments = false; }\n var isInverted = !!theme.isInverted;\n var baseTheme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted: isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","export var Depths;\n(function (Depths) {\n Depths.depth0 = '0 0 0 0 transparent';\n Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","import { fontFace } from '@uifabric/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@uifabric/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://static2.sharepointonline.com/files/fabric/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage('sessionStorage'));\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n fontFamily = \"'\" + fontFamily + \"'\";\n var localFontSrc = localFontName !== undefined ? \"local('\" + localFontName + \"'),\" : '';\n fontFace({\n fontFamily: fontFamily,\n src: localFontSrc + (\"url('\" + url + \".woff2') format('woff2'),\") + (\"url('\" + url + \".woff') format('woff')\"),\n fontWeight: fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n var urlBase = baseUrl + \"/\" + cdnFolder + \"/\" + cdnFontName;\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n if (baseUrl) {\n var fontUrl = baseUrl + \"/fonts\";\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-semilight\", FontWeights.light);\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-bold\", FontWeights.semibold);\n }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n var _a, _b, _c;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n return _c = (_b = fabricConfig) === null || _b === void 0 ? void 0 : _b.fontBaseUrl, (_c !== null && _c !== void 0 ? _c : DefaultBaseUrl);\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n LocalizedFontNames.Thai = 'Leelawadee UI Web';\n LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n LocalizedFontNames.Selawik = 'Selawik Web';\n LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n LocalizedFontFamilies.Arabic = \"'\" + LocalizedFontNames.Arabic + \"'\";\n LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n LocalizedFontFamilies.Cyrillic = \"'\" + LocalizedFontNames.Cyrillic + \"'\";\n LocalizedFontFamilies.EastEuropean = \"'\" + LocalizedFontNames.EastEuropean + \"'\";\n LocalizedFontFamilies.Greek = \"'\" + LocalizedFontNames.Greek + \"'\";\n LocalizedFontFamilies.Hebrew = \"'\" + LocalizedFontNames.Hebrew + \"'\";\n LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n LocalizedFontFamilies.Selawik = \"'\" + LocalizedFontNames.Selawik + \"'\";\n LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n LocalizedFontFamilies.Vietnamese = \"'\" + LocalizedFontNames.Vietnamese + \"'\";\n LocalizedFontFamilies.WestEuropean = \"'\" + LocalizedFontNames.WestEuropean + \"'\";\n LocalizedFontFamilies.Armenian = \"'\" + LocalizedFontNames.Armenian + \"'\";\n LocalizedFontFamilies.Georgian = \"'\" + LocalizedFontNames.Georgian + \"'\";\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n FontSizes.size10 = '10px';\n FontSizes.size12 = '12px';\n FontSizes.size14 = '14px';\n FontSizes.size16 = '16px';\n FontSizes.size18 = '18px';\n FontSizes.size20 = '20px';\n FontSizes.size24 = '24px';\n FontSizes.size28 = '28px';\n FontSizes.size32 = '32px';\n FontSizes.size42 = '42px';\n FontSizes.size68 = '68px';\n FontSizes.mini = '10px';\n FontSizes.xSmall = '10px';\n FontSizes.small = '12px';\n FontSizes.smallPlus = '12px';\n FontSizes.medium = '14px';\n FontSizes.mediumPlus = '16px';\n FontSizes.icon = '16px';\n FontSizes.large = '18px';\n FontSizes.xLarge = '20px';\n FontSizes.xLargePlus = '24px';\n FontSizes.xxLarge = '28px';\n FontSizes.xxLargePlus = '32px';\n FontSizes.superLarge = '42px';\n FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n FontWeights.light = 100;\n FontWeights.semilight = 300;\n FontWeights.regular = 400;\n FontWeights.semibold = 600;\n FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n IconFontSizes.xSmall = '10px';\n IconFontSizes.small = '12px';\n IconFontSizes.medium = '16px';\n IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\" + LocalizedFontNames.WestEuropean + \"'\";\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n return fontFamily + \", \" + FontFamilyFallbacks;\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n for (var lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return LanguageToFontMap[lang];\n }\n }\n return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\nexport function createFontStyles(localeCode) {\n var localizedFont = _getLocalizedFontFamily(localeCode);\n var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n var fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { merge } from '@uifabric/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n if (partialTheme === void 0) { partialTheme = {}; }\n var _a, _b, _c, _d;\n var mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n });\n if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n if (partialTheme.defaultFontStyle) {\n for (var _i = 0, _e = Object.keys(mergedTheme.fonts); _i < _e.length; _i++) {\n var fontStyle = _e[_i];\n mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_d = (_c = partialTheme) === null || _c === void 0 ? void 0 : _c.fonts) === null || _d === void 0 ? void 0 : _d[fontStyle]);\n }\n }\n if (partialTheme.stylesheets) {\n mergedTheme.stylesheets = (theme.stylesheets || []).concat(partialTheme.stylesheets);\n }\n return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","import { keyframes } from '@uifabric/merge-styles';\n/* Register the keyframes */\nvar EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nvar EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nvar DURATION_1 = '0.167s';\nvar DURATION_2 = '0.267s';\nvar DURATION_3 = '0.367s';\nvar DURATION_4 = '0.467s';\nvar FADE_IN = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\nvar FADE_OUT = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\nvar SLIDE_RIGHT_IN10 = _createSlideInX(-10);\nvar SLIDE_RIGHT_IN20 = _createSlideInX(-20);\nvar SLIDE_RIGHT_IN40 = _createSlideInX(-40);\nvar SLIDE_RIGHT_IN400 = _createSlideInX(-400);\nvar SLIDE_LEFT_IN10 = _createSlideInX(10);\nvar SLIDE_LEFT_IN20 = _createSlideInX(20);\nvar SLIDE_LEFT_IN40 = _createSlideInX(40);\nvar SLIDE_LEFT_IN400 = _createSlideInX(400);\nvar SLIDE_UP_IN10 = _createSlideInY(10);\nvar SLIDE_UP_IN20 = _createSlideInY(20);\nvar SLIDE_DOWN_IN10 = _createSlideInY(-10);\nvar SLIDE_DOWN_IN20 = _createSlideInY(-20);\nvar SLIDE_RIGHT_OUT10 = _createSlideOutX(10);\nvar SLIDE_RIGHT_OUT20 = _createSlideOutX(20);\nvar SLIDE_RIGHT_OUT40 = _createSlideOutX(40);\nvar SLIDE_RIGHT_OUT400 = _createSlideOutX(400);\nvar SLIDE_LEFT_OUT10 = _createSlideOutX(-10);\nvar SLIDE_LEFT_OUT20 = _createSlideOutX(-20);\nvar SLIDE_LEFT_OUT40 = _createSlideOutX(-40);\nvar SLIDE_LEFT_OUT400 = _createSlideOutX(-400);\nvar SLIDE_UP_OUT10 = _createSlideOutY(-10);\nvar SLIDE_UP_OUT20 = _createSlideOutY(-20);\nvar SLIDE_DOWN_OUT10 = _createSlideOutY(10);\nvar SLIDE_DOWN_OUT20 = _createSlideOutY(20);\nvar SCALE_UP100 = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_DOWN98 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\nvar SCALE_DOWN100 = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_UP103 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\nvar ROTATE90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\nvar ROTATE_N90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport var AnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport var AnimationStyles = {\n slideRightIn10: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN10, DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN20, DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN40, DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN400, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN10, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN20, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN40, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN400, DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(FADE_IN + \",\" + SLIDE_UP_IN10, DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(FADE_IN + \",\" + SLIDE_UP_IN20, DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(FADE_IN + \",\" + SLIDE_DOWN_IN10, DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(FADE_IN + \",\" + SLIDE_DOWN_IN20, DURATION_3, EASING_FUNCTION_1),\n slideRightOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT40, DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT400, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT40, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT400, DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_UP_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_UP_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_DOWN_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_DOWN_OUT20, DURATION_3, EASING_FUNCTION_1),\n scaleUpIn100: _createAnimation(FADE_IN + \",\" + SCALE_UP100, DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(FADE_IN + \",\" + SCALE_DOWN100, DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(FADE_OUT + \",\" + SCALE_UP103, DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(FADE_OUT + \",\" + SCALE_DOWN98, DURATION_1, EASING_FUNCTION_2),\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n};\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n return {\n animationName: animationName,\n animationDuration: animationDuration,\n animationTimingFunction: animationTimingFunction,\n animationFillMode: 'both',\n };\n}\nfunction _createSlideInX(fromX) {\n return keyframes({\n from: { transform: \"translate3d(\" + fromX + \"px,0,0)\", pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideInY(fromY) {\n return keyframes({\n from: { transform: \"translate3d(0,\" + fromY + \"px,0)\", pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideOutX(toX) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(\" + toX + \"px,0,0)\" },\n });\n}\nfunction _createSlideOutY(toY) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(0,\" + toY + \"px,0)\" },\n });\n}\n//# sourceMappingURL=AnimationStyles.js.map","import { keyframes } from '@uifabric/merge-styles';\nvar fadeInAnimationName = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\nvar fadeOutAnimationName = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0 },\n});\nvar scaleDownInAnimationName = keyframes({\n from: { transform: 'scale3d(1.15, 1.15, 1)' },\n to: { transform: 'scale3d(1, 1, 1)' },\n});\nvar scaleDownOutAnimationName = keyframes({\n from: { transform: 'scale3d(1, 1, 1)' },\n to: { transform: 'scale3d(0.9, 0.9, 1)' },\n});\nvar slideLeftOutAnimationName = keyframes({\n from: { transform: 'translate3d(0, 0, 0)' },\n to: { transform: 'translate3d(-48px, 0, 0)' },\n});\nvar slideRightOutAnimationName = keyframes({\n from: { transform: 'translate3d(0, 0, 0)' },\n to: { transform: 'translate3d(48px, 0, 0)' },\n});\nvar slideLeftInAnimationName = keyframes({\n from: { transform: 'translate3d(48px, 0, 0)' },\n to: { transform: 'translate3d(0, 0, 0)' },\n});\nvar slideRightInAnimationName = keyframes({\n from: { transform: 'translate3d(-48px, 0, 0)' },\n to: { transform: 'translate3d(0, 0, 0)' },\n});\nvar slideUpOutAnimationName = keyframes({\n from: { transform: 'translate3d(0, 0, 0)' },\n to: { transform: 'translate3d(0, -48px, 0)' },\n});\nvar slideDownOutAnimationName = keyframes({\n from: { transform: 'translate3d(0, 0, 0)' },\n to: { transform: 'translate3d(0, 48px, 0)' },\n});\nvar slideUpInAnimationName = keyframes({\n from: { transform: 'translate3d(0, 48px, 0)' },\n to: { transform: 'translate3d(0, 0, 0)' },\n});\nvar slideDownInAnimationName = keyframes({\n from: { transform: 'translate3d(0, -48px, 0)' },\n to: { transform: 'translate3d(0, 0, 0)' },\n});\nexport var MotionDurations;\n(function (MotionDurations) {\n MotionDurations.duration1 = '100ms';\n MotionDurations.duration2 = '200ms';\n MotionDurations.duration3 = '300ms';\n MotionDurations.duration4 = '400ms';\n})(MotionDurations || (MotionDurations = {}));\nexport var MotionTimings;\n(function (MotionTimings) {\n MotionTimings.accelerate = 'cubic-bezier(0.9, 0.1, 1, 0.2)';\n MotionTimings.decelerate = 'cubic-bezier(0.1, 0.9, 0.2, 1)';\n MotionTimings.linear = 'cubic-bezier(0, 0, 1, 1)';\n MotionTimings.standard = 'cubic-bezier(0.8, 0, 0.2, 1)';\n})(MotionTimings || (MotionTimings = {}));\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n return animationName + \" \" + animationDuration + \" \" + animationTimingFunction;\n}\nexport var MotionAnimations;\n(function (MotionAnimations) {\n MotionAnimations.fadeIn = _createAnimation(fadeInAnimationName, MotionDurations.duration1, MotionTimings.linear);\n MotionAnimations.fadeOut = _createAnimation(fadeOutAnimationName, MotionDurations.duration1, MotionTimings.linear);\n MotionAnimations.scaleDownIn = _createAnimation(scaleDownInAnimationName, MotionDurations.duration3, MotionTimings.decelerate);\n MotionAnimations.scaleDownOut = _createAnimation(scaleDownOutAnimationName, MotionDurations.duration3, MotionTimings.decelerate);\n MotionAnimations.slideLeftOut = _createAnimation(slideLeftOutAnimationName, MotionDurations.duration1, MotionTimings.accelerate);\n MotionAnimations.slideRightOut = _createAnimation(slideRightOutAnimationName, MotionDurations.duration1, MotionTimings.accelerate);\n MotionAnimations.slideLeftIn = _createAnimation(slideLeftInAnimationName, MotionDurations.duration1, MotionTimings.decelerate);\n MotionAnimations.slideRightIn = _createAnimation(slideRightInAnimationName, MotionDurations.duration1, MotionTimings.decelerate);\n MotionAnimations.slideUpOut = _createAnimation(slideUpOutAnimationName, MotionDurations.duration1, MotionTimings.accelerate);\n MotionAnimations.slideDownOut = _createAnimation(slideDownOutAnimationName, MotionDurations.duration1, MotionTimings.accelerate);\n MotionAnimations.slideUpIn = _createAnimation(slideUpInAnimationName, MotionDurations.duration1, MotionTimings.decelerate);\n MotionAnimations.slideDownIn = _createAnimation(slideDownInAnimationName, MotionDurations.duration1, MotionTimings.decelerate);\n})(MotionAnimations || (MotionAnimations = {}));\n//# sourceMappingURL=FluentMotion.js.map","export var DefaultSpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var _a, _b, _c;\n var result = {};\n // map palette\n var _d = p || {}, white = _d.white, black = _d.black, themePrimary = _d.themePrimary, themeDark = _d.themeDark, themeDarker = _d.themeDarker, themeDarkAlt = _d.themeDarkAlt, themeLighter = _d.themeLighter, neutralLight = _d.neutralLight, neutralLighter = _d.neutralLighter, neutralDark = _d.neutralDark, neutralQuaternary = _d.neutralQuaternary, neutralQuaternaryAlt = _d.neutralQuaternaryAlt, neutralPrimary = _d.neutralPrimary, neutralSecondary = _d.neutralSecondary, neutralSecondaryAlt = _d.neutralSecondaryAlt, neutralTertiary = _d.neutralTertiary, neutralTertiaryAlt = _d.neutralTertiaryAlt, neutralLighterAlt = _d.neutralLighterAlt, accent = _d.accent;\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = ((_a = s) === null || _a === void 0 ? void 0 : _a.variantBorderHovered) || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n // map effects\n if ((_b = e) === null || _b === void 0 ? void 0 : _b.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && ((_c = e) === null || _c === void 0 ? void 0 : _c.elevation8)) {\n result.cardShadowHovered = e.elevation8;\n }\n else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n result = __assign(__assign({}, result), s);\n return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n // Add @deprecated tag as comment if enabled\n var dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Store the theming state in __themeState__ global scope for reuse in the case of duplicate\n// load-themed-styles hosted on the page.\nvar _root = typeof window === 'undefined' ? global : window; // eslint-disable-line @typescript-eslint/no-explicit-any\n// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).\nvar _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;\nvar _themeState = initializeThemeState();\n/**\n * Matches theming tokens. For example, \"[theme: themeSlotName, default: #FFF]\" (including the quotes).\n */\nvar _themeTokenRegex = /[\\'\\\"]\\[theme:\\s*(\\w+)\\s*(?:\\,\\s*default:\\s*([\\\\\"\\']?[\\.\\,\\(\\)\\#\\-\\s\\w]*[\\.\\,\\(\\)\\#\\-\\w][\\\"\\']?))?\\s*\\][\\'\\\"]/g;\nvar now = function () {\n return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();\n};\nfunction measure(func) {\n var start = now();\n func();\n var end = now();\n _themeState.perf.duration += end - start;\n}\n/**\n * initialize global state object\n */\nfunction initializeThemeState() {\n var state = _root.__themeState__ || {\n theme: undefined,\n lastStyleElement: undefined,\n registeredStyles: []\n };\n if (!state.runState) {\n state = __assign(__assign({}, state), { perf: {\n count: 0,\n duration: 0\n }, runState: {\n flushTimer: 0,\n mode: 0 /* Mode.sync */,\n buffer: []\n } });\n }\n if (!state.registeredThemableStyles) {\n state = __assign(__assign({}, state), { registeredThemableStyles: [] });\n }\n _root.__themeState__ = state;\n return state;\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load\n * event is fired.\n * @param {string | ThemableArray} styles Themable style text to register.\n * @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.\n */\nexport function loadStyles(styles, loadAsync) {\n if (loadAsync === void 0) { loadAsync = false; }\n measure(function () {\n var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);\n var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;\n if (loadAsync || mode === 1 /* Mode.async */) {\n buffer.push(styleParts);\n if (!flushTimer) {\n _themeState.runState.flushTimer = asyncLoadStyles();\n }\n }\n else {\n applyThemableStyles(styleParts);\n }\n });\n}\n/**\n * Allows for customizable loadStyles logic. e.g. for server side rendering application\n * @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}\n * a loadStyles callback that gets called when styles are loaded or reloaded\n */\nexport function configureLoadStyles(loadStylesFn) {\n _themeState.loadStyles = loadStylesFn;\n}\n/**\n * Configure run mode of load-themable-styles\n * @param mode load-themable-styles run mode, async or sync\n */\nexport function configureRunMode(mode) {\n _themeState.runState.mode = mode;\n}\n/**\n * external code can call flush to synchronously force processing of currently buffered styles\n */\nexport function flush() {\n measure(function () {\n var styleArrays = _themeState.runState.buffer.slice();\n _themeState.runState.buffer = [];\n var mergedStyleArray = [].concat.apply([], styleArrays);\n if (mergedStyleArray.length > 0) {\n applyThemableStyles(mergedStyleArray);\n }\n });\n}\n/**\n * register async loadStyles\n */\nfunction asyncLoadStyles() {\n return setTimeout(function () {\n _themeState.runState.flushTimer = 0;\n flush();\n }, 0);\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load event\n * is fired.\n * @param {string} styleText Style to register.\n * @param {IStyleRecord} styleRecord Existing style record to re-apply.\n */\nfunction applyThemableStyles(stylesArray, styleRecord) {\n if (_themeState.loadStyles) {\n _themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);\n }\n else {\n registerStyles(stylesArray);\n }\n}\n/**\n * Registers a set theme tokens to find and replace. If styles were already registered, they will be\n * replaced.\n * @param {theme} theme JSON object of theme tokens to values.\n */\nexport function loadTheme(theme) {\n _themeState.theme = theme;\n // reload styles.\n reloadStyles();\n}\n/**\n * Clear already registered style elements and style records in theme_State object\n * @param option - specify which group of registered styles should be cleared.\n * Default to be both themable and non-themable styles will be cleared\n */\nexport function clearStyles(option) {\n if (option === void 0) { option = 3 /* ClearStyleOptions.all */; }\n if (option === 3 /* ClearStyleOptions.all */ || option === 2 /* ClearStyleOptions.onlyNonThemable */) {\n clearStylesInternal(_themeState.registeredStyles);\n _themeState.registeredStyles = [];\n }\n if (option === 3 /* ClearStyleOptions.all */ || option === 1 /* ClearStyleOptions.onlyThemable */) {\n clearStylesInternal(_themeState.registeredThemableStyles);\n _themeState.registeredThemableStyles = [];\n }\n}\nfunction clearStylesInternal(records) {\n records.forEach(function (styleRecord) {\n var styleElement = styleRecord && styleRecord.styleElement;\n if (styleElement && styleElement.parentElement) {\n styleElement.parentElement.removeChild(styleElement);\n }\n });\n}\n/**\n * Reloads styles.\n */\nfunction reloadStyles() {\n if (_themeState.theme) {\n var themableStyles = [];\n for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {\n var styleRecord = _a[_i];\n themableStyles.push(styleRecord.themableStyle);\n }\n if (themableStyles.length > 0) {\n clearStyles(1 /* ClearStyleOptions.onlyThemable */);\n applyThemableStyles([].concat.apply([], themableStyles));\n }\n }\n}\n/**\n * Find theme tokens and replaces them with provided theme values.\n * @param {string} styles Tokenized styles to fix.\n */\nexport function detokenize(styles) {\n if (styles) {\n styles = resolveThemableArray(splitStyles(styles)).styleString;\n }\n return styles;\n}\n/**\n * Resolves ThemingInstruction objects in an array and joins the result into a string.\n * @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.\n */\nfunction resolveThemableArray(splitStyleArray) {\n var theme = _themeState.theme;\n var themable = false;\n // Resolve the array of theming instructions to an array of strings.\n // Then join the array to produce the final CSS string.\n var resolvedArray = (splitStyleArray || []).map(function (currentValue) {\n var themeSlot = currentValue.theme;\n if (themeSlot) {\n themable = true;\n // A theming annotation. Resolve it.\n var themedValue = theme ? theme[themeSlot] : undefined;\n var defaultValue = currentValue.defaultValue || 'inherit';\n // Warn to console if we hit an unthemed value even when themes are provided, but only if \"DEBUG\" is true.\n // Allow the themedValue to be undefined to explicitly request the default value.\n if (theme &&\n !themedValue &&\n console &&\n !(themeSlot in theme) &&\n typeof DEBUG !== 'undefined' &&\n DEBUG) {\n console.warn(\"Theming value not provided for \\\"\".concat(themeSlot, \"\\\". Falling back to \\\"\").concat(defaultValue, \"\\\".\"));\n }\n return themedValue || defaultValue;\n }\n else {\n // A non-themable string. Preserve it.\n return currentValue.rawString;\n }\n });\n return {\n styleString: resolvedArray.join(''),\n themable: themable\n };\n}\n/**\n * Split tokenized CSS into an array of strings and theme specification objects\n * @param {string} styles Tokenized styles to split.\n */\nexport function splitStyles(styles) {\n var result = [];\n if (styles) {\n var pos = 0; // Current position in styles.\n var tokenMatch = void 0;\n while ((tokenMatch = _themeTokenRegex.exec(styles))) {\n var matchIndex = tokenMatch.index;\n if (matchIndex > pos) {\n result.push({\n rawString: styles.substring(pos, matchIndex)\n });\n }\n result.push({\n theme: tokenMatch[1],\n defaultValue: tokenMatch[2] // May be undefined\n });\n // index of the first character after the current match\n pos = _themeTokenRegex.lastIndex;\n }\n // Push the rest of the string after the last match.\n result.push({\n rawString: styles.substring(pos)\n });\n }\n return result;\n}\n/**\n * Registers a set of style text. If it is registered too early, we will register it when the\n * window.load event is fired.\n * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.\n * @param {IStyleRecord} styleRecord May specify a style Element to update.\n */\nfunction registerStyles(styleArray) {\n if (typeof document === 'undefined') {\n return;\n }\n var head = document.getElementsByTagName('head')[0];\n var styleElement = document.createElement('style');\n var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;\n styleElement.setAttribute('data-load-themed-styles', 'true');\n if (_styleNonce) {\n styleElement.setAttribute('nonce', _styleNonce);\n }\n styleElement.appendChild(document.createTextNode(styleString));\n _themeState.perf.count++;\n head.appendChild(styleElement);\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('styleinsert', true /* bubbleEvent */, false /* cancelable */);\n ev.args = {\n newStyle: styleElement\n };\n document.dispatchEvent(ev);\n var record = {\n styleElement: styleElement,\n themableStyle: styleArray\n };\n if (themable) {\n _themeState.registeredThemableStyles.push(record);\n }\n else {\n _themeState.registeredStyles.push(record);\n }\n}\n//# sourceMappingURL=index.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSets } from '@uifabric/styling';\nimport { Customizations, CustomizerContext } from '@uifabric/utilities';\nimport { createFactory } from './slots';\nimport { assign } from './utilities';\n/**\n * Assembles a higher order component based on the following: styles, theme, view, and state.\n * Imposes a separation of concern and centralizes styling processing to increase ease of use and robustness\n * in how components use and apply styling and theming.\n *\n * Automatically merges and applies themes and styles with theme / styleprops having the highest priority.\n * State component, if provided, is passed in props for processing. Props from state / user are automatically processed\n * and styled before finally being passed to view.\n *\n * State components should contain all stateful behavior and should not generate any JSX, but rather simply call\n * the view prop.\n *\n * Views should simply be stateless pure functions that receive all props needed for rendering their output.\n *\n * State component is optional. If state is not provided, created component is essentially a functional\n * stateless component.\n *\n * @param options - component Component options. See IComponentOptions for more detail.\n */\nexport function createComponent(view, options) {\n if (options === void 0) { options = {}; }\n var _a = options.factoryOptions, factoryOptions = _a === void 0 ? {} : _a;\n var defaultProp = factoryOptions.defaultProp;\n var ResultComponent = function (componentProps) {\n var settings = _getCustomizations(options.displayName, React.useContext(CustomizerContext), options.fields);\n var stateReducer = options.state;\n if (stateReducer) {\n // Don't assume state will return all props, so spread useState result over component props.\n componentProps = __assign(__assign({}, componentProps), stateReducer(componentProps));\n }\n var theme = componentProps.theme || settings.theme;\n var tokens = _resolveTokens(componentProps, theme, options.tokens, settings.tokens, componentProps.tokens);\n var styles = _resolveStyles(componentProps, theme, tokens, options.styles, settings.styles, componentProps.styles);\n var viewProps = __assign(__assign({}, componentProps), { styles: styles,\n tokens: tokens, _defaultStyles: styles, theme: theme });\n return view(viewProps);\n };\n ResultComponent.displayName = options.displayName || view.name;\n // If a shorthand prop is defined, create a factory for the component.\n // TODO: This shouldn't be a concern of createComponent.. factoryOptions should just be forwarded.\n // Need to weigh creating default factories on component creation vs. memoizing them on use in slots.tsx.\n if (defaultProp) {\n ResultComponent.create = createFactory(ResultComponent, { defaultProp: defaultProp });\n }\n assign(ResultComponent, options.statics);\n // Later versions of TypeSript should allow us to merge objects in a type safe way and avoid this cast.\n return ResultComponent;\n}\n/**\n * Resolve all styles functions with both props and tokens and flatten results along with all styles objects.\n */\nfunction _resolveStyles(props, theme, tokens) {\n var allStyles = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n allStyles[_i - 3] = arguments[_i];\n }\n return concatStyleSets.apply(void 0, allStyles.map(function (styles) {\n return typeof styles === 'function' ? styles(props, theme, tokens) : styles;\n }));\n}\n/**\n * Resolve all tokens functions with props flatten results along with all tokens objects.\n */\nfunction _resolveTokens(props, theme) {\n var allTokens = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n allTokens[_i - 2] = arguments[_i];\n }\n var tokens = {};\n for (var _a = 0, allTokens_1 = allTokens; _a < allTokens_1.length; _a++) {\n var currentTokens = allTokens_1[_a];\n if (currentTokens) {\n // TODO: why is this cast needed? TS seems to think there is a (TToken | Function) union from somewhere.\n currentTokens =\n typeof currentTokens === 'function'\n ? currentTokens(props, theme)\n : currentTokens;\n if (Array.isArray(currentTokens)) {\n currentTokens = _resolveTokens.apply(void 0, __spreadArrays([props, theme], currentTokens));\n }\n assign(tokens, currentTokens);\n }\n }\n return tokens;\n}\n/**\n * Helper function for calling Customizations.getSettings falling back to default fields.\n *\n * @param displayName Displayable name for component.\n * @param context React context passed to component containing contextual settings.\n * @param fields Optional list of properties to grab from global store and context.\n */\nfunction _getCustomizations(displayName, context, fields) {\n // TODO: do we want field props? should fields be part of IComponent and used here?\n // TODO: should we centrally define DefaultFields? (not exported from styling)\n // TODO: tie this array to ICustomizationProps, such that each array element is keyof ICustomizationProps\n var DefaultFields = ['theme', 'styles', 'tokens'];\n return Customizations.getSettings(fields || DefaultFields, displayName, context.customizations);\n}\n//# sourceMappingURL=createComponent.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { mergeCss } from '@uifabric/merge-styles';\nimport { getRTL, memoizeFunction } from '@uifabric/utilities';\nimport { assign } from './utilities';\n/**\n * This function is required for any module that uses slots.\n *\n * This function is a slot resolver that automatically evaluates slot functions to generate React elements.\n * A byproduct of this resolver is that it removes slots from the React hierarchy by bypassing React.createElement.\n *\n * To use this function on a per-file basis, use the jsx directive targeting withSlots.\n * This directive must be the FIRST LINE in the file to work correctly.\n * Usage of this pragma also requires withSlots import statement.\n *\n * See React.createElement\n */\n// Can't use typeof on React.createElement since it's overloaded. Approximate createElement's signature for now\n// and widen as needed.\nexport function withSlots(type, props) {\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var slotType = type;\n if (slotType.isSlot) {\n // Since we are bypassing createElement, use React.Children.toArray to make sure children are\n // properly assigned keys.\n // TODO: should this be mutating? does React mutate children subprop with createElement?\n // TODO: will toArray clobber existing keys?\n // TODO: React generates warnings because it doesn't detect hidden member _store that is set in createElement.\n // Even children passed to createElement without keys don't generate this warning.\n // Is there a better way to prevent slots from appearing in hierarchy? toArray doesn't address root issue.\n children = React.Children.toArray(children);\n // TODO: There is something weird going on here with children embedded in props vs. rest args.\n // Comment out these lines to see. Make sure this function is doing the right things.\n if (children.length === 0) {\n return slotType(props);\n }\n return slotType(__assign(__assign({}, props), { children: children }));\n }\n else {\n // TODO: Are there some cases where children should NOT be spread? Also, spreading reraises perf question.\n // Children had to be spread to avoid breaking KeytipData in Toggle.view:\n // react-dom.development.js:18931 Uncaught TypeError: children is not a function\n // Without spread, function child is a child array of one element\n // TODO: is there a reason this can't be:\n // return React.createElement.apply(this, arguments);\n return React.createElement.apply(React, __spreadArrays([type, props], children));\n }\n}\n/**\n * This function creates factories that render ouput depending on the user ISlotProp props passed in.\n * @param DefaultComponent - Base component to render when not overridden by user props.\n * @param options - Factory options, including defaultProp value for shorthand prop mapping.\n * @returns ISlotFactory function used for rendering slots.\n */\nexport function createFactory(DefaultComponent, options) {\n if (options === void 0) { options = {}; }\n var _a = options.defaultProp, defaultProp = _a === void 0 ? 'children' : _a;\n var result = function (componentProps, userProps, userSlotOptions, defaultStyles, theme) {\n // If they passed in raw JSX, just return that.\n if (React.isValidElement(userProps)) {\n return userProps;\n }\n var flattenedUserProps = _translateShorthand(defaultProp, userProps);\n var finalProps = _constructFinalProps(defaultStyles, theme, componentProps, flattenedUserProps);\n if (userSlotOptions) {\n if (userSlotOptions.component) {\n // TODO: Remove cast if possible. This cast is needed because TS errors on the intrinsic portion of ReactType.\n // return <userSlotOptions.component {...finalProps} />;\n var UserComponent = userSlotOptions.component;\n return React.createElement(UserComponent, __assign({}, finalProps));\n }\n if (userSlotOptions.render) {\n return userSlotOptions.render(finalProps, DefaultComponent);\n }\n }\n return React.createElement(DefaultComponent, __assign({}, finalProps));\n };\n return result;\n}\n/**\n * Default factory for components without explicit factories.\n */\nvar defaultFactory = memoizeFunction(function (type) { return createFactory(type); });\n/**\n * This function generates slots that can be used in JSX given a definition of slots and their corresponding types.\n * @param userProps - Props as pass to component.\n * @param slots - Slot definition object defining the default slot component for each slot.\n * @returns A set of created slots that components can render in JSX.\n */\nexport function getSlots(userProps, slots) {\n var result = {};\n // userProps already has default props mixed in by createComponent. Recast here to gain typing for this function.\n var mixedProps = userProps;\n var _loop_1 = function (name_1) {\n if (slots.hasOwnProperty(name_1)) {\n // This closure method requires the use of withSlots to prevent unnecessary rerenders. This is because React\n // detects each closure as a different component (since it is a new instance) from the previous one and then\n // forces a rerender of the entire slot subtree. For now, the only way to avoid this is to use withSlots, which\n // bypasses the call to React.createElement.\n var slot = function (componentProps) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (args.length > 0) {\n // If React.createElement is being incorrectly used with slots, there will be additional arguments.\n // We can detect these additional arguments and error on their presence.\n throw new Error('Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.');\n }\n // TODO: having TS infer types here seems to cause infinite loop.\n // use explicit types or casting to preserve typing if possible.\n // TODO: this should be a lookup on TProps property instead of being TProps directly, which is probably\n // causing the infinite loop\n return _renderSlot(slots[name_1], \n // TODO: this cast to any is hiding a relationship issue between the first two args\n componentProps, mixedProps[name_1], mixedProps.slots && mixedProps.slots[name_1], \n // _defaultStyles should always be present, but a check for existence is added to make view tests\n // easier to use.\n mixedProps._defaultStyles && mixedProps._defaultStyles[name_1], mixedProps.theme);\n };\n slot.isSlot = true;\n result[name_1] = slot;\n }\n };\n for (var name_1 in slots) {\n _loop_1(name_1);\n }\n return result;\n}\n/**\n * Helper function that translates shorthand as needed.\n * @param defaultProp\n * @param slotProps\n */\nfunction _translateShorthand(defaultProp, slotProps) {\n var _a;\n var transformedProps;\n if (typeof slotProps === 'string' || typeof slotProps === 'number' || typeof slotProps === 'boolean') {\n transformedProps = (_a = {},\n _a[defaultProp] = slotProps,\n _a);\n }\n else {\n transformedProps = slotProps;\n }\n return transformedProps;\n}\n/**\n * Helper function that constructs final styles and props given a series of props ordered by increasing priority.\n */\nfunction _constructFinalProps(defaultStyles, theme) {\n var allProps = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n allProps[_i - 2] = arguments[_i];\n }\n var finalProps = {};\n var classNames = [];\n for (var _a = 0, allProps_1 = allProps; _a < allProps_1.length; _a++) {\n var props = allProps_1[_a];\n classNames.push(props && props.className);\n assign(finalProps, props);\n }\n finalProps.className = mergeCss([defaultStyles, classNames], { rtl: getRTL(theme) });\n return finalProps;\n}\n/**\n * Render a slot given component and user props. Uses component factory if available, otherwise falls back\n * to default factory.\n * @param ComponentType Factory component type.\n * @param componentProps The properties passed into slot from within the component.\n * @param userProps The user properties passed in from outside of the component.\n */\nfunction _renderSlot(ComponentType, componentProps, userProps, slotOptions, defaultStyles, theme) {\n if (ComponentType.create !== undefined) {\n return ComponentType.create(componentProps, userProps, slotOptions, defaultStyles);\n }\n else {\n // TODO: need to resolve typing / generic issues passing through memoizeFunction. for now, cast to 'unknown'\n return defaultFactory(ComponentType)(componentProps, userProps, slotOptions, defaultStyles, theme);\n }\n}\n//# sourceMappingURL=slots.js.map","import { __assign } from 'tslib';\nexport var assign = __assign;\n//# sourceMappingURL=utilities.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-0\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-0-467ee27f.woff') format('woff')\"\n },\n icons: {\n 'PageLink': '\\uE302',\n 'CommentSolid': '\\uE30E',\n 'ChangeEntitlements': '\\uE310',\n 'Installation': '\\uE311',\n 'WebAppBuilderModule': '\\uE313',\n 'WebAppBuilderFragment': '\\uE314',\n 'WebAppBuilderSlot': '\\uE315',\n 'BullseyeTargetEdit': '\\uE319',\n 'WebAppBuilderFragmentCreate': '\\uE31B',\n 'PageData': '\\uE31C',\n 'PageHeaderEdit': '\\uE31D',\n 'ProductList': '\\uE31E',\n 'UnpublishContent': '\\uE31F',\n 'DependencyAdd': '\\uE344',\n 'DependencyRemove': '\\uE345',\n 'EntitlementPolicy': '\\uE346',\n 'EntitlementRedemption': '\\uE347',\n 'SchoolDataSyncLogo': '\\uE34C',\n 'PinSolid12': '\\uE352',\n 'PinSolidOff12': '\\uE353',\n 'AddLink': '\\uE35E',\n 'SharepointAppIcon16': '\\uE365',\n 'DataflowsLink': '\\uE366',\n 'TimePicker': '\\uE367',\n 'UserWarning': '\\uE368',\n 'ComplianceAudit': '\\uE369',\n 'InternetSharing': '\\uE704',\n 'Brightness': '\\uE706',\n 'MapPin': '\\uE707',\n 'Airplane': '\\uE709',\n 'Tablet': '\\uE70A',\n 'QuickNote': '\\uE70B',\n 'Video': '\\uE714',\n 'People': '\\uE716',\n 'Phone': '\\uE717',\n 'Pin': '\\uE718',\n 'Shop': '\\uE719',\n 'Stop': '\\uE71A',\n 'Link': '\\uE71B',\n 'AllApps': '\\uE71D',\n 'Zoom': '\\uE71E',\n 'ZoomOut': '\\uE71F',\n 'Microphone': '\\uE720',\n 'Camera': '\\uE722',\n 'Attach': '\\uE723',\n 'Send': '\\uE724',\n 'FavoriteList': '\\uE728',\n 'PageSolid': '\\uE729',\n 'Forward': '\\uE72A',\n 'Back': '\\uE72B',\n 'Refresh': '\\uE72C',\n 'Lock': '\\uE72E',\n 'ReportHacked': '\\uE730',\n 'EMI': '\\uE731',\n 'MiniLink': '\\uE732',\n 'Blocked': '\\uE733',\n 'ReadingMode': '\\uE736',\n 'Favicon': '\\uE737',\n 'Remove': '\\uE738',\n 'Checkbox': '\\uE739',\n 'CheckboxComposite': '\\uE73A',\n 'CheckboxFill': '\\uE73B',\n 'CheckboxIndeterminate': '\\uE73C',\n 'CheckboxCompositeReversed': '\\uE73D',\n 'BackToWindow': '\\uE73F',\n 'FullScreen': '\\uE740',\n 'Print': '\\uE749',\n 'Up': '\\uE74A',\n 'Down': '\\uE74B',\n 'OEM': '\\uE74C',\n 'Save': '\\uE74E',\n 'ReturnKey': '\\uE751',\n 'Cloud': '\\uE753',\n 'Flashlight': '\\uE754',\n 'CommandPrompt': '\\uE756',\n 'Sad': '\\uE757',\n 'RealEstate': '\\uE758',\n 'SIPMove': '\\uE759',\n 'EraseTool': '\\uE75C',\n 'GripperTool': '\\uE75E',\n 'Dialpad': '\\uE75F',\n 'PageLeft': '\\uE760',\n 'PageRight': '\\uE761',\n 'MultiSelect': '\\uE762',\n 'KeyboardClassic': '\\uE765',\n 'Play': '\\uE768',\n 'Pause': '\\uE769',\n 'InkingTool': '\\uE76D',\n 'Emoji2': '\\uE76E',\n 'GripperBarHorizontal': '\\uE76F',\n 'System': '\\uE770',\n 'Personalize': '\\uE771',\n 'SearchAndApps': '\\uE773',\n 'Globe': '\\uE774',\n 'EaseOfAccess': '\\uE776',\n 'ContactInfo': '\\uE779',\n 'Unpin': '\\uE77A',\n 'Contact': '\\uE77B',\n 'Memo': '\\uE77C',\n 'IncomingCall': '\\uE77E'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-0.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-1\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-1-4d521695.woff') format('woff')\"\n },\n icons: {\n 'Paste': '\\uE77F',\n 'WindowsLogo': '\\uE782',\n 'Error': '\\uE783',\n 'GripperBarVertical': '\\uE784',\n 'Unlock': '\\uE785',\n 'Slideshow': '\\uE786',\n 'Trim': '\\uE78A',\n 'AutoEnhanceOn': '\\uE78D',\n 'AutoEnhanceOff': '\\uE78E',\n 'Color': '\\uE790',\n 'SaveAs': '\\uE792',\n 'Light': '\\uE793',\n 'Filters': '\\uE795',\n 'AspectRatio': '\\uE799',\n 'Contrast': '\\uE7A1',\n 'Redo': '\\uE7A6',\n 'Crop': '\\uE7A8',\n 'PhotoCollection': '\\uE7AA',\n 'Album': '\\uE7AB',\n 'Rotate': '\\uE7AD',\n 'PanoIndicator': '\\uE7B0',\n 'Translate': '\\uE7B2',\n 'RedEye': '\\uE7B3',\n 'ViewOriginal': '\\uE7B4',\n 'ThumbnailView': '\\uE7B6',\n 'Package': '\\uE7B8',\n 'Telemarketer': '\\uE7B9',\n 'Warning': '\\uE7BA',\n 'Financial': '\\uE7BB',\n 'Education': '\\uE7BE',\n 'ShoppingCart': '\\uE7BF',\n 'Train': '\\uE7C0',\n 'Move': '\\uE7C2',\n 'TouchPointer': '\\uE7C9',\n 'Merge': '\\uE7D5',\n 'TurnRight': '\\uE7DB',\n 'Ferry': '\\uE7E3',\n 'Highlight': '\\uE7E6',\n 'PowerButton': '\\uE7E8',\n 'Tab': '\\uE7E9',\n 'Admin': '\\uE7EF',\n 'TVMonitor': '\\uE7F4',\n 'Speakers': '\\uE7F5',\n 'Game': '\\uE7FC',\n 'HorizontalTabKey': '\\uE7FD',\n 'UnstackSelected': '\\uE7FE',\n 'StackIndicator': '\\uE7FF',\n 'Nav2DMapView': '\\uE800',\n 'StreetsideSplitMinimize': '\\uE802',\n 'Car': '\\uE804',\n 'Bus': '\\uE806',\n 'EatDrink': '\\uE807',\n 'SeeDo': '\\uE808',\n 'LocationCircle': '\\uE80E',\n 'Home': '\\uE80F',\n 'SwitcherStartEnd': '\\uE810',\n 'ParkingLocation': '\\uE811',\n 'IncidentTriangle': '\\uE814',\n 'Touch': '\\uE815',\n 'MapDirections': '\\uE816',\n 'CaretHollow': '\\uE817',\n 'CaretSolid': '\\uE818',\n 'History': '\\uE81C',\n 'Location': '\\uE81D',\n 'MapLayers': '\\uE81E',\n 'SearchNearby': '\\uE820',\n 'Work': '\\uE821',\n 'Recent': '\\uE823',\n 'Hotel': '\\uE824',\n 'Bank': '\\uE825',\n 'LocationDot': '\\uE827',\n 'Dictionary': '\\uE82D',\n 'ChromeBack': '\\uE830',\n 'FolderOpen': '\\uE838',\n 'PinnedFill': '\\uE842',\n 'RevToggleKey': '\\uE845',\n 'USB': '\\uE88E',\n 'Previous': '\\uE892',\n 'Next': '\\uE893',\n 'Sync': '\\uE895',\n 'Help': '\\uE897',\n 'Emoji': '\\uE899',\n 'MailForward': '\\uE89C',\n 'ClosePane': '\\uE89F',\n 'OpenPane': '\\uE8A0',\n 'PreviewLink': '\\uE8A1',\n 'ZoomIn': '\\uE8A3',\n 'Bookmarks': '\\uE8A4',\n 'Document': '\\uE8A5',\n 'ProtectedDocument': '\\uE8A6',\n 'OpenInNewWindow': '\\uE8A7',\n 'MailFill': '\\uE8A8',\n 'ViewAll': '\\uE8A9',\n 'Switch': '\\uE8AB',\n 'Rename': '\\uE8AC',\n 'Go': '\\uE8AD',\n 'Remote': '\\uE8AF',\n 'SelectAll': '\\uE8B3',\n 'Orientation': '\\uE8B4',\n 'Import': '\\uE8B5'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-1.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-10\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-10-c4ded8e4.woff') format('woff')\"\n },\n icons: {\n 'ViewListGroup': '\\uF248',\n 'ViewListTree': '\\uF249',\n 'TriggerAuto': '\\uF24A',\n 'TriggerUser': '\\uF24B',\n 'PivotChart': '\\uF24C',\n 'StackedBarChart': '\\uF24D',\n 'StackedLineChart': '\\uF24E',\n 'BuildQueue': '\\uF24F',\n 'BuildQueueNew': '\\uF250',\n 'UserFollowed': '\\uF25C',\n 'ContactLink': '\\uF25F',\n 'Stack': '\\uF26F',\n 'Bullseye': '\\uF272',\n 'VennDiagram': '\\uF273',\n 'FiveTileGrid': '\\uF274',\n 'FocalPoint': '\\uF277',\n 'Insert': '\\uF278',\n 'RingerRemove': '\\uF279',\n 'TeamsLogoInverse': '\\uF27A',\n 'TeamsLogo': '\\uF27B',\n 'TeamsLogoFill': '\\uF27C',\n 'SkypeForBusinessLogoFill': '\\uF27D',\n 'SharepointLogo': '\\uF27E',\n 'SharepointLogoFill': '\\uF27F',\n 'DelveLogo': '\\uF280',\n 'DelveLogoFill': '\\uF281',\n 'OfficeVideoLogo': '\\uF282',\n 'OfficeVideoLogoFill': '\\uF283',\n 'ExchangeLogo': '\\uF284',\n 'ExchangeLogoFill': '\\uF285',\n 'Signin': '\\uF286',\n 'DocumentApproval': '\\uF28B',\n 'CloneToDesktop': '\\uF28C',\n 'InstallToDrive': '\\uF28D',\n 'Blur': '\\uF28E',\n 'Build': '\\uF28F',\n 'ProcessMetaTask': '\\uF290',\n 'BranchFork2': '\\uF291',\n 'BranchLocked': '\\uF292',\n 'BranchCommit': '\\uF293',\n 'BranchCompare': '\\uF294',\n 'BranchMerge': '\\uF295',\n 'BranchPullRequest': '\\uF296',\n 'BranchSearch': '\\uF297',\n 'BranchShelveset': '\\uF298',\n 'RawSource': '\\uF299',\n 'MergeDuplicate': '\\uF29A',\n 'RowsGroup': '\\uF29B',\n 'RowsChild': '\\uF29C',\n 'Deploy': '\\uF29D',\n 'Redeploy': '\\uF29E',\n 'ServerEnviroment': '\\uF29F',\n 'VisioDiagram': '\\uF2A0',\n 'HighlightMappedShapes': '\\uF2A1',\n 'TextCallout': '\\uF2A2',\n 'IconSetsFlag': '\\uF2A4',\n 'VisioLogo': '\\uF2A7',\n 'VisioLogoFill': '\\uF2A8',\n 'VisioDocument': '\\uF2A9',\n 'TimelineProgress': '\\uF2AA',\n 'TimelineDelivery': '\\uF2AB',\n 'Backlog': '\\uF2AC',\n 'TeamFavorite': '\\uF2AD',\n 'TaskGroup': '\\uF2AE',\n 'TaskGroupMirrored': '\\uF2AF',\n 'ScopeTemplate': '\\uF2B0',\n 'AssessmentGroupTemplate': '\\uF2B1',\n 'NewTeamProject': '\\uF2B2',\n 'CommentAdd': '\\uF2B3',\n 'CommentNext': '\\uF2B4',\n 'CommentPrevious': '\\uF2B5',\n 'ShopServer': '\\uF2B6',\n 'LocaleLanguage': '\\uF2B7',\n 'QueryList': '\\uF2B8',\n 'UserSync': '\\uF2B9',\n 'UserPause': '\\uF2BA',\n 'StreamingOff': '\\uF2BB',\n 'ArrowTallUpLeft': '\\uF2BD',\n 'ArrowTallUpRight': '\\uF2BE',\n 'ArrowTallDownLeft': '\\uF2BF',\n 'ArrowTallDownRight': '\\uF2C0',\n 'FieldEmpty': '\\uF2C1',\n 'FieldFilled': '\\uF2C2',\n 'FieldChanged': '\\uF2C3',\n 'FieldNotChanged': '\\uF2C4',\n 'RingerOff': '\\uF2C5',\n 'PlayResume': '\\uF2C6',\n 'BulletedList2': '\\uF2C7',\n 'BulletedList2Mirrored': '\\uF2C8',\n 'ImageCrosshair': '\\uF2C9',\n 'GitGraph': '\\uF2CA',\n 'Repo': '\\uF2CB',\n 'RepoSolid': '\\uF2CC',\n 'FolderQuery': '\\uF2CD',\n 'FolderList': '\\uF2CE',\n 'FolderListMirrored': '\\uF2CF',\n 'LocationOutline': '\\uF2D0',\n 'POISolid': '\\uF2D1',\n 'CalculatorNotEqualTo': '\\uF2D2',\n 'BoxSubtractSolid': '\\uF2D3'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-10.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-11\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-11-2a8393d6.woff') format('woff')\"\n },\n icons: {\n 'BoxAdditionSolid': '\\uF2D4',\n 'BoxMultiplySolid': '\\uF2D5',\n 'BoxPlaySolid': '\\uF2D6',\n 'BoxCheckmarkSolid': '\\uF2D7',\n 'CirclePauseSolid': '\\uF2D8',\n 'CirclePause': '\\uF2D9',\n 'MSNVideosSolid': '\\uF2DA',\n 'CircleStopSolid': '\\uF2DB',\n 'CircleStop': '\\uF2DC',\n 'NavigateBack': '\\uF2DD',\n 'NavigateBackMirrored': '\\uF2DE',\n 'NavigateForward': '\\uF2DF',\n 'NavigateForwardMirrored': '\\uF2E0',\n 'UnknownSolid': '\\uF2E1',\n 'UnknownMirroredSolid': '\\uF2E2',\n 'CircleAddition': '\\uF2E3',\n 'CircleAdditionSolid': '\\uF2E4',\n 'FilePDB': '\\uF2E5',\n 'FileTemplate': '\\uF2E6',\n 'FileSQL': '\\uF2E7',\n 'FileJAVA': '\\uF2E8',\n 'FileASPX': '\\uF2E9',\n 'FileCSS': '\\uF2EA',\n 'FileSass': '\\uF2EB',\n 'FileLess': '\\uF2EC',\n 'FileHTML': '\\uF2ED',\n 'JavaScriptLanguage': '\\uF2EE',\n 'CSharpLanguage': '\\uF2EF',\n 'CSharp': '\\uF2F0',\n 'VisualBasicLanguage': '\\uF2F1',\n 'VB': '\\uF2F2',\n 'CPlusPlusLanguage': '\\uF2F3',\n 'CPlusPlus': '\\uF2F4',\n 'FSharpLanguage': '\\uF2F5',\n 'FSharp': '\\uF2F6',\n 'TypeScriptLanguage': '\\uF2F7',\n 'PythonLanguage': '\\uF2F8',\n 'PY': '\\uF2F9',\n 'CoffeeScript': '\\uF2FA',\n 'MarkDownLanguage': '\\uF2FB',\n 'FullWidth': '\\uF2FE',\n 'FullWidthEdit': '\\uF2FF',\n 'Plug': '\\uF300',\n 'PlugSolid': '\\uF301',\n 'PlugConnected': '\\uF302',\n 'PlugDisconnected': '\\uF303',\n 'UnlockSolid': '\\uF304',\n 'Variable': '\\uF305',\n 'Parameter': '\\uF306',\n 'CommentUrgent': '\\uF307',\n 'Storyboard': '\\uF308',\n 'DiffInline': '\\uF309',\n 'DiffSideBySide': '\\uF30A',\n 'ImageDiff': '\\uF30B',\n 'ImagePixel': '\\uF30C',\n 'FileBug': '\\uF30D',\n 'FileCode': '\\uF30E',\n 'FileComment': '\\uF30F',\n 'BusinessHoursSign': '\\uF310',\n 'FileImage': '\\uF311',\n 'FileSymlink': '\\uF312',\n 'AutoFillTemplate': '\\uF313',\n 'WorkItem': '\\uF314',\n 'WorkItemBug': '\\uF315',\n 'LogRemove': '\\uF316',\n 'ColumnOptions': '\\uF317',\n 'Packages': '\\uF318',\n 'BuildIssue': '\\uF319',\n 'AssessmentGroup': '\\uF31A',\n 'VariableGroup': '\\uF31B',\n 'FullHistory': '\\uF31C',\n 'Wheelchair': '\\uF31F',\n 'SingleColumnEdit': '\\uF321',\n 'DoubleColumnEdit': '\\uF322',\n 'TripleColumnEdit': '\\uF323',\n 'ColumnLeftTwoThirdsEdit': '\\uF324',\n 'ColumnRightTwoThirdsEdit': '\\uF325',\n 'StreamLogo': '\\uF329',\n 'PassiveAuthentication': '\\uF32A',\n 'AlertSolid': '\\uF331',\n 'MegaphoneSolid': '\\uF332',\n 'TaskSolid': '\\uF333',\n 'ConfigurationSolid': '\\uF334',\n 'BugSolid': '\\uF335',\n 'CrownSolid': '\\uF336',\n 'Trophy2Solid': '\\uF337',\n 'QuickNoteSolid': '\\uF338',\n 'ConstructionConeSolid': '\\uF339',\n 'PageListSolid': '\\uF33A',\n 'PageListMirroredSolid': '\\uF33B',\n 'StarburstSolid': '\\uF33C',\n 'ReadingModeSolid': '\\uF33D',\n 'SadSolid': '\\uF33E',\n 'HealthSolid': '\\uF33F',\n 'ShieldSolid': '\\uF340',\n 'GiftBoxSolid': '\\uF341',\n 'ShoppingCartSolid': '\\uF342',\n 'MailSolid': '\\uF343',\n 'ChatSolid': '\\uF344',\n 'RibbonSolid': '\\uF345'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-11.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-12\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-12-7e945a1e.woff') format('woff')\"\n },\n icons: {\n 'FinancialSolid': '\\uF346',\n 'FinancialMirroredSolid': '\\uF347',\n 'HeadsetSolid': '\\uF348',\n 'PermissionsSolid': '\\uF349',\n 'ParkingSolid': '\\uF34A',\n 'ParkingMirroredSolid': '\\uF34B',\n 'DiamondSolid': '\\uF34C',\n 'AsteriskSolid': '\\uF34D',\n 'OfflineStorageSolid': '\\uF34E',\n 'BankSolid': '\\uF34F',\n 'DecisionSolid': '\\uF350',\n 'Parachute': '\\uF351',\n 'ParachuteSolid': '\\uF352',\n 'FiltersSolid': '\\uF353',\n 'ColorSolid': '\\uF354',\n 'ReviewSolid': '\\uF355',\n 'ReviewRequestSolid': '\\uF356',\n 'ReviewRequestMirroredSolid': '\\uF357',\n 'ReviewResponseSolid': '\\uF358',\n 'FeedbackRequestSolid': '\\uF359',\n 'FeedbackRequestMirroredSolid': '\\uF35A',\n 'FeedbackResponseSolid': '\\uF35B',\n 'WorkItemBar': '\\uF35C',\n 'WorkItemBarSolid': '\\uF35D',\n 'Separator': '\\uF35E',\n 'NavigateExternalInline': '\\uF35F',\n 'PlanView': '\\uF360',\n 'TimelineMatrixView': '\\uF361',\n 'EngineeringGroup': '\\uF362',\n 'ProjectCollection': '\\uF363',\n 'CaretBottomRightCenter8': '\\uF364',\n 'CaretBottomLeftCenter8': '\\uF365',\n 'CaretTopRightCenter8': '\\uF366',\n 'CaretTopLeftCenter8': '\\uF367',\n 'DonutChart': '\\uF368',\n 'ChevronUnfold10': '\\uF369',\n 'ChevronFold10': '\\uF36A',\n 'DoubleChevronDown8': '\\uF36B',\n 'DoubleChevronUp8': '\\uF36C',\n 'DoubleChevronLeft8': '\\uF36D',\n 'DoubleChevronRight8': '\\uF36E',\n 'ChevronDownEnd6': '\\uF36F',\n 'ChevronUpEnd6': '\\uF370',\n 'ChevronLeftEnd6': '\\uF371',\n 'ChevronRightEnd6': '\\uF372',\n 'ContextMenu': '\\uF37C',\n 'AzureAPIManagement': '\\uF37F',\n 'AzureServiceEndpoint': '\\uF380',\n 'VSTSLogo': '\\uF381',\n 'VSTSAltLogo1': '\\uF382',\n 'VSTSAltLogo2': '\\uF383',\n 'FileTypeSolution': '\\uF387',\n 'WordLogoInverse16': '\\uF390',\n 'WordLogo16': '\\uF391',\n 'WordLogoFill16': '\\uF392',\n 'PowerPointLogoInverse16': '\\uF393',\n 'PowerPointLogo16': '\\uF394',\n 'PowerPointLogoFill16': '\\uF395',\n 'ExcelLogoInverse16': '\\uF396',\n 'ExcelLogo16': '\\uF397',\n 'ExcelLogoFill16': '\\uF398',\n 'OneNoteLogoInverse16': '\\uF399',\n 'OneNoteLogo16': '\\uF39A',\n 'OneNoteLogoFill16': '\\uF39B',\n 'OutlookLogoInverse16': '\\uF39C',\n 'OutlookLogo16': '\\uF39D',\n 'OutlookLogoFill16': '\\uF39E',\n 'PublisherLogoInverse16': '\\uF39F',\n 'PublisherLogo16': '\\uF3A0',\n 'PublisherLogoFill16': '\\uF3A1',\n 'VisioLogoInverse16': '\\uF3A2',\n 'VisioLogo16': '\\uF3A3',\n 'VisioLogoFill16': '\\uF3A4',\n 'TestBeaker': '\\uF3A5',\n 'TestBeakerSolid': '\\uF3A6',\n 'TestExploreSolid': '\\uF3A7',\n 'TestAutoSolid': '\\uF3A8',\n 'TestUserSolid': '\\uF3A9',\n 'TestImpactSolid': '\\uF3AA',\n 'TestPlan': '\\uF3AB',\n 'TestStep': '\\uF3AC',\n 'TestParameter': '\\uF3AD',\n 'TestSuite': '\\uF3AE',\n 'TestCase': '\\uF3AF',\n 'Sprint': '\\uF3B0',\n 'SignOut': '\\uF3B1',\n 'TriggerApproval': '\\uF3B2',\n 'Rocket': '\\uF3B3',\n 'AzureKeyVault': '\\uF3B4',\n 'Onboarding': '\\uF3BA',\n 'Transition': '\\uF3BC',\n 'LikeSolid': '\\uF3BF',\n 'DislikeSolid': '\\uF3C0',\n 'CRMCustomerInsightsApp': '\\uF3C8',\n 'EditCreate': '\\uF3C9',\n 'PlayReverseResume': '\\uF3E4',\n 'PlayReverse': '\\uF3E5',\n 'SearchData': '\\uF3F1',\n 'UnSetColor': '\\uF3F9',\n 'DeclineCall': '\\uF405'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-12.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-13\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-13-c3989a02.woff') format('woff')\"\n },\n icons: {\n 'RectangularClipping': '\\uF407',\n 'TeamsLogo16': '\\uF40A',\n 'TeamsLogoFill16': '\\uF40B',\n 'Spacer': '\\uF40D',\n 'SkypeLogo16': '\\uF40E',\n 'SkypeForBusinessLogo16': '\\uF40F',\n 'SkypeForBusinessLogoFill16': '\\uF410',\n 'FilterSolid': '\\uF412',\n 'MailUndelivered': '\\uF415',\n 'MailTentative': '\\uF416',\n 'MailTentativeMirrored': '\\uF417',\n 'MailReminder': '\\uF418',\n 'ReceiptUndelivered': '\\uF419',\n 'ReceiptTentative': '\\uF41A',\n 'ReceiptTentativeMirrored': '\\uF41B',\n 'Inbox': '\\uF41C',\n 'IRMReply': '\\uF41D',\n 'IRMReplyMirrored': '\\uF41E',\n 'IRMForward': '\\uF41F',\n 'IRMForwardMirrored': '\\uF420',\n 'VoicemailIRM': '\\uF421',\n 'EventAccepted': '\\uF422',\n 'EventTentative': '\\uF423',\n 'EventTentativeMirrored': '\\uF424',\n 'EventDeclined': '\\uF425',\n 'IDBadge': '\\uF427',\n 'BackgroundColor': '\\uF42B',\n 'OfficeFormsLogoInverse16': '\\uF433',\n 'OfficeFormsLogo': '\\uF434',\n 'OfficeFormsLogoFill': '\\uF435',\n 'OfficeFormsLogo16': '\\uF436',\n 'OfficeFormsLogoFill16': '\\uF437',\n 'OfficeFormsLogoInverse24': '\\uF43A',\n 'OfficeFormsLogo24': '\\uF43B',\n 'OfficeFormsLogoFill24': '\\uF43C',\n 'PageLock': '\\uF43F',\n 'NotExecuted': '\\uF440',\n 'NotImpactedSolid': '\\uF441',\n 'FieldReadOnly': '\\uF442',\n 'FieldRequired': '\\uF443',\n 'BacklogBoard': '\\uF444',\n 'ExternalBuild': '\\uF445',\n 'ExternalTFVC': '\\uF446',\n 'ExternalXAML': '\\uF447',\n 'IssueSolid': '\\uF448',\n 'DefectSolid': '\\uF449',\n 'LadybugSolid': '\\uF44A',\n 'NugetLogo': '\\uF44C',\n 'TFVCLogo': '\\uF44D',\n 'ProjectLogo32': '\\uF47E',\n 'ProjectLogoFill32': '\\uF47F',\n 'ProjectLogo16': '\\uF480',\n 'ProjectLogoFill16': '\\uF481',\n 'SwayLogo32': '\\uF482',\n 'SwayLogoFill32': '\\uF483',\n 'SwayLogo16': '\\uF484',\n 'SwayLogoFill16': '\\uF485',\n 'ClassNotebookLogo32': '\\uF486',\n 'ClassNotebookLogoFill32': '\\uF487',\n 'ClassNotebookLogo16': '\\uF488',\n 'ClassNotebookLogoFill16': '\\uF489',\n 'ClassNotebookLogoInverse32': '\\uF48A',\n 'ClassNotebookLogoInverse16': '\\uF48B',\n 'StaffNotebookLogo32': '\\uF48C',\n 'StaffNotebookLogoFill32': '\\uF48D',\n 'StaffNotebookLogo16': '\\uF48E',\n 'StaffNotebookLogoFill16': '\\uF48F',\n 'StaffNotebookLogoInverted32': '\\uF490',\n 'StaffNotebookLogoInverted16': '\\uF491',\n 'KaizalaLogo': '\\uF492',\n 'TaskLogo': '\\uF493',\n 'ProtectionCenterLogo32': '\\uF494',\n 'GallatinLogo': '\\uF496',\n 'Globe2': '\\uF49A',\n 'Guitar': '\\uF49B',\n 'Breakfast': '\\uF49C',\n 'Brunch': '\\uF49D',\n 'BeerMug': '\\uF49E',\n 'Vacation': '\\uF49F',\n 'Teeth': '\\uF4A0',\n 'Taxi': '\\uF4A1',\n 'Chopsticks': '\\uF4A2',\n 'SyncOccurence': '\\uF4A3',\n 'UnsyncOccurence': '\\uF4A4',\n 'GIF': '\\uF4A9',\n 'PrimaryCalendar': '\\uF4AE',\n 'SearchCalendar': '\\uF4AF',\n 'VideoOff': '\\uF4B0',\n 'MicrosoftFlowLogo': '\\uF4B1',\n 'BusinessCenterLogo': '\\uF4B2',\n 'ToDoLogoBottom': '\\uF4B3',\n 'ToDoLogoTop': '\\uF4B4',\n 'EditSolid12': '\\uF4B5',\n 'EditSolidMirrored12': '\\uF4B6',\n 'UneditableSolid12': '\\uF4B7',\n 'UneditableSolidMirrored12': '\\uF4B8',\n 'UneditableMirrored': '\\uF4B9',\n 'AdminALogo32': '\\uF4BA',\n 'AdminALogoFill32': '\\uF4BB',\n 'ToDoLogoInverse': '\\uF4BC'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-13.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-14\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-14-5cf58db8.woff') format('woff')\"\n },\n icons: {\n 'Snooze': '\\uF4BD',\n 'WaffleOffice365': '\\uF4E0',\n 'ImageSearch': '\\uF4E8',\n 'NewsSearch': '\\uF4E9',\n 'VideoSearch': '\\uF4EA',\n 'R': '\\uF4EB',\n 'FontColorA': '\\uF4EC',\n 'FontColorSwatch': '\\uF4ED',\n 'LightWeight': '\\uF4EE',\n 'NormalWeight': '\\uF4EF',\n 'SemiboldWeight': '\\uF4F0',\n 'GroupObject': '\\uF4F1',\n 'UngroupObject': '\\uF4F2',\n 'AlignHorizontalLeft': '\\uF4F3',\n 'AlignHorizontalCenter': '\\uF4F4',\n 'AlignHorizontalRight': '\\uF4F5',\n 'AlignVerticalTop': '\\uF4F6',\n 'AlignVerticalCenter': '\\uF4F7',\n 'AlignVerticalBottom': '\\uF4F8',\n 'HorizontalDistributeCenter': '\\uF4F9',\n 'VerticalDistributeCenter': '\\uF4FA',\n 'Ellipse': '\\uF4FB',\n 'Line': '\\uF4FC',\n 'Octagon': '\\uF4FD',\n 'Hexagon': '\\uF4FE',\n 'Pentagon': '\\uF4FF',\n 'RightTriangle': '\\uF500',\n 'HalfCircle': '\\uF501',\n 'QuarterCircle': '\\uF502',\n 'ThreeQuarterCircle': '\\uF503',\n '6PointStar': '\\uF504',\n '12PointStar': '\\uF505',\n 'ArrangeBringToFront': '\\uF506',\n 'ArrangeSendToBack': '\\uF507',\n 'ArrangeSendBackward': '\\uF508',\n 'ArrangeBringForward': '\\uF509',\n 'BorderDash': '\\uF50A',\n 'BorderDot': '\\uF50B',\n 'LineStyle': '\\uF50C',\n 'LineThickness': '\\uF50D',\n 'WindowEdit': '\\uF50E',\n 'HintText': '\\uF50F',\n 'MediaAdd': '\\uF510',\n 'AnchorLock': '\\uF511',\n 'AutoHeight': '\\uF512',\n 'ChartSeries': '\\uF513',\n 'ChartXAngle': '\\uF514',\n 'ChartYAngle': '\\uF515',\n 'Combobox': '\\uF516',\n 'LineSpacing': '\\uF517',\n 'Padding': '\\uF518',\n 'PaddingTop': '\\uF519',\n 'PaddingBottom': '\\uF51A',\n 'PaddingLeft': '\\uF51B',\n 'PaddingRight': '\\uF51C',\n 'NavigationFlipper': '\\uF51D',\n 'AlignJustify': '\\uF51E',\n 'TextOverflow': '\\uF51F',\n 'VisualsFolder': '\\uF520',\n 'VisualsStore': '\\uF521',\n 'PictureCenter': '\\uF522',\n 'PictureFill': '\\uF523',\n 'PicturePosition': '\\uF524',\n 'PictureStretch': '\\uF525',\n 'PictureTile': '\\uF526',\n 'Slider': '\\uF527',\n 'SliderHandleSize': '\\uF528',\n 'DefaultRatio': '\\uF529',\n 'NumberSequence': '\\uF52A',\n 'GUID': '\\uF52B',\n 'ReportAdd': '\\uF52C',\n 'DashboardAdd': '\\uF52D',\n 'MapPinSolid': '\\uF52E',\n 'WebPublish': '\\uF52F',\n 'PieSingleSolid': '\\uF530',\n 'BlockedSolid': '\\uF531',\n 'DrillDown': '\\uF532',\n 'DrillDownSolid': '\\uF533',\n 'DrillExpand': '\\uF534',\n 'DrillShow': '\\uF535',\n 'SpecialEvent': '\\uF536',\n 'OneDriveFolder16': '\\uF53B',\n 'FunctionalManagerDashboard': '\\uF542',\n 'BIDashboard': '\\uF543',\n 'CodeEdit': '\\uF544',\n 'RenewalCurrent': '\\uF545',\n 'RenewalFuture': '\\uF546',\n 'SplitObject': '\\uF547',\n 'BulkUpload': '\\uF548',\n 'DownloadDocument': '\\uF549',\n 'GreetingCard': '\\uF54B',\n 'Flower': '\\uF54E',\n 'WaitlistConfirm': '\\uF550',\n 'WaitlistConfirmMirrored': '\\uF551',\n 'LaptopSecure': '\\uF552',\n 'DragObject': '\\uF553',\n 'EntryView': '\\uF554',\n 'EntryDecline': '\\uF555',\n 'ContactCardSettings': '\\uF556',\n 'ContactCardSettingsMirrored': '\\uF557'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-14.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-15\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-15-3807251b.woff') format('woff')\"\n },\n icons: {\n 'CalendarSettings': '\\uF558',\n 'CalendarSettingsMirrored': '\\uF559',\n 'HardDriveLock': '\\uF55A',\n 'HardDriveUnlock': '\\uF55B',\n 'AccountManagement': '\\uF55C',\n 'ReportWarning': '\\uF569',\n 'TransitionPop': '\\uF5B2',\n 'TransitionPush': '\\uF5B3',\n 'TransitionEffect': '\\uF5B4',\n 'LookupEntities': '\\uF5B5',\n 'ExploreData': '\\uF5B6',\n 'AddBookmark': '\\uF5B7',\n 'SearchBookmark': '\\uF5B8',\n 'DrillThrough': '\\uF5B9',\n 'MasterDatabase': '\\uF5BA',\n 'CertifiedDatabase': '\\uF5BB',\n 'MaximumValue': '\\uF5BC',\n 'MinimumValue': '\\uF5BD',\n 'VisualStudioIDELogo32': '\\uF5D0',\n 'PasteAsText': '\\uF5D5',\n 'PasteAsCode': '\\uF5D6',\n 'BrowserTab': '\\uF5D7',\n 'BrowserTabScreenshot': '\\uF5D8',\n 'DesktopScreenshot': '\\uF5D9',\n 'FileYML': '\\uF5DA',\n 'ClipboardSolid': '\\uF5DC',\n 'FabricUserFolder': '\\uF5E5',\n 'FabricNetworkFolder': '\\uF5E6',\n 'BullseyeTarget': '\\uF5F0',\n 'AnalyticsView': '\\uF5F1',\n 'Video360Generic': '\\uF609',\n 'Untag': '\\uF60B',\n 'Leave': '\\uF627',\n 'Trending12': '\\uF62D',\n 'Blocked12': '\\uF62E',\n 'Warning12': '\\uF62F',\n 'CheckedOutByOther12': '\\uF630',\n 'CheckedOutByYou12': '\\uF631',\n 'CircleShapeSolid': '\\uF63C',\n 'SquareShapeSolid': '\\uF63D',\n 'TriangleShapeSolid': '\\uF63E',\n 'DropShapeSolid': '\\uF63F',\n 'RectangleShapeSolid': '\\uF640',\n 'ZoomToFit': '\\uF649',\n 'InsertColumnsLeft': '\\uF64A',\n 'InsertColumnsRight': '\\uF64B',\n 'InsertRowsAbove': '\\uF64C',\n 'InsertRowsBelow': '\\uF64D',\n 'DeleteColumns': '\\uF64E',\n 'DeleteRows': '\\uF64F',\n 'DeleteRowsMirrored': '\\uF650',\n 'DeleteTable': '\\uF651',\n 'AccountBrowser': '\\uF652',\n 'VersionControlPush': '\\uF664',\n 'StackedColumnChart2': '\\uF666',\n 'TripleColumnWide': '\\uF66E',\n 'QuadColumn': '\\uF66F',\n 'WhiteBoardApp16': '\\uF673',\n 'WhiteBoardApp32': '\\uF674',\n 'PinnedSolid': '\\uF676',\n 'InsertSignatureLine': '\\uF677',\n 'ArrangeByFrom': '\\uF678',\n 'Phishing': '\\uF679',\n 'CreateMailRule': '\\uF67A',\n 'PublishCourse': '\\uF699',\n 'DictionaryRemove': '\\uF69A',\n 'UserRemove': '\\uF69B',\n 'UserEvent': '\\uF69C',\n 'Encryption': '\\uF69D',\n 'PasswordField': '\\uF6AA',\n 'OpenInNewTab': '\\uF6AB',\n 'Hide3': '\\uF6AC',\n 'VerifiedBrandSolid': '\\uF6AD',\n 'MarkAsProtected': '\\uF6AE',\n 'AuthenticatorApp': '\\uF6B1',\n 'WebTemplate': '\\uF6B2',\n 'DefenderTVM': '\\uF6B3',\n 'MedalSolid': '\\uF6B9',\n 'D365TalentLearn': '\\uF6BB',\n 'D365TalentInsight': '\\uF6BC',\n 'D365TalentHRCore': '\\uF6BD',\n 'BacklogList': '\\uF6BF',\n 'ButtonControl': '\\uF6C0',\n 'TableGroup': '\\uF6D9',\n 'MountainClimbing': '\\uF6DB',\n 'TagUnknown': '\\uF6DF',\n 'TagUnknownMirror': '\\uF6E0',\n 'TagUnknown12': '\\uF6E1',\n 'TagUnknown12Mirror': '\\uF6E2',\n 'Link12': '\\uF6E3',\n 'Presentation': '\\uF6E4',\n 'Presentation12': '\\uF6E5',\n 'Lock12': '\\uF6E6',\n 'BuildDefinition': '\\uF6E9',\n 'ReleaseDefinition': '\\uF6EA',\n 'SaveTemplate': '\\uF6EC',\n 'UserGauge': '\\uF6ED',\n 'BlockedSiteSolid12': '\\uF70A',\n 'TagSolid': '\\uF70E',\n 'OfficeChat': '\\uF70F'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-15.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-16\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-16-9cf93f3b.woff') format('woff')\"\n },\n icons: {\n 'OfficeChatSolid': '\\uF710',\n 'MailSchedule': '\\uF72E',\n 'WarningSolid': '\\uF736',\n 'Blocked2Solid': '\\uF737',\n 'SkypeCircleArrow': '\\uF747',\n 'SkypeArrow': '\\uF748',\n 'SyncStatus': '\\uF751',\n 'SyncStatusSolid': '\\uF752',\n 'ProjectDocument': '\\uF759',\n 'ToDoLogoOutline': '\\uF75B',\n 'VisioOnlineLogoFill32': '\\uF75F',\n 'VisioOnlineLogo32': '\\uF760',\n 'VisioOnlineLogoCloud32': '\\uF761',\n 'VisioDiagramSync': '\\uF762',\n 'Event12': '\\uF763',\n 'EventDateMissed12': '\\uF764',\n 'UserOptional': '\\uF767',\n 'ResponsesMenu': '\\uF768',\n 'DoubleDownArrow': '\\uF769',\n 'DistributeDown': '\\uF76A',\n 'BookmarkReport': '\\uF76B',\n 'FilterSettings': '\\uF76C',\n 'GripperDotsVertical': '\\uF772',\n 'MailAttached': '\\uF774',\n 'AddIn': '\\uF775',\n 'LinkedDatabase': '\\uF779',\n 'TableLink': '\\uF77A',\n 'PromotedDatabase': '\\uF77D',\n 'BarChartVerticalFilter': '\\uF77E',\n 'BarChartVerticalFilterSolid': '\\uF77F',\n 'MicOff2': '\\uF781',\n 'MicrosoftTranslatorLogo': '\\uF782',\n 'ShowTimeAs': '\\uF787',\n 'FileRequest': '\\uF789',\n 'WorkItemAlert': '\\uF78F',\n 'PowerBILogo16': '\\uF790',\n 'PowerBILogoBackplate16': '\\uF791',\n 'BulletedListText': '\\uF792',\n 'BulletedListBullet': '\\uF793',\n 'BulletedListTextMirrored': '\\uF794',\n 'BulletedListBulletMirrored': '\\uF795',\n 'NumberedListText': '\\uF796',\n 'NumberedListNumber': '\\uF797',\n 'NumberedListTextMirrored': '\\uF798',\n 'NumberedListNumberMirrored': '\\uF799',\n 'RemoveLinkChain': '\\uF79A',\n 'RemoveLinkX': '\\uF79B',\n 'FabricTextHighlight': '\\uF79C',\n 'ClearFormattingA': '\\uF79D',\n 'ClearFormattingEraser': '\\uF79E',\n 'Photo2Fill': '\\uF79F',\n 'IncreaseIndentText': '\\uF7A0',\n 'IncreaseIndentArrow': '\\uF7A1',\n 'DecreaseIndentText': '\\uF7A2',\n 'DecreaseIndentArrow': '\\uF7A3',\n 'IncreaseIndentTextMirrored': '\\uF7A4',\n 'IncreaseIndentArrowMirrored': '\\uF7A5',\n 'DecreaseIndentTextMirrored': '\\uF7A6',\n 'DecreaseIndentArrowMirrored': '\\uF7A7',\n 'CheckListText': '\\uF7A8',\n 'CheckListCheck': '\\uF7A9',\n 'CheckListTextMirrored': '\\uF7AA',\n 'CheckListCheckMirrored': '\\uF7AB',\n 'NumberSymbol': '\\uF7AC',\n 'Coupon': '\\uF7BC',\n 'VerifiedBrand': '\\uF7BD',\n 'ReleaseGate': '\\uF7BE',\n 'ReleaseGateCheck': '\\uF7BF',\n 'ReleaseGateError': '\\uF7C0',\n 'M365InvoicingLogo': '\\uF7C1',\n 'RemoveFromShoppingList': '\\uF7D5',\n 'ShieldAlert': '\\uF7D7',\n 'FabricTextHighlightComposite': '\\uF7DA',\n 'Dataflows': '\\uF7DD',\n 'GenericScanFilled': '\\uF7DE',\n 'DiagnosticDataBarTooltip': '\\uF7DF',\n 'SaveToMobile': '\\uF7E0',\n 'Orientation2': '\\uF7E1',\n 'ScreenCast': '\\uF7E2',\n 'ShowGrid': '\\uF7E3',\n 'SnapToGrid': '\\uF7E4',\n 'ContactList': '\\uF7E5',\n 'NewMail': '\\uF7EA',\n 'EyeShadow': '\\uF7EB',\n 'FabricFolderConfirm': '\\uF7FF',\n 'InformationBarriers': '\\uF803',\n 'CommentActive': '\\uF804',\n 'ColumnVerticalSectionEdit': '\\uF806',\n 'WavingHand': '\\uF807',\n 'ShakeDevice': '\\uF80A',\n 'SmartGlassRemote': '\\uF80B',\n 'Rotate90Clockwise': '\\uF80D',\n 'Rotate90CounterClockwise': '\\uF80E',\n 'CampaignTemplate': '\\uF811',\n 'ChartTemplate': '\\uF812',\n 'PageListFilter': '\\uF813',\n 'SecondaryNav': '\\uF814',\n 'ColumnVerticalSection': '\\uF81E',\n 'SkypeCircleSlash': '\\uF825',\n 'SkypeSlash': '\\uF826'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-16.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-17\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-17-0c4ed701.woff') format('woff')\"\n },\n icons: {\n 'CustomizeToolbar': '\\uF828',\n 'DuplicateRow': '\\uF82A',\n 'RemoveFromTrash': '\\uF82B',\n 'MailOptions': '\\uF82C',\n 'Childof': '\\uF82D',\n 'Footer': '\\uF82E',\n 'Header': '\\uF82F',\n 'BarChartVerticalFill': '\\uF830',\n 'StackedColumnChart2Fill': '\\uF831',\n 'PlainText': '\\uF834',\n 'AccessibiltyChecker': '\\uF835',\n 'DatabaseSync': '\\uF842',\n 'ReservationOrders': '\\uF845',\n 'TabOneColumn': '\\uF849',\n 'TabTwoColumn': '\\uF84A',\n 'TabThreeColumn': '\\uF84B',\n 'BulletedTreeList': '\\uF84C',\n 'MicrosoftTranslatorLogoGreen': '\\uF852',\n 'MicrosoftTranslatorLogoBlue': '\\uF853',\n 'InternalInvestigation': '\\uF854',\n 'AddReaction': '\\uF85D',\n 'ContactHeart': '\\uF862',\n 'VisuallyImpaired': '\\uF866',\n 'EventToDoLogo': '\\uF869',\n 'Variable2': '\\uF86D',\n 'ModelingView': '\\uF871',\n 'DisconnectVirtualMachine': '\\uF873',\n 'ReportLock': '\\uF875',\n 'Uneditable2': '\\uF876',\n 'Uneditable2Mirrored': '\\uF877',\n 'BarChartVerticalEdit': '\\uF89D',\n 'GlobalNavButtonActive': '\\uF89F',\n 'PollResults': '\\uF8A0',\n 'Rerun': '\\uF8A1',\n 'QandA': '\\uF8A2',\n 'QandAMirror': '\\uF8A3',\n 'BookAnswers': '\\uF8A4',\n 'AlertSettings': '\\uF8B6',\n 'TrimStart': '\\uF8BB',\n 'TrimEnd': '\\uF8BC',\n 'TableComputed': '\\uF8F5',\n 'DecreaseIndentLegacy': '\\uE290',\n 'IncreaseIndentLegacy': '\\uE291',\n 'SizeLegacy': '\\uE2B2'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-17.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-2\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-2-63c99abf.woff') format('woff')\"\n },\n icons: {\n 'Picture': '\\uE8B9',\n 'ChromeClose': '\\uE8BB',\n 'ShowResults': '\\uE8BC',\n 'Message': '\\uE8BD',\n 'CalendarDay': '\\uE8BF',\n 'CalendarWeek': '\\uE8C0',\n 'MailReplyAll': '\\uE8C2',\n 'Read': '\\uE8C3',\n 'Cut': '\\uE8C6',\n 'PaymentCard': '\\uE8C7',\n 'Copy': '\\uE8C8',\n 'Important': '\\uE8C9',\n 'MailReply': '\\uE8CA',\n 'GotoToday': '\\uE8D1',\n 'Font': '\\uE8D2',\n 'FontColor': '\\uE8D3',\n 'FolderFill': '\\uE8D5',\n 'Permissions': '\\uE8D7',\n 'DisableUpdates': '\\uE8D8',\n 'Unfavorite': '\\uE8D9',\n 'Italic': '\\uE8DB',\n 'Underline': '\\uE8DC',\n 'Bold': '\\uE8DD',\n 'MoveToFolder': '\\uE8DE',\n 'Dislike': '\\uE8E0',\n 'Like': '\\uE8E1',\n 'AlignCenter': '\\uE8E3',\n 'OpenFile': '\\uE8E5',\n 'ClearSelection': '\\uE8E6',\n 'FontDecrease': '\\uE8E7',\n 'FontIncrease': '\\uE8E8',\n 'FontSize': '\\uE8E9',\n 'CellPhone': '\\uE8EA',\n 'RepeatOne': '\\uE8ED',\n 'RepeatAll': '\\uE8EE',\n 'Calculator': '\\uE8EF',\n 'Library': '\\uE8F1',\n 'PostUpdate': '\\uE8F3',\n 'NewFolder': '\\uE8F4',\n 'CalendarReply': '\\uE8F5',\n 'UnsyncFolder': '\\uE8F6',\n 'SyncFolder': '\\uE8F7',\n 'BlockContact': '\\uE8F8',\n 'Accept': '\\uE8FB',\n 'BulletedList': '\\uE8FD',\n 'Preview': '\\uE8FF',\n 'News': '\\uE900',\n 'Chat': '\\uE901',\n 'Group': '\\uE902',\n 'World': '\\uE909',\n 'Comment': '\\uE90A',\n 'DockLeft': '\\uE90C',\n 'DockRight': '\\uE90D',\n 'Repair': '\\uE90F',\n 'Accounts': '\\uE910',\n 'Street': '\\uE913',\n 'RadioBullet': '\\uE915',\n 'Stopwatch': '\\uE916',\n 'Clock': '\\uE917',\n 'WorldClock': '\\uE918',\n 'AlarmClock': '\\uE919',\n 'Photo': '\\uE91B',\n 'ActionCenter': '\\uE91C',\n 'Hospital': '\\uE91D',\n 'Timer': '\\uE91E',\n 'FullCircleMask': '\\uE91F',\n 'LocationFill': '\\uE920',\n 'ChromeMinimize': '\\uE921',\n 'ChromeRestore': '\\uE923',\n 'Annotation': '\\uE924',\n 'Fingerprint': '\\uE928',\n 'Handwriting': '\\uE929',\n 'ChromeFullScreen': '\\uE92D',\n 'Completed': '\\uE930',\n 'Label': '\\uE932',\n 'FlickDown': '\\uE935',\n 'FlickUp': '\\uE936',\n 'FlickLeft': '\\uE937',\n 'FlickRight': '\\uE938',\n 'MiniExpand': '\\uE93A',\n 'MiniContract': '\\uE93B',\n 'Streaming': '\\uE93E',\n 'MusicInCollection': '\\uE940',\n 'OneDriveLogo': '\\uE941',\n 'CompassNW': '\\uE942',\n 'Code': '\\uE943',\n 'LightningBolt': '\\uE945',\n 'CalculatorMultiply': '\\uE947',\n 'CalculatorAddition': '\\uE948',\n 'CalculatorSubtract': '\\uE949',\n 'CalculatorPercentage': '\\uE94C',\n 'CalculatorEqualTo': '\\uE94E',\n 'PrintfaxPrinterFile': '\\uE956',\n 'StorageOptical': '\\uE958',\n 'Communications': '\\uE95A',\n 'Headset': '\\uE95B',\n 'Health': '\\uE95E',\n 'Webcam2': '\\uE960',\n 'FrontCamera': '\\uE96B',\n 'ChevronUpSmall': '\\uE96D'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-2.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-3\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-3-089e217a.woff') format('woff')\"\n },\n icons: {\n 'ChevronDownSmall': '\\uE96E',\n 'ChevronLeftSmall': '\\uE96F',\n 'ChevronRightSmall': '\\uE970',\n 'ChevronUpMed': '\\uE971',\n 'ChevronDownMed': '\\uE972',\n 'ChevronLeftMed': '\\uE973',\n 'ChevronRightMed': '\\uE974',\n 'Devices2': '\\uE975',\n 'PC1': '\\uE977',\n 'PresenceChickletVideo': '\\uE979',\n 'Reply': '\\uE97A',\n 'HalfAlpha': '\\uE97E',\n 'ConstructionCone': '\\uE98F',\n 'DoubleChevronLeftMed': '\\uE991',\n 'Volume0': '\\uE992',\n 'Volume1': '\\uE993',\n 'Volume2': '\\uE994',\n 'Volume3': '\\uE995',\n 'Chart': '\\uE999',\n 'Robot': '\\uE99A',\n 'Manufacturing': '\\uE99C',\n 'LockSolid': '\\uE9A2',\n 'FitPage': '\\uE9A6',\n 'FitWidth': '\\uE9A7',\n 'BidiLtr': '\\uE9AA',\n 'BidiRtl': '\\uE9AB',\n 'RightDoubleQuote': '\\uE9B1',\n 'Sunny': '\\uE9BD',\n 'CloudWeather': '\\uE9BE',\n 'Cloudy': '\\uE9BF',\n 'PartlyCloudyDay': '\\uE9C0',\n 'PartlyCloudyNight': '\\uE9C1',\n 'ClearNight': '\\uE9C2',\n 'RainShowersDay': '\\uE9C3',\n 'Rain': '\\uE9C4',\n 'Thunderstorms': '\\uE9C6',\n 'RainSnow': '\\uE9C7',\n 'Snow': '\\uE9C8',\n 'BlowingSnow': '\\uE9C9',\n 'Frigid': '\\uE9CA',\n 'Fog': '\\uE9CB',\n 'Squalls': '\\uE9CC',\n 'Duststorm': '\\uE9CD',\n 'Unknown': '\\uE9CE',\n 'Precipitation': '\\uE9CF',\n 'Ribbon': '\\uE9D1',\n 'AreaChart': '\\uE9D2',\n 'Assign': '\\uE9D3',\n 'FlowChart': '\\uE9D4',\n 'CheckList': '\\uE9D5',\n 'Diagnostic': '\\uE9D9',\n 'Generate': '\\uE9DA',\n 'LineChart': '\\uE9E6',\n 'Equalizer': '\\uE9E9',\n 'BarChartHorizontal': '\\uE9EB',\n 'BarChartVertical': '\\uE9EC',\n 'Freezing': '\\uE9EF',\n 'FunnelChart': '\\uE9F1',\n 'Processing': '\\uE9F5',\n 'Quantity': '\\uE9F8',\n 'ReportDocument': '\\uE9F9',\n 'StackColumnChart': '\\uE9FC',\n 'SnowShowerDay': '\\uE9FD',\n 'HailDay': '\\uEA00',\n 'WorkFlow': '\\uEA01',\n 'HourGlass': '\\uEA03',\n 'StoreLogoMed20': '\\uEA04',\n 'TimeSheet': '\\uEA05',\n 'TriangleSolid': '\\uEA08',\n 'UpgradeAnalysis': '\\uEA0B',\n 'VideoSolid': '\\uEA0C',\n 'RainShowersNight': '\\uEA0F',\n 'SnowShowerNight': '\\uEA11',\n 'Teamwork': '\\uEA12',\n 'HailNight': '\\uEA13',\n 'PeopleAdd': '\\uEA15',\n 'Glasses': '\\uEA16',\n 'DateTime2': '\\uEA17',\n 'Shield': '\\uEA18',\n 'Header1': '\\uEA19',\n 'PageAdd': '\\uEA1A',\n 'NumberedList': '\\uEA1C',\n 'PowerBILogo': '\\uEA1E',\n 'Info2': '\\uEA1F',\n 'MusicInCollectionFill': '\\uEA36',\n 'Asterisk': '\\uEA38',\n 'ErrorBadge': '\\uEA39',\n 'CircleFill': '\\uEA3B',\n 'Record2': '\\uEA3F',\n 'AllAppsMirrored': '\\uEA40',\n 'BookmarksMirrored': '\\uEA41',\n 'BulletedListMirrored': '\\uEA42',\n 'CaretHollowMirrored': '\\uEA45',\n 'CaretSolidMirrored': '\\uEA46',\n 'ChromeBackMirrored': '\\uEA47',\n 'ClearSelectionMirrored': '\\uEA48',\n 'ClosePaneMirrored': '\\uEA49',\n 'DockLeftMirrored': '\\uEA4C',\n 'DoubleChevronLeftMedMirrored': '\\uEA4D',\n 'GoMirrored': '\\uEA4F'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-3.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-4\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-4-a656cc0a.woff') format('woff')\"\n },\n icons: {\n 'HelpMirrored': '\\uEA51',\n 'ImportMirrored': '\\uEA52',\n 'ImportAllMirrored': '\\uEA53',\n 'ListMirrored': '\\uEA55',\n 'MailForwardMirrored': '\\uEA56',\n 'MailReplyMirrored': '\\uEA57',\n 'MailReplyAllMirrored': '\\uEA58',\n 'MiniContractMirrored': '\\uEA59',\n 'MiniExpandMirrored': '\\uEA5A',\n 'OpenPaneMirrored': '\\uEA5B',\n 'ParkingLocationMirrored': '\\uEA5E',\n 'SendMirrored': '\\uEA63',\n 'ShowResultsMirrored': '\\uEA65',\n 'ThumbnailViewMirrored': '\\uEA67',\n 'Media': '\\uEA69',\n 'Devices3': '\\uEA6C',\n 'Focus': '\\uEA6F',\n 'VideoLightOff': '\\uEA74',\n 'Lightbulb': '\\uEA80',\n 'StatusTriangle': '\\uEA82',\n 'VolumeDisabled': '\\uEA85',\n 'Puzzle': '\\uEA86',\n 'EmojiNeutral': '\\uEA87',\n 'EmojiDisappointed': '\\uEA88',\n 'HomeSolid': '\\uEA8A',\n 'Ringer': '\\uEA8F',\n 'PDF': '\\uEA90',\n 'HeartBroken': '\\uEA92',\n 'StoreLogo16': '\\uEA96',\n 'MultiSelectMirrored': '\\uEA98',\n 'Broom': '\\uEA99',\n 'AddToShoppingList': '\\uEA9A',\n 'Cocktails': '\\uEA9D',\n 'Wines': '\\uEABF',\n 'Articles': '\\uEAC1',\n 'Cycling': '\\uEAC7',\n 'DietPlanNotebook': '\\uEAC8',\n 'Pill': '\\uEACB',\n 'ExerciseTracker': '\\uEACC',\n 'HandsFree': '\\uEAD0',\n 'Medical': '\\uEAD4',\n 'Running': '\\uEADA',\n 'Weights': '\\uEADB',\n 'Trackers': '\\uEADF',\n 'AddNotes': '\\uEAE3',\n 'AllCurrency': '\\uEAE4',\n 'BarChart4': '\\uEAE7',\n 'CirclePlus': '\\uEAEE',\n 'Coffee': '\\uEAEF',\n 'Cotton': '\\uEAF3',\n 'Market': '\\uEAFC',\n 'Money': '\\uEAFD',\n 'PieDouble': '\\uEB04',\n 'PieSingle': '\\uEB05',\n 'RemoveFilter': '\\uEB08',\n 'Savings': '\\uEB0B',\n 'Sell': '\\uEB0C',\n 'StockDown': '\\uEB0F',\n 'StockUp': '\\uEB11',\n 'Lamp': '\\uEB19',\n 'Source': '\\uEB1B',\n 'MSNVideos': '\\uEB1C',\n 'Cricket': '\\uEB1E',\n 'Golf': '\\uEB1F',\n 'Baseball': '\\uEB20',\n 'Soccer': '\\uEB21',\n 'MoreSports': '\\uEB22',\n 'AutoRacing': '\\uEB24',\n 'CollegeHoops': '\\uEB25',\n 'CollegeFootball': '\\uEB26',\n 'ProFootball': '\\uEB27',\n 'ProHockey': '\\uEB28',\n 'Rugby': '\\uEB2D',\n 'SubstitutionsIn': '\\uEB31',\n 'Tennis': '\\uEB33',\n 'Arrivals': '\\uEB34',\n 'Design': '\\uEB3C',\n 'Website': '\\uEB41',\n 'Drop': '\\uEB42',\n 'HistoricalWeather': '\\uEB43',\n 'SkiResorts': '\\uEB45',\n 'Snowflake': '\\uEB46',\n 'BusSolid': '\\uEB47',\n 'FerrySolid': '\\uEB48',\n 'AirplaneSolid': '\\uEB4C',\n 'TrainSolid': '\\uEB4D',\n 'Ticket': '\\uEB54',\n 'WifiWarning4': '\\uEB63',\n 'Devices4': '\\uEB66',\n 'AzureLogo': '\\uEB6A',\n 'BingLogo': '\\uEB6B',\n 'MSNLogo': '\\uEB6C',\n 'OutlookLogoInverse': '\\uEB6D',\n 'OfficeLogo': '\\uEB6E',\n 'SkypeLogo': '\\uEB6F',\n 'Door': '\\uEB75',\n 'EditMirrored': '\\uEB7E',\n 'GiftCard': '\\uEB8E',\n 'DoubleBookmark': '\\uEB8F',\n 'StatusErrorFull': '\\uEB90'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-4.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-5\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-5-f95ba260.woff') format('woff')\"\n },\n icons: {\n 'Certificate': '\\uEB95',\n 'FastForward': '\\uEB9D',\n 'Rewind': '\\uEB9E',\n 'Photo2': '\\uEB9F',\n 'OpenSource': '\\uEBC2',\n 'Movers': '\\uEBCD',\n 'CloudDownload': '\\uEBD3',\n 'Family': '\\uEBDA',\n 'WindDirection': '\\uEBE6',\n 'Bug': '\\uEBE8',\n 'SiteScan': '\\uEBEC',\n 'BrowserScreenShot': '\\uEBED',\n 'F12DevTools': '\\uEBEE',\n 'CSS': '\\uEBEF',\n 'JS': '\\uEBF0',\n 'DeliveryTruck': '\\uEBF4',\n 'ReminderPerson': '\\uEBF7',\n 'ReminderGroup': '\\uEBF8',\n 'ReminderTime': '\\uEBF9',\n 'TabletMode': '\\uEBFC',\n 'Umbrella': '\\uEC04',\n 'NetworkTower': '\\uEC05',\n 'CityNext': '\\uEC06',\n 'CityNext2': '\\uEC07',\n 'Section': '\\uEC0C',\n 'OneNoteLogoInverse': '\\uEC0D',\n 'ToggleFilled': '\\uEC11',\n 'ToggleBorder': '\\uEC12',\n 'SliderThumb': '\\uEC13',\n 'ToggleThumb': '\\uEC14',\n 'Documentation': '\\uEC17',\n 'Badge': '\\uEC1B',\n 'Giftbox': '\\uEC1F',\n 'VisualStudioLogo': '\\uEC22',\n 'HomeGroup': '\\uEC26',\n 'ExcelLogoInverse': '\\uEC28',\n 'WordLogoInverse': '\\uEC29',\n 'PowerPointLogoInverse': '\\uEC2A',\n 'Cafe': '\\uEC32',\n 'SpeedHigh': '\\uEC4A',\n 'Commitments': '\\uEC4D',\n 'ThisPC': '\\uEC4E',\n 'MusicNote': '\\uEC4F',\n 'MicOff': '\\uEC54',\n 'PlaybackRate1x': '\\uEC57',\n 'EdgeLogo': '\\uEC60',\n 'CompletedSolid': '\\uEC61',\n 'AlbumRemove': '\\uEC62',\n 'MessageFill': '\\uEC70',\n 'TabletSelected': '\\uEC74',\n 'MobileSelected': '\\uEC75',\n 'LaptopSelected': '\\uEC76',\n 'TVMonitorSelected': '\\uEC77',\n 'DeveloperTools': '\\uEC7A',\n 'Shapes': '\\uEC7C',\n 'InsertTextBox': '\\uEC7D',\n 'LowerBrightness': '\\uEC8A',\n 'WebComponents': '\\uEC8B',\n 'OfflineStorage': '\\uEC8C',\n 'DOM': '\\uEC8D',\n 'CloudUpload': '\\uEC8E',\n 'ScrollUpDown': '\\uEC8F',\n 'DateTime': '\\uEC92',\n 'Event': '\\uECA3',\n 'Cake': '\\uECA4',\n 'Org': '\\uECA6',\n 'PartyLeader': '\\uECA7',\n 'DRM': '\\uECA8',\n 'CloudAdd': '\\uECA9',\n 'AppIconDefault': '\\uECAA',\n 'Photo2Add': '\\uECAB',\n 'Photo2Remove': '\\uECAC',\n 'Calories': '\\uECAD',\n 'POI': '\\uECAF',\n 'AddTo': '\\uECC8',\n 'RadioBtnOff': '\\uECCA',\n 'RadioBtnOn': '\\uECCB',\n 'ExploreContent': '\\uECCD',\n 'Product': '\\uECDC',\n 'ProgressLoopInner': '\\uECDE',\n 'ProgressLoopOuter': '\\uECDF',\n 'Blocked2': '\\uECE4',\n 'FangBody': '\\uECEB',\n 'Toolbox': '\\uECED',\n 'PageHeader': '\\uECEE',\n 'ChatInviteFriend': '\\uECFE',\n 'Brush': '\\uECFF',\n 'Shirt': '\\uED00',\n 'Crown': '\\uED01',\n 'Diamond': '\\uED02',\n 'ScaleUp': '\\uED09',\n 'QRCode': '\\uED14',\n 'Feedback': '\\uED15',\n 'SharepointLogoInverse': '\\uED18',\n 'YammerLogo': '\\uED19',\n 'Hide': '\\uED1A',\n 'Uneditable': '\\uED1D',\n 'ReturnToSession': '\\uED24',\n 'OpenFolderHorizontal': '\\uED25',\n 'CalendarMirrored': '\\uED28'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-5.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-6\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-6-ef6fd590.woff') format('woff')\"\n },\n icons: {\n 'SwayLogoInverse': '\\uED29',\n 'OutOfOffice': '\\uED34',\n 'Trophy': '\\uED3F',\n 'ReopenPages': '\\uED50',\n 'EmojiTabSymbols': '\\uED58',\n 'AADLogo': '\\uED68',\n 'AccessLogo': '\\uED69',\n 'AdminALogoInverse32': '\\uED6A',\n 'AdminCLogoInverse32': '\\uED6B',\n 'AdminDLogoInverse32': '\\uED6C',\n 'AdminELogoInverse32': '\\uED6D',\n 'AdminLLogoInverse32': '\\uED6E',\n 'AdminMLogoInverse32': '\\uED6F',\n 'AdminOLogoInverse32': '\\uED70',\n 'AdminPLogoInverse32': '\\uED71',\n 'AdminSLogoInverse32': '\\uED72',\n 'AdminYLogoInverse32': '\\uED73',\n 'DelveLogoInverse': '\\uED76',\n 'ExchangeLogoInverse': '\\uED78',\n 'LyncLogo': '\\uED79',\n 'OfficeVideoLogoInverse': '\\uED7A',\n 'SocialListeningLogo': '\\uED7C',\n 'VisioLogoInverse': '\\uED7D',\n 'Balloons': '\\uED7E',\n 'Cat': '\\uED7F',\n 'MailAlert': '\\uED80',\n 'MailCheck': '\\uED81',\n 'MailLowImportance': '\\uED82',\n 'MailPause': '\\uED83',\n 'MailRepeat': '\\uED84',\n 'SecurityGroup': '\\uED85',\n 'Table': '\\uED86',\n 'VoicemailForward': '\\uED87',\n 'VoicemailReply': '\\uED88',\n 'Waffle': '\\uED89',\n 'RemoveEvent': '\\uED8A',\n 'EventInfo': '\\uED8B',\n 'ForwardEvent': '\\uED8C',\n 'WipePhone': '\\uED8D',\n 'AddOnlineMeeting': '\\uED8E',\n 'JoinOnlineMeeting': '\\uED8F',\n 'RemoveLink': '\\uED90',\n 'PeopleBlock': '\\uED91',\n 'PeopleRepeat': '\\uED92',\n 'PeopleAlert': '\\uED93',\n 'PeoplePause': '\\uED94',\n 'TransferCall': '\\uED95',\n 'AddPhone': '\\uED96',\n 'UnknownCall': '\\uED97',\n 'NoteReply': '\\uED98',\n 'NoteForward': '\\uED99',\n 'NotePinned': '\\uED9A',\n 'RemoveOccurrence': '\\uED9B',\n 'Timeline': '\\uED9C',\n 'EditNote': '\\uED9D',\n 'CircleHalfFull': '\\uED9E',\n 'Room': '\\uED9F',\n 'Unsubscribe': '\\uEDA0',\n 'Subscribe': '\\uEDA1',\n 'HardDrive': '\\uEDA2',\n 'RecurringTask': '\\uEDB2',\n 'TaskManager': '\\uEDB7',\n 'TaskManagerMirrored': '\\uEDB8',\n 'Combine': '\\uEDBB',\n 'Split': '\\uEDBC',\n 'DoubleChevronUp': '\\uEDBD',\n 'DoubleChevronLeft': '\\uEDBE',\n 'DoubleChevronRight': '\\uEDBF',\n 'TextBox': '\\uEDC2',\n 'TextField': '\\uEDC3',\n 'NumberField': '\\uEDC4',\n 'Dropdown': '\\uEDC5',\n 'PenWorkspace': '\\uEDC6',\n 'BookingsLogo': '\\uEDC7',\n 'ClassNotebookLogoInverse': '\\uEDC8',\n 'DelveAnalyticsLogo': '\\uEDCA',\n 'DocsLogoInverse': '\\uEDCB',\n 'Dynamics365Logo': '\\uEDCC',\n 'DynamicSMBLogo': '\\uEDCD',\n 'OfficeAssistantLogo': '\\uEDCE',\n 'OfficeStoreLogo': '\\uEDCF',\n 'OneNoteEduLogoInverse': '\\uEDD0',\n 'PlannerLogo': '\\uEDD1',\n 'PowerApps': '\\uEDD2',\n 'Suitcase': '\\uEDD3',\n 'ProjectLogoInverse': '\\uEDD4',\n 'CaretLeft8': '\\uEDD5',\n 'CaretRight8': '\\uEDD6',\n 'CaretUp8': '\\uEDD7',\n 'CaretDown8': '\\uEDD8',\n 'CaretLeftSolid8': '\\uEDD9',\n 'CaretRightSolid8': '\\uEDDA',\n 'CaretUpSolid8': '\\uEDDB',\n 'CaretDownSolid8': '\\uEDDC',\n 'ClearFormatting': '\\uEDDD',\n 'Superscript': '\\uEDDE',\n 'Subscript': '\\uEDDF',\n 'Strikethrough': '\\uEDE0',\n 'Export': '\\uEDE1',\n 'ExportMirrored': '\\uEDE2'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-6.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-7\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-7-2b97bb99.woff') format('woff')\"\n },\n icons: {\n 'SingleBookmark': '\\uEDFF',\n 'SingleBookmarkSolid': '\\uEE00',\n 'DoubleChevronDown': '\\uEE04',\n 'FollowUser': '\\uEE05',\n 'ReplyAll': '\\uEE0A',\n 'WorkforceManagement': '\\uEE0F',\n 'RecruitmentManagement': '\\uEE12',\n 'Questionnaire': '\\uEE19',\n 'ManagerSelfService': '\\uEE23',\n 'ProductionFloorManagement': '\\uEE29',\n 'ProductRelease': '\\uEE2E',\n 'ProductVariant': '\\uEE30',\n 'ReplyMirrored': '\\uEE35',\n 'ReplyAllMirrored': '\\uEE36',\n 'Medal': '\\uEE38',\n 'AddGroup': '\\uEE3D',\n 'QuestionnaireMirrored': '\\uEE4B',\n 'CloudImportExport': '\\uEE55',\n 'TemporaryUser': '\\uEE58',\n 'CaretSolid16': '\\uEE62',\n 'GroupedDescending': '\\uEE66',\n 'GroupedAscending': '\\uEE67',\n 'AwayStatus': '\\uEE6A',\n 'MyMoviesTV': '\\uEE6C',\n 'GenericScan': '\\uEE6F',\n 'AustralianRules': '\\uEE70',\n 'WifiEthernet': '\\uEE77',\n 'TrackersMirrored': '\\uEE92',\n 'DateTimeMirrored': '\\uEE93',\n 'StopSolid': '\\uEE95',\n 'DoubleChevronUp12': '\\uEE96',\n 'DoubleChevronDown12': '\\uEE97',\n 'DoubleChevronLeft12': '\\uEE98',\n 'DoubleChevronRight12': '\\uEE99',\n 'CalendarAgenda': '\\uEE9A',\n 'ConnectVirtualMachine': '\\uEE9D',\n 'AddEvent': '\\uEEB5',\n 'AssetLibrary': '\\uEEB6',\n 'DataConnectionLibrary': '\\uEEB7',\n 'DocLibrary': '\\uEEB8',\n 'FormLibrary': '\\uEEB9',\n 'FormLibraryMirrored': '\\uEEBA',\n 'ReportLibrary': '\\uEEBB',\n 'ReportLibraryMirrored': '\\uEEBC',\n 'ContactCard': '\\uEEBD',\n 'CustomList': '\\uEEBE',\n 'CustomListMirrored': '\\uEEBF',\n 'IssueTracking': '\\uEEC0',\n 'IssueTrackingMirrored': '\\uEEC1',\n 'PictureLibrary': '\\uEEC2',\n 'OfficeAddinsLogo': '\\uEEC7',\n 'OfflineOneDriveParachute': '\\uEEC8',\n 'OfflineOneDriveParachuteDisabled': '\\uEEC9',\n 'TriangleSolidUp12': '\\uEECC',\n 'TriangleSolidDown12': '\\uEECD',\n 'TriangleSolidLeft12': '\\uEECE',\n 'TriangleSolidRight12': '\\uEECF',\n 'TriangleUp12': '\\uEED0',\n 'TriangleDown12': '\\uEED1',\n 'TriangleLeft12': '\\uEED2',\n 'TriangleRight12': '\\uEED3',\n 'ArrowUpRight8': '\\uEED4',\n 'ArrowDownRight8': '\\uEED5',\n 'DocumentSet': '\\uEED6',\n 'GoToDashboard': '\\uEEED',\n 'DelveAnalytics': '\\uEEEE',\n 'ArrowUpRightMirrored8': '\\uEEEF',\n 'ArrowDownRightMirrored8': '\\uEEF0',\n 'CompanyDirectory': '\\uEF0D',\n 'OpenEnrollment': '\\uEF1C',\n 'CompanyDirectoryMirrored': '\\uEF2B',\n 'OneDriveAdd': '\\uEF32',\n 'ProfileSearch': '\\uEF35',\n 'Header2': '\\uEF36',\n 'Header3': '\\uEF37',\n 'Header4': '\\uEF38',\n 'RingerSolid': '\\uEF3A',\n 'Eyedropper': '\\uEF3C',\n 'MarketDown': '\\uEF42',\n 'CalendarWorkWeek': '\\uEF51',\n 'SidePanel': '\\uEF52',\n 'GlobeFavorite': '\\uEF53',\n 'CaretTopLeftSolid8': '\\uEF54',\n 'CaretTopRightSolid8': '\\uEF55',\n 'ViewAll2': '\\uEF56',\n 'DocumentReply': '\\uEF57',\n 'PlayerSettings': '\\uEF58',\n 'ReceiptForward': '\\uEF59',\n 'ReceiptReply': '\\uEF5A',\n 'ReceiptCheck': '\\uEF5B',\n 'Fax': '\\uEF5C',\n 'RecurringEvent': '\\uEF5D',\n 'ReplyAlt': '\\uEF5E',\n 'ReplyAllAlt': '\\uEF5F',\n 'EditStyle': '\\uEF60',\n 'EditMail': '\\uEF61',\n 'Lifesaver': '\\uEF62',\n 'LifesaverLock': '\\uEF63',\n 'InboxCheck': '\\uEF64',\n 'FolderSearch': '\\uEF65'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-7.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-8\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-8-6fdf1528.woff') format('woff')\"\n },\n icons: {\n 'CollapseMenu': '\\uEF66',\n 'ExpandMenu': '\\uEF67',\n 'Boards': '\\uEF68',\n 'SunAdd': '\\uEF69',\n 'SunQuestionMark': '\\uEF6A',\n 'LandscapeOrientation': '\\uEF6B',\n 'DocumentSearch': '\\uEF6C',\n 'PublicCalendar': '\\uEF6D',\n 'PublicContactCard': '\\uEF6E',\n 'PublicEmail': '\\uEF6F',\n 'PublicFolder': '\\uEF70',\n 'WordDocument': '\\uEF71',\n 'PowerPointDocument': '\\uEF72',\n 'ExcelDocument': '\\uEF73',\n 'GroupedList': '\\uEF74',\n 'ClassroomLogo': '\\uEF75',\n 'Sections': '\\uEF76',\n 'EditPhoto': '\\uEF77',\n 'Starburst': '\\uEF78',\n 'ShareiOS': '\\uEF79',\n 'AirTickets': '\\uEF7A',\n 'PencilReply': '\\uEF7B',\n 'Tiles2': '\\uEF7C',\n 'SkypeCircleCheck': '\\uEF7D',\n 'SkypeCircleClock': '\\uEF7E',\n 'SkypeCircleMinus': '\\uEF7F',\n 'SkypeMessage': '\\uEF83',\n 'ClosedCaption': '\\uEF84',\n 'ATPLogo': '\\uEF85',\n 'OfficeFormsLogoInverse': '\\uEF86',\n 'RecycleBin': '\\uEF87',\n 'EmptyRecycleBin': '\\uEF88',\n 'Hide2': '\\uEF89',\n 'Breadcrumb': '\\uEF8C',\n 'BirthdayCake': '\\uEF8D',\n 'TimeEntry': '\\uEF95',\n 'CRMProcesses': '\\uEFB1',\n 'PageEdit': '\\uEFB6',\n 'PageArrowRight': '\\uEFB8',\n 'PageRemove': '\\uEFBA',\n 'Database': '\\uEFC7',\n 'DataManagementSettings': '\\uEFC8',\n 'CRMServices': '\\uEFD2',\n 'EditContact': '\\uEFD3',\n 'ConnectContacts': '\\uEFD4',\n 'AppIconDefaultAdd': '\\uEFDA',\n 'AppIconDefaultList': '\\uEFDE',\n 'ActivateOrders': '\\uEFE0',\n 'DeactivateOrders': '\\uEFE1',\n 'ProductCatalog': '\\uEFE8',\n 'ScatterChart': '\\uEFEB',\n 'AccountActivity': '\\uEFF4',\n 'DocumentManagement': '\\uEFFC',\n 'CRMReport': '\\uEFFE',\n 'KnowledgeArticle': '\\uF000',\n 'Relationship': '\\uF003',\n 'HomeVerify': '\\uF00E',\n 'ZipFolder': '\\uF012',\n 'SurveyQuestions': '\\uF01B',\n 'TextDocument': '\\uF029',\n 'TextDocumentShared': '\\uF02B',\n 'PageCheckedOut': '\\uF02C',\n 'PageShared': '\\uF02D',\n 'SaveAndClose': '\\uF038',\n 'Script': '\\uF03A',\n 'Archive': '\\uF03F',\n 'ActivityFeed': '\\uF056',\n 'Compare': '\\uF057',\n 'EventDate': '\\uF059',\n 'ArrowUpRight': '\\uF069',\n 'CaretRight': '\\uF06B',\n 'SetAction': '\\uF071',\n 'ChatBot': '\\uF08B',\n 'CaretSolidLeft': '\\uF08D',\n 'CaretSolidDown': '\\uF08E',\n 'CaretSolidRight': '\\uF08F',\n 'CaretSolidUp': '\\uF090',\n 'PowerAppsLogo': '\\uF091',\n 'PowerApps2Logo': '\\uF092',\n 'SearchIssue': '\\uF09A',\n 'SearchIssueMirrored': '\\uF09B',\n 'FabricAssetLibrary': '\\uF09C',\n 'FabricDataConnectionLibrary': '\\uF09D',\n 'FabricDocLibrary': '\\uF09E',\n 'FabricFormLibrary': '\\uF09F',\n 'FabricFormLibraryMirrored': '\\uF0A0',\n 'FabricReportLibrary': '\\uF0A1',\n 'FabricReportLibraryMirrored': '\\uF0A2',\n 'FabricPublicFolder': '\\uF0A3',\n 'FabricFolderSearch': '\\uF0A4',\n 'FabricMovetoFolder': '\\uF0A5',\n 'FabricUnsyncFolder': '\\uF0A6',\n 'FabricSyncFolder': '\\uF0A7',\n 'FabricOpenFolderHorizontal': '\\uF0A8',\n 'FabricFolder': '\\uF0A9',\n 'FabricFolderFill': '\\uF0AA',\n 'FabricNewFolder': '\\uF0AB',\n 'FabricPictureLibrary': '\\uF0AC',\n 'PhotoVideoMedia': '\\uF0B1',\n 'AddFavorite': '\\uF0C8'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-8.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-9\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-9-c6162b42.woff') format('woff')\"\n },\n icons: {\n 'AddFavoriteFill': '\\uF0C9',\n 'BufferTimeBefore': '\\uF0CF',\n 'BufferTimeAfter': '\\uF0D0',\n 'BufferTimeBoth': '\\uF0D1',\n 'PublishContent': '\\uF0D4',\n 'ClipboardList': '\\uF0E3',\n 'ClipboardListMirrored': '\\uF0E4',\n 'CannedChat': '\\uF0F2',\n 'SkypeForBusinessLogo': '\\uF0FC',\n 'TabCenter': '\\uF100',\n 'PageCheckedin': '\\uF104',\n 'PageList': '\\uF106',\n 'ReadOutLoud': '\\uF112',\n 'CaretBottomLeftSolid8': '\\uF121',\n 'CaretBottomRightSolid8': '\\uF122',\n 'FolderHorizontal': '\\uF12B',\n 'MicrosoftStaffhubLogo': '\\uF130',\n 'GiftboxOpen': '\\uF133',\n 'StatusCircleOuter': '\\uF136',\n 'StatusCircleInner': '\\uF137',\n 'StatusCircleRing': '\\uF138',\n 'StatusTriangleOuter': '\\uF139',\n 'StatusTriangleInner': '\\uF13A',\n 'StatusTriangleExclamation': '\\uF13B',\n 'StatusCircleExclamation': '\\uF13C',\n 'StatusCircleErrorX': '\\uF13D',\n 'StatusCircleInfo': '\\uF13F',\n 'StatusCircleBlock': '\\uF140',\n 'StatusCircleBlock2': '\\uF141',\n 'StatusCircleQuestionMark': '\\uF142',\n 'StatusCircleSync': '\\uF143',\n 'Toll': '\\uF160',\n 'ExploreContentSingle': '\\uF164',\n 'CollapseContent': '\\uF165',\n 'CollapseContentSingle': '\\uF166',\n 'InfoSolid': '\\uF167',\n 'GroupList': '\\uF168',\n 'ProgressRingDots': '\\uF16A',\n 'CaloriesAdd': '\\uF172',\n 'BranchFork': '\\uF173',\n 'MuteChat': '\\uF17A',\n 'AddHome': '\\uF17B',\n 'AddWork': '\\uF17C',\n 'MobileReport': '\\uF18A',\n 'ScaleVolume': '\\uF18C',\n 'HardDriveGroup': '\\uF18F',\n 'FastMode': '\\uF19A',\n 'ToggleLeft': '\\uF19E',\n 'ToggleRight': '\\uF19F',\n 'TriangleShape': '\\uF1A7',\n 'RectangleShape': '\\uF1A9',\n 'CubeShape': '\\uF1AA',\n 'Trophy2': '\\uF1AE',\n 'BucketColor': '\\uF1B6',\n 'BucketColorFill': '\\uF1B7',\n 'Taskboard': '\\uF1C2',\n 'SingleColumn': '\\uF1D3',\n 'DoubleColumn': '\\uF1D4',\n 'TripleColumn': '\\uF1D5',\n 'ColumnLeftTwoThirds': '\\uF1D6',\n 'ColumnRightTwoThirds': '\\uF1D7',\n 'AccessLogoFill': '\\uF1DB',\n 'AnalyticsLogo': '\\uF1DE',\n 'AnalyticsQuery': '\\uF1DF',\n 'NewAnalyticsQuery': '\\uF1E0',\n 'AnalyticsReport': '\\uF1E1',\n 'WordLogo': '\\uF1E3',\n 'WordLogoFill': '\\uF1E4',\n 'ExcelLogo': '\\uF1E5',\n 'ExcelLogoFill': '\\uF1E6',\n 'OneNoteLogo': '\\uF1E7',\n 'OneNoteLogoFill': '\\uF1E8',\n 'OutlookLogo': '\\uF1E9',\n 'OutlookLogoFill': '\\uF1EA',\n 'PowerPointLogo': '\\uF1EB',\n 'PowerPointLogoFill': '\\uF1EC',\n 'PublisherLogo': '\\uF1ED',\n 'PublisherLogoFill': '\\uF1EE',\n 'ScheduleEventAction': '\\uF1EF',\n 'FlameSolid': '\\uF1F3',\n 'ServerProcesses': '\\uF1FE',\n 'Server': '\\uF201',\n 'SaveAll': '\\uF203',\n 'LinkedInLogo': '\\uF20A',\n 'Decimals': '\\uF218',\n 'SidePanelMirrored': '\\uF221',\n 'ProtectRestrict': '\\uF22A',\n 'Blog': '\\uF22B',\n 'UnknownMirrored': '\\uF22E',\n 'PublicContactCardMirrored': '\\uF230',\n 'GridViewSmall': '\\uF232',\n 'GridViewMedium': '\\uF233',\n 'GridViewLarge': '\\uF234',\n 'Step': '\\uF241',\n 'StepInsert': '\\uF242',\n 'StepShared': '\\uF243',\n 'StepSharedAdd': '\\uF244',\n 'StepSharedInsert': '\\uF245',\n 'ViewDashboard': '\\uF246',\n 'ViewList': '\\uF247'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-9.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@uifabric/styling';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none',\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons\\\"\",\n src: \"url('\" + baseUrl + \"fabric-icons-a13498cf.woff') format('woff')\",\n },\n icons: {\n GlobalNavButton: '\\uE700',\n ChevronDown: '\\uE70D',\n ChevronUp: '\\uE70E',\n Edit: '\\uE70F',\n Add: '\\uE710',\n Cancel: '\\uE711',\n More: '\\uE712',\n Settings: '\\uE713',\n Mail: '\\uE715',\n Filter: '\\uE71C',\n Search: '\\uE721',\n Share: '\\uE72D',\n BlockedSite: '\\uE72F',\n FavoriteStar: '\\uE734',\n FavoriteStarFill: '\\uE735',\n CheckMark: '\\uE73E',\n Delete: '\\uE74D',\n ChevronLeft: '\\uE76B',\n ChevronRight: '\\uE76C',\n Calendar: '\\uE787',\n Megaphone: '\\uE789',\n Undo: '\\uE7A7',\n Flag: '\\uE7C1',\n Page: '\\uE7C3',\n Pinned: '\\uE840',\n View: '\\uE890',\n Clear: '\\uE894',\n Download: '\\uE896',\n Upload: '\\uE898',\n Folder: '\\uE8B7',\n Sort: '\\uE8CB',\n AlignRight: '\\uE8E2',\n AlignLeft: '\\uE8E4',\n Tag: '\\uE8EC',\n AddFriend: '\\uE8FA',\n Info: '\\uE946',\n SortLines: '\\uE9D0',\n List: '\\uEA37',\n CircleRing: '\\uEA3A',\n Heart: '\\uEB51',\n HeartFill: '\\uEB52',\n Tiles: '\\uECA5',\n Embed: '\\uECCE',\n Glimmer: '\\uECF4',\n Ascending: '\\uEDC0',\n Descending: '\\uEDC1',\n SortUp: '\\uEE68',\n SortDown: '\\uEE69',\n SyncToPC: '\\uEE6E',\n LargeGrid: '\\uEECB',\n SkypeCheck: '\\uEF80',\n SkypeClock: '\\uEF81',\n SkypeMinus: '\\uEF82',\n ClearFilter: '\\uEF8F',\n Flow: '\\uEF90',\n StatusCircleCheckmark: '\\uF13E',\n MoreVertical: '\\uF2BC',\n },\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons.js.map","import { registerIconAlias } from '@uifabric/styling';\nexport var registerIconAliases = function () {\n registerIconAlias('trash', 'delete');\n registerIconAlias('onedrive', 'onedrivelogo');\n registerIconAlias('alertsolid12', 'eventdatemissed12');\n registerIconAlias('sixpointstar', '6pointstar');\n registerIconAlias('twelvepointstar', '12pointstar');\n registerIconAlias('toggleon', 'toggleleft');\n registerIconAlias('toggleoff', 'toggleright');\n};\nexport default registerIconAliases;\n//# sourceMappingURL=iconAliases.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('@uifabric/icons', '7.9.4');\n//# sourceMappingURL=version.js.map","import { initializeIcons as i } from './fabric-icons';\nimport { initializeIcons as i0 } from './fabric-icons-0';\nimport { initializeIcons as i1 } from './fabric-icons-1';\nimport { initializeIcons as i2 } from './fabric-icons-2';\nimport { initializeIcons as i3 } from './fabric-icons-3';\nimport { initializeIcons as i4 } from './fabric-icons-4';\nimport { initializeIcons as i5 } from './fabric-icons-5';\nimport { initializeIcons as i6 } from './fabric-icons-6';\nimport { initializeIcons as i7 } from './fabric-icons-7';\nimport { initializeIcons as i8 } from './fabric-icons-8';\nimport { initializeIcons as i9 } from './fabric-icons-9';\nimport { initializeIcons as i10 } from './fabric-icons-10';\nimport { initializeIcons as i11 } from './fabric-icons-11';\nimport { initializeIcons as i12 } from './fabric-icons-12';\nimport { initializeIcons as i13 } from './fabric-icons-13';\nimport { initializeIcons as i14 } from './fabric-icons-14';\nimport { initializeIcons as i15 } from './fabric-icons-15';\nimport { initializeIcons as i16 } from './fabric-icons-16';\nimport { initializeIcons as i17 } from './fabric-icons-17';\nimport { registerIconAliases } from './iconAliases';\nimport { getWindow } from '@uifabric/utilities';\nvar DEFAULT_BASE_URL = 'https://spoppe-b.azureedge.net/files/fabric-cdn-prod_20210407.001/assets/icons/';\nvar win = getWindow();\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ((_b = (_a = win) === null || _a === void 0 ? void 0 : _a.FabricConfig) === null || _b === void 0 ? void 0 : _b.iconBaseUrl) || ((_d = (_c = win) === null || _c === void 0 ? void 0 : _c.FabricConfig) === null || _d === void 0 ? void 0 : _d.fontBaseUrl) || DEFAULT_BASE_URL; }\n var _a, _b, _c, _d;\n [\n i,\n i0,\n i1,\n i2,\n i3,\n i4,\n i5,\n i6,\n i7,\n i8,\n i9,\n i10,\n i11,\n i12,\n i13,\n i14,\n i15,\n i16,\n i17,\n ].forEach(function (initialize) { return initialize(baseUrl, options); });\n registerIconAliases();\n}\nimport './version';\n//# sourceMappingURL=index.js.map","/**\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 typeof document !== 'undefined' &&\n !!document.documentElement &&\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 _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) {\n this._rules = [];\n this._preservedRules = [];\n this._rulesToInsert = [];\n this._counter = 0;\n this._keyToClassName = {};\n this._onResetCallbacks = [];\n this._classNameToArgs = {};\n this._config = __assign({ injectionMode: InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n this._keyToClassName = this._config.classNameCache || {};\n }\n /**\n * Gets the singleton instance.\n */\n Stylesheet.getInstance = function () {\n var _a;\n _stylesheet = _global[STYLESHEET_SETTING];\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n var fabricConfig = ((_a = _global) === null || _a === void 0 ? void 0 : _a.FabricConfig) || {};\n _stylesheet = _global[STYLESHEET_SETTING] = new Stylesheet(fabricConfig.mergeStyles);\n }\n return _stylesheet;\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 */\n Stylesheet.prototype.onReset = function (callback) {\n this._onResetCallbacks.push(callback);\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 \"\" + (namespace ? namespace + '-' : '') + prefix + \"-\" + 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 arguments 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 (this._config.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 if (this._config.onInsertRule) {\n this._config.onInsertRule(rule);\n }\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('') + this._rulesToInsert.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._rulesToInsert = [];\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 { __spreadArrays } 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] = __spreadArrays((Array.isArray(mergedValue) ? mergedValue : [mergedValue]), (Array.isArray(currentValue) ? currentValue : [currentValue]));\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 Stylesheet.getInstance().insertRule(\"@font-face{\" + serializeRuleEntries(getStyleOptions(), font) + \"}\", true);\n}\n//# sourceMappingURL=fontFace.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n var _a, _b;\n if (!_vendorSettings) {\n var doc = typeof document !== 'undefined' ? document : undefined;\n var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n var userAgent = (_b = (_a = nav) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.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","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 name = stylesheet.getClassName();\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 stylesheet.insertRule(\"@keyframes \" + name + \"{\" + 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 _a, _b;\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 _c = extractStyleParts(styles), classes = _c.classes, objects = _c.objects;\n if ((_a = objects) === null || _a === void 0 ? void 0 : _a.length) {\n var registration = styleToRegistration(options || {}, { displayName: styleSetArea }, objects);\n if (registration) {\n registrations.push(registration);\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n }\n else {\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, (_b = options) === null || _b === void 0 ? void 0 : _b.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","import { __spreadArrays } 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';\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(\" + 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' ? value.split(' ') : [value];\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(\".\" + registration.className, specificityMultiplier));\n // Insert. Note if a media query, we must close the query with a final bracket.\n var processedRule = selector + \"{\" + rules + \"}\" + (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, __spreadArrays([options], args));\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n return registration.className;\n }\n return '';\n}\n//# sourceMappingURL=styleToClassName.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] = \"\" + value + 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 parts[0] + \" \" + parts[3] + \" \" + parts[2] + \" \" + parts[1];\n }\n }\n return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","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 { __spreadArrays } 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 }, __spreadArrays(refs));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@uifabric/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) {\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n _win = window;\n}\ncatch (e) {\n /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var packages = (_win.__packages__ = _win.__packages__ || {});\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n var versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n//# sourceMappingURL=setVersion.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@uifabric/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\n/**\n * {@docCategory AnimationClassNames}\n */\nexport var AnimationClassNames = buildClassMap(AnimationStyles);\n//# sourceMappingURL=AnimationClassNames.js.map","import { mergeStyles } from '@uifabric/merge-styles';\nimport { DefaultPalette } from '../styles/DefaultPalette';\nimport { getTheme } from '../styles/index';\nexport var ColorClassNames = {};\nfor (var colorName in DefaultPalette) {\n if (DefaultPalette.hasOwnProperty(colorName)) {\n // Foreground color\n _defineGetter(ColorClassNames, colorName, '', false, 'color');\n // Hover color\n _defineGetter(ColorClassNames, colorName, 'Hover', true, 'color');\n // Background color\n _defineGetter(ColorClassNames, colorName, 'Background', false, 'background');\n // Background hover\n _defineGetter(ColorClassNames, colorName, 'BackgroundHover', true, 'background');\n // Border color\n _defineGetter(ColorClassNames, colorName, 'Border', false, 'borderColor');\n // Border hover color\n _defineGetter(ColorClassNames, colorName, 'BorderHover', true, 'borderColor');\n }\n}\n/**\n * Defines a getter for the given class configuration.\n */\nfunction _defineGetter(obj, colorName, suffix, isHover, cssProperty) {\n Object.defineProperty(obj, colorName + suffix, {\n get: function () {\n var _a;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var style = (_a = {}, _a[cssProperty] = getTheme().palette[colorName], _a);\n return mergeStyles(isHover ? { selectors: { ':hover': style } } : style).toString();\n },\n enumerable: true,\n configurable: true,\n });\n}\n//# sourceMappingURL=ColorClassNames.js.map","import { buildClassMap } from '../utilities/buildClassMap';\nimport { DefaultFontStyles } from '../styles/DefaultFontStyles';\n/**\n * {@docCategory FontClassNames}\n */\nexport var FontClassNames = buildClassMap(DefaultFontStyles);\n//# sourceMappingURL=FontClassNames.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('@uifabric/styling', '7.25.0');\n//# sourceMappingURL=version.js.map","export * from './classNames/index';\nexport * from './styles/index';\nexport * from './utilities/index';\nexport * from './MergeStyles';\nimport './version';\n// Ensure theme is initialized when this package is referenced.\nimport { initializeThemeInCustomizations } from './styles/theme';\ninitializeThemeInCustomizations();\n//# sourceMappingURL=index.js.map","export var HighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var HighContrastSelectorWhite = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: black-on-white), screen and (forced-colors: active) and (prefers-color-scheme: light)';\nexport var HighContrastSelectorBlack = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: white-on-black), screen and (forced-colors: active) and (prefers-color-scheme: dark)';\n/**\n * @deprecated Use `HighContrastSelector`\n */\nexport var EdgeChromiumHighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var ScreenWidthMinSmall = 320;\nexport var ScreenWidthMinMedium = 480;\nexport var ScreenWidthMinLarge = 640;\nexport var ScreenWidthMinXLarge = 1024;\nexport var ScreenWidthMinXXLarge = 1366;\nexport var ScreenWidthMinXXXLarge = 1920;\nexport var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\nexport var ScreenWidthMinUhfMobile = 768;\nexport function getScreenSelector(min, max) {\n var minSelector = typeof min === 'number' ? \" and (min-width: \" + min + \"px)\" : '';\n var maxSelector = typeof max === 'number' ? \" and (max-width: \" + max + \"px)\" : '';\n return \"@media only screen\" + minSelector + maxSelector;\n}\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle() {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getEdgeChromiumNoHighContrastAdjustSelector() {\n var _a;\n return _a = {},\n // eslint-disable-next-line deprecation/deprecation\n _a[EdgeChromiumHighContrastSelector] = {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n },\n _a;\n}\n//# sourceMappingURL=CommonStyles.js.map","// This file mimics styles and mixins from _General.Mixins.scss\nexport var normalize = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\nexport var noWrap = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=GeneralStyles.js.map","import { __assign } from \"tslib\";\nimport { keyframes } from '@uifabric/merge-styles';\nvar DEFAULT_DURATION = '14s';\nvar DEFAULT_DELAY = '2s';\nvar DEFAULT_ITERATION_COUNT = '1';\nfunction _continuousPulseStepOne(beaconColorOne, innerDimension) {\n return {\n borderColor: beaconColorOne,\n borderWidth: '0px',\n width: innerDimension,\n height: innerDimension,\n };\n}\nfunction _continuousPulseStepTwo(borderWidth) {\n return {\n opacity: 1,\n borderWidth: borderWidth,\n };\n}\nfunction _continuousPulseStepThree() {\n return {\n opacity: 1,\n };\n}\nfunction _continuousPulseStepFour(beaconColorTwo, outerDimension) {\n return {\n borderWidth: '0',\n width: outerDimension,\n height: outerDimension,\n opacity: 0,\n borderColor: beaconColorTwo,\n };\n}\nfunction _continuousPulseStepFive(beaconColorOne, innerDimension) {\n return __assign(__assign({}, _continuousPulseStepOne(beaconColorOne, innerDimension)), {\n opacity: 0,\n });\n}\nfunction _continuousPulseAnimationDouble(beaconColorOne, beaconColorTwo, innerDimension, outerDimension, borderWidth) {\n return keyframes({\n '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '1.42%': _continuousPulseStepTwo(borderWidth),\n '3.57%': _continuousPulseStepThree(),\n '7.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '8%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '29.99%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '30%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '31.42%': _continuousPulseStepTwo(borderWidth),\n '33.57%': _continuousPulseStepThree(),\n '37.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '38%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '79.42%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '79.43': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '81.85': _continuousPulseStepTwo(borderWidth),\n '83.42': _continuousPulseStepThree(),\n '87%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '100%': {},\n });\n}\nfunction _continuousPulseAnimationSingle(beaconColorOne, beaconColorTwo, innerDimension, outerDimension, borderWidth) {\n return keyframes({\n '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '14.2%': _continuousPulseStepTwo(borderWidth),\n '35.7%': _continuousPulseStepThree(),\n '71.4%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '100%': {},\n });\n}\nfunction _createDefaultAnimation(animationName, delayLength) {\n return {\n animationName: animationName,\n animationIterationCount: DEFAULT_ITERATION_COUNT,\n animationDuration: DEFAULT_DURATION,\n animationDelay: delayLength || DEFAULT_DELAY,\n };\n}\nexport var PulsingBeaconAnimationStyles = {\n continuousPulseAnimationDouble: _continuousPulseAnimationDouble,\n continuousPulseAnimationSingle: _continuousPulseAnimationSingle,\n createDefaultAnimation: _createDefaultAnimation,\n};\n//# sourceMappingURL=PulsingBeaconAnimationStyles.js.map","var DEFAULT_HEIGHT = '50%';\nvar DEFAULT_WIDTH = 20;\n/**\n * - Generates a style used to fade out an overflowing content by defining a style for an :after pseudo element.\n * - Apply it to the :after selector for all combination of states the parent of content might have (normal, hover,\n * selected, focus).\n * - Requires the target to have position set to relative and overflow set to hidden.\n *\n * @example\n * ```tsx\n * // Assuming the following DOM structure and the different background colors coming from\n * // the parent holding the content.\n * <div className={classNames.parent}>\n * <span className={classNames.content}>Overflown Content</span>\n * </div>\n * ```\n * ```ts\n * // This is how the style set would look in Component.styles.ts\n * const { bodyBackground } = theme.semanticColors;\n * const { neutralLighter } = theme.palette;\n *\n * // The second argument of getFadedOverflowStyle function is a string representing a key of\n * // ISemanticColors or IPalette.\n *\n * const styles = {\n * parent: [\n * backgroundColor: bodyBackground,\n * selectors: {\n * '&:hover: {\n * backgroundColor: neutralLighter\n * },\n * '$content:after': {\n * ...getFadedOverflowStyle(theme, 'bodyBackground')\n * },\n * '&:hover $content:after': {\n * ...getFadedOverflowStyle(theme, 'neutralLighter')\n * }\n * }\n * ],\n * content: [\n * width: '100%',\n * display: 'inline-block',\n * position: 'relative',\n * overflow: 'hidden'\n * ]\n * }\n * ```\n * @param theme - The theme object to use.\n * @param color - The background color to fade out to. Accepts only keys of ISemanticColors or IPalette.\n * Defaults to 'bodyBackground'.\n * @param direction - The direction of the overflow. Defaults to horizontal.\n * @param width - The width of the fading overflow. Vertical direction defaults it to 100% vs 20px when horizontal.\n * @param height - The Height of the fading overflow. Vertical direction defaults it to 50% vs 100% when horizontal.\n * @returns The style object.\n */\nexport function getFadedOverflowStyle(theme, color, direction, width, height) {\n if (color === void 0) { color = 'bodyBackground'; }\n if (direction === void 0) { direction = 'horizontal'; }\n if (width === void 0) { width = getDefaultValue('width', direction); }\n if (height === void 0) { height = getDefaultValue('height', direction); }\n // Get the color value string from the theme semanticColors or palette.\n var colorValue = theme.semanticColors[color] || theme.palette[color];\n // Get the red, green, blue values of the colorValue.\n var rgbColor = color2rgb(colorValue);\n // Apply opacity 0 to serve as a start color of the gradient.\n var rgba = \"rgba(\" + rgbColor.r + \", \" + rgbColor.g + \", \" + rgbColor.b + \", 0)\";\n // Get the direction of the gradient. (mergeStyles takes care of RTL direction)\n var gradientDirection = direction === 'vertical' ? 'to bottom' : 'to right';\n return {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n bottom: 0,\n width: width,\n height: height,\n pointerEvents: 'none',\n backgroundImage: \"linear-gradient(\" + gradientDirection + \", \" + rgba + \" 0%, \" + colorValue + \" 100%)\",\n };\n}\n// TODO consider moving this to a separate module along with some more color functions from OUFR/utilities.\n/**\n * Helper function to convert a string hex color to an RGB object.\n *\n * @param colorValue - Color to be converted from hex to rgba.\n */\nfunction color2rgb(colorValue) {\n if (colorValue[0] === '#') {\n // If it's a hex code\n return {\n r: parseInt(colorValue.slice(1, 3), 16),\n g: parseInt(colorValue.slice(3, 5), 16),\n b: parseInt(colorValue.slice(5, 7), 16),\n };\n }\n else if (colorValue.indexOf('rgba(') === 0) {\n // If it's an rgba color string\n colorValue = colorValue.match(/rgba\\(([^)]+)\\)/)[1];\n var parts = colorValue.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n };\n }\n // The only remaining possibility is transparent.\n return {\n r: 255,\n g: 255,\n b: 255,\n };\n}\n/**\n * Helper function to get the default values for parameters of main function.\n *\n * @param style - Which style to get the default value for.\n * @param direction - What direction to take into consideration.\n */\nfunction getDefaultValue(style, direction) {\n if (style === 'width') {\n return direction === 'horizontal' ? DEFAULT_WIDTH : '100%';\n }\n else {\n return direction === 'vertical' ? DEFAULT_HEIGHT : '100%';\n }\n}\n//# sourceMappingURL=getFadedOverflowStyle.js.map","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@uifabric/utilities';\nimport { ZIndexes } from './zIndexes';\nexport function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly) {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position: position,\n highContrastStyle: highContrastStyle,\n borderColor: borderColor,\n outlineColor: outlineColor,\n isFocusedOnly: isFocusedOnly,\n });\n }\n else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\nfunction _getFocusStyleInternal(theme, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h;\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position: position,\n selectors: (_a = {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n }\n },\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n _a[\".\" + IsFocusVisibleClassName + \" &\" + (isFocusedOnly ? ':focus' : '') + \":after\"] = {\n content: '\"\"',\n position: 'absolute',\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: width + \"px solid \" + borderColor,\n outline: width + \"px solid \" + outlineColor,\n zIndex: ZIndexes.FocusStyle,\n selectors: (_b = {},\n _b[HighContrastSelector] = highContrastStyle,\n _b),\n },\n _a),\n };\n}\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear() {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme, inset, width, color) {\n var _a;\n if (inset === void 0) { inset = 0; }\n if (width === void 0) { width = 1; }\n return {\n selectors: (_a = {},\n _a[\":global(\" + IsFocusVisibleClassName + \") &:focus\"] = {\n outline: width + \" solid \" + (color || theme.palette.neutralSecondary),\n outlineOffset: -inset + \"px\",\n },\n _a),\n };\n}\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport var getInputFocusStyle = function (borderColor, borderRadius, borderType, borderPosition) {\n var _a, _b, _c;\n if (borderType === void 0) { borderType = 'border'; }\n if (borderPosition === void 0) { borderPosition = -1; }\n var isBorderBottom = borderType === 'borderBottom';\n return {\n borderColor: borderColor,\n selectors: {\n ':after': (_a = {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition\n },\n _a[borderType] = \"2px solid \" + borderColor,\n _a.borderRadius = borderRadius,\n _a.width = borderType === 'borderBottom' ? '100%' : undefined,\n _a.selectors = (_b = {},\n _b[HighContrastSelector] = (_c = {},\n _c[borderType === 'border' ? 'borderColor' : 'borderBottomColor'] = 'Highlight',\n _c),\n _b),\n _a),\n },\n };\n};\n//# sourceMappingURL=getFocusStyle.js.map","import { Stylesheet } from '@uifabric/merge-styles';\nimport { memoizeFunction } from '@uifabric/utilities';\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nvar _getGlobalClassNames = memoizeFunction(function (classNames, disableGlobalClassNames) {\n var styleSheet = Stylesheet.getInstance();\n if (disableGlobalClassNames) {\n // disable global classnames\n return Object.keys(classNames).reduce(function (acc, className) {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {});\n }\n // use global classnames\n return classNames;\n});\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {\n return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);\n}\n//# sourceMappingURL=getGlobalClassNames.js.map","/**\n * Generates placeholder style for each of the browsers supported by office-ui-fabric-react.\n * @param styles - The style to use.\n * @returns The placeholder style object for each browser depending on the placeholder directive it uses.\n */\nexport function getPlaceholderStyles(styles) {\n return {\n selectors: {\n '::placeholder': styles,\n ':-ms-input-placeholder': styles,\n '::-ms-input-placeholder': styles,\n },\n };\n}\n//# sourceMappingURL=getPlaceholderStyles.js.map","export var hiddenContentStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n};\n//# sourceMappingURL=hiddenContentStyle.js.map","import { Customizations, mergeSettings } from '@uifabric/utilities';\n/**\n * @internal\n * This function is still in experimental phase in support of Foundation experimental development.\n * Its API signature and existence are subject to change.\n *\n * Modify context to activate the specified scheme or theme. For schemes, look in context (if available) and fall back\n * to global Customizations. If both scheme and theme are specified, scheme will be looked up in theme. In this case,\n * scheme must be present in theme arg, otherwise new context will default to theme arg (there is no fallback to\n * settings to look up scheme.)\n *\n * @param context - Context in which to get schemed customizations.\n * @param scheme - Scheme to get customizations for from theme arg (if supplied) OR from context and global settings.\n * @param theme - Theme to merge into context.\n * @returns modified schemed context if scheme is valid and not already applied, unmodified context otherwise.\n */\nexport function getThemedContext(context, scheme, theme) {\n var newContext = context;\n var newSettings;\n // Only fall back to context and customizations when theme arg is not provided.\n var schemeSource = theme || Customizations.getSettings(['theme'], undefined, context.customizations).theme;\n if (theme) {\n newSettings = { theme: theme };\n }\n var schemeTheme = scheme && schemeSource && schemeSource.schemes && schemeSource.schemes[scheme];\n // These first two checks are logically redundant but TS doesn't infer schemeSource.schemes is defined\n // when schemeTheme is defined.\n if (schemeSource && schemeTheme && schemeSource !== schemeTheme) {\n newSettings = { theme: schemeTheme };\n newSettings.theme.schemes = schemeSource.schemes;\n }\n if (newSettings) {\n newContext = {\n customizations: {\n settings: mergeSettings(context.customizations.settings, newSettings),\n scopedSettings: context.customizations.scopedSettings,\n },\n };\n }\n return newContext;\n}\n//# sourceMappingURL=scheme.js.map","import { __assign } from \"tslib\";\nimport { Customizations, getWindow } from '@uifabric/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme/lib/createTheme';\nexport { createTheme } from '@fluentui/theme/lib/createTheme';\nvar _theme = createTheme({});\nvar _onThemeChangeCallbacks = [];\nexport var ThemeSettingName = 'theme';\nexport function initializeThemeInCustomizations() {\n var _a;\n var _b, _c, _d, _e;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var win = getWindow();\n if ((_c = (_b = win) === null || _b === void 0 ? void 0 : _b.FabricConfig) === null || _c === void 0 ? void 0 : _c.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n }\n else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if ((_e = (_d = win) === null || _d === void 0 ? void 0 : _d.FabricConfig) === null || _e === void 0 ? void 0 : _e.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n // Set the default theme.\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n }\n}\n// Ensure theme is initialized when this package is referenced.\ninitializeThemeInCustomizations();\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments) {\n if (depComments === void 0) { depComments = false; }\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback) {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback) {\n var i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n _onThemeChangeCallbacks.splice(i, 1);\n}\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme, depComments) {\n var _a;\n if (depComments === void 0) { depComments = false; }\n _theme = createTheme(theme, depComments);\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme(__assign(__assign(__assign(__assign({}, _theme.palette), _theme.semanticColors), _theme.effects), _loadFonts(_theme)));\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n _onThemeChangeCallbacks.forEach(function (callback) {\n try {\n callback(_theme);\n }\n catch (e) {\n // don't let a bad callback break everything else\n }\n });\n return _theme;\n}\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme) {\n var lines = {};\n for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {\n var fontName = _a[_i];\n var font = theme.fonts[fontName];\n for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {\n var propName = _c[_b];\n var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n var value = font[propName];\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name_1] = value;\n }\n }\n return lines;\n}\n//# sourceMappingURL=theme.js.map","export var ZIndexes;\n(function (ZIndexes) {\n ZIndexes.Nav = 1;\n /**\n * @deprecated ScrollablePane\n */\n ZIndexes.ScrollablePane = 1;\n ZIndexes.FocusStyle = 1;\n ZIndexes.Coachmark = 1000;\n ZIndexes.Layer = 1000000;\n ZIndexes.KeytipLayer = 1000001;\n})(ZIndexes || (ZIndexes = {}));\n//# sourceMappingURL=zIndexes.js.map","import { mergeStyles } from '../MergeStyles';\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles) {\n var classes = {};\n var _loop_1 = function (styleName) {\n if (styles.hasOwnProperty(styleName)) {\n var className_1;\n Object.defineProperty(classes, styleName, {\n get: function () {\n if (className_1 === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className_1 = mergeStyles(styles[styleName]).toString();\n }\n return className_1;\n },\n enumerable: true,\n configurable: true,\n });\n }\n };\n for (var styleName in styles) {\n _loop_1(styleName);\n }\n return classes;\n}\n//# sourceMappingURL=buildClassMap.js.map","import { mergeStyles } from '@uifabric/merge-styles';\nimport { getIcon } from './icons';\nvar defaultIconStyles = {\n display: 'inline-block',\n};\n/**\n * Gets an icon classname. You should be able to add this classname to an I tag with no\n * additional classnames, and render the icon.\n *\n * @public\n */\nexport function getIconClassName(name) {\n var className = '';\n var icon = getIcon(name);\n if (icon) {\n className = mergeStyles(icon.subset.className, defaultIconStyles, {\n selectors: {\n '::before': {\n content: \"\\\"\" + icon.code + \"\\\"\",\n },\n },\n });\n }\n return className;\n}\n//# sourceMappingURL=getIconClassName.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings, warn } from '@uifabric/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@uifabric/merge-styles';\nvar ICON_SETTING_NAME = 'icons';\nvar _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n// Reset icon registration on stylesheet resets.\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () {\n for (var name_1 in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {\n _iconSettings[name_1].subset.className = undefined;\n }\n }\n });\n}\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nvar normalizeIconName = function (name) { return name.toLowerCase(); };\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset, options) {\n var subset = __assign(__assign({}, iconSubset), { isRegistered: false, className: undefined });\n var icons = iconSubset.icons;\n // Grab options, optionally mix user provided ones on top.\n options = options ? __assign(__assign({}, _iconSettings.__options), options) : _iconSettings.__options;\n for (var iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n var code = icons[iconName];\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n }\n else {\n _iconSettings[normalizedIconName] = {\n code: code,\n subset: subset,\n };\n }\n }\n }\n}\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames) {\n var options = _iconSettings.__options;\n var _loop_1 = function (iconName) {\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n }\n else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(\"The icon \\\"\" + iconName + \"\\\" tried to unregister but was not registered.\");\n }\n }\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach(function (key) {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n };\n for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {\n var iconName = iconNames_1[_i];\n _loop_1(iconName);\n }\n}\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName, mappedToName) {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name) {\n var icon = undefined;\n var options = _iconSettings.__options;\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n if (name) {\n icon = _iconSettings[name];\n if (icon) {\n var subset = icon.subset;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\"The icon \\\"\" + name + \"\\\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.\");\n }\n }\n }\n return icon;\n}\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options) {\n _iconSettings.__options = __assign(__assign({}, _iconSettings.__options), options);\n}\nvar _missingIcons = [];\nvar _missingIconsTimer = undefined;\nfunction _warnDuplicateIcon(iconName) {\n var options = _iconSettings.__options;\n var warningDelay = 2000;\n var maxIconsInMessage = 10;\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(function () {\n warn(\"Some icons were re-registered. Applications should only call registerIcons for any given \" +\n \"icon once. Redefining what an icon is may have unintended consequences. Duplicates \" +\n \"include: \\n\" +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? \" (+ \" + (_missingIcons.length - maxIconsInMessage) + \" more)\" : ''));\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n//# sourceMappingURL=icons.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Async(parent, onError) {\n this._timeoutIds = null;\n this._immediateIds = null;\n this._intervalIds = null;\n this._animationFrameIds = null;\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = function () {\n /* do nothing */\n };\n }\n /**\n * Dispose function, clears all async operations.\n */\n Async.prototype.dispose = function () {\n var id;\n this._isDisposed = true;\n this._parent = null;\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n this._timeoutIds = null;\n }\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n this._immediateIds = null;\n }\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n this._animationFrameIds = null;\n }\n };\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setTimeout = function (callback, duration) {\n var _this = this;\n var timeoutId = 0;\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n timeoutId = setTimeout(function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._timeoutIds) {\n delete _this._timeoutIds[timeoutId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n if (_this._onErrorHandler) {\n _this._onErrorHandler(e);\n }\n }\n }, duration);\n this._timeoutIds[timeoutId] = true;\n }\n return timeoutId;\n };\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n Async.prototype.clearTimeout = function (id) {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n };\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n Async.prototype.setImmediate = function (callback, targetElement) {\n var _this = this;\n var immediateId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n var setImmediateCallback = function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._immediateIds) {\n delete _this._immediateIds[immediateId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n immediateId = win.setTimeout(setImmediateCallback, 0);\n this._immediateIds[immediateId] = true;\n }\n return immediateId;\n };\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n Async.prototype.clearImmediate = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n };\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setInterval = function (callback, duration) {\n var _this = this;\n var intervalId = 0;\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n intervalId = setInterval(function () {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._intervalIds[intervalId] = true;\n }\n return intervalId;\n };\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n Async.prototype.clearInterval = function (id) {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n };\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.throttle = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n return this._noop;\n }\n var waitMS = wait || 0;\n var leading = true;\n var trailing = true;\n var lastExecuteTime = 0;\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n var callback = function (userCall) {\n var now = Date.now();\n var delta = now - lastExecuteTime;\n var waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(_this._parent, lastArgs);\n }\n else if (timeoutId === null && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n return resultFunction;\n };\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.debounce = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n var noOpFunction = (function () {\n /** Do nothing */\n });\n noOpFunction.cancel = function () {\n return;\n };\n noOpFunction.flush = (function () { return null; });\n noOpFunction.pending = function () { return false; };\n return noOpFunction;\n }\n var waitMS = wait || 0;\n var leading = false;\n var trailing = true;\n var maxWait = null;\n var lastCallTime = 0;\n var lastExecuteTime = Date.now();\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n var markExecuted = function (time) {\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n var invokeFunction = function (time) {\n markExecuted(time);\n lastResult = func.apply(_this._parent, lastArgs);\n };\n var callback = function (userCall) {\n var now = Date.now();\n var executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n var delta = now - lastCallTime;\n var waitLength = waitMS - delta;\n var maxWaitDelta = now - lastExecuteTime;\n var maxWaitExpired = false;\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n }\n else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n }\n else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n var pending = function () {\n return !!timeoutId;\n };\n var cancel = function () {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n var flush = function () {\n if (pending()) {\n invokeFunction(Date.now());\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n return resultFunction;\n };\n Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n var _this = this;\n var animationFrameId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n var animationFrameCallback = function () {\n try {\n // Now delete the record and call the callback.\n if (_this._animationFrameIds) {\n delete _this._animationFrameIds[animationFrameId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n this._animationFrameIds[animationFrameId] = true;\n }\n return animationFrameId;\n };\n Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype._logError = function (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n };\n return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","import { EventGroup } from './EventGroup';\nimport { findScrollableParent } from './scroll';\nimport { getRect } from './dom/getRect';\nvar SCROLL_ITERATION_DELAY = 16;\nvar SCROLL_GUTTER = 100;\nvar MAX_SCROLL_VELOCITY = 15;\n/**\n * AutoScroll simply hooks up mouse events given a parent element, and scrolls the container\n * up/down depending on how close the mouse is to the top/bottom of the container.\n *\n * Once you don't want autoscroll any more, just dispose the helper and it will unhook events.\n *\n * @public\n * {@docCategory AutoScroll}\n */\nvar AutoScroll = /** @class */ (function () {\n function AutoScroll(element) {\n this._events = new EventGroup(this);\n this._scrollableParent = findScrollableParent(element);\n this._incrementScroll = this._incrementScroll.bind(this);\n this._scrollRect = getRect(this._scrollableParent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this._scrollableParent === window) {\n this._scrollableParent = document.body;\n }\n if (this._scrollableParent) {\n this._events.on(window, 'mousemove', this._onMouseMove, true);\n this._events.on(window, 'touchmove', this._onTouchMove, true);\n }\n }\n AutoScroll.prototype.dispose = function () {\n this._events.dispose();\n this._stopScroll();\n };\n AutoScroll.prototype._onMouseMove = function (ev) {\n this._computeScrollVelocity(ev);\n };\n AutoScroll.prototype._onTouchMove = function (ev) {\n if (ev.touches.length > 0) {\n this._computeScrollVelocity(ev);\n }\n };\n AutoScroll.prototype._computeScrollVelocity = function (ev) {\n if (!this._scrollRect) {\n return;\n }\n var clientX;\n var clientY;\n if ('clientX' in ev) {\n clientX = ev.clientX;\n clientY = ev.clientY;\n }\n else {\n clientX = ev.touches[0].clientX;\n clientY = ev.touches[0].clientY;\n }\n var scrollRectTop = this._scrollRect.top;\n var scrollRectLeft = this._scrollRect.left;\n var scrollClientBottom = scrollRectTop + this._scrollRect.height - SCROLL_GUTTER;\n var scrollClientRight = scrollRectLeft + this._scrollRect.width - SCROLL_GUTTER;\n // variables to use for alternating scroll direction\n var scrollRect;\n var clientDirection;\n var scrollClient;\n // if either of these conditions are met we are scrolling vertically else horizontally\n if (clientY < scrollRectTop + SCROLL_GUTTER || clientY > scrollClientBottom) {\n clientDirection = clientY;\n scrollRect = scrollRectTop;\n scrollClient = scrollClientBottom;\n this._isVerticalScroll = true;\n }\n else {\n clientDirection = clientX;\n scrollRect = scrollRectLeft;\n scrollClient = scrollClientRight;\n this._isVerticalScroll = false;\n }\n // calculate scroll velocity and direction\n if (clientDirection < scrollRect + SCROLL_GUTTER) {\n this._scrollVelocity = Math.max(-MAX_SCROLL_VELOCITY, -MAX_SCROLL_VELOCITY * ((SCROLL_GUTTER - (clientDirection - scrollRect)) / SCROLL_GUTTER));\n }\n else if (clientDirection > scrollClient) {\n this._scrollVelocity = Math.min(MAX_SCROLL_VELOCITY, MAX_SCROLL_VELOCITY * ((clientDirection - scrollClient) / SCROLL_GUTTER));\n }\n else {\n this._scrollVelocity = 0;\n }\n if (this._scrollVelocity) {\n this._startScroll();\n }\n else {\n this._stopScroll();\n }\n };\n AutoScroll.prototype._startScroll = function () {\n if (!this._timeoutId) {\n this._incrementScroll();\n }\n };\n AutoScroll.prototype._incrementScroll = function () {\n if (this._scrollableParent) {\n if (this._isVerticalScroll) {\n this._scrollableParent.scrollTop += Math.round(this._scrollVelocity);\n }\n else {\n this._scrollableParent.scrollLeft += Math.round(this._scrollVelocity);\n }\n }\n this._timeoutId = setTimeout(this._incrementScroll, SCROLL_ITERATION_DELAY);\n };\n AutoScroll.prototype._stopScroll = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n delete this._timeoutId;\n }\n };\n return AutoScroll;\n}());\nexport { AutoScroll };\n//# sourceMappingURL=AutoScroll.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function BaseComponent(props, context) {\n var _this = _super.call(this, props, context) || this;\n // eslint-disable-next-line deprecation/deprecation\n _makeAllSafe(_this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n return _this;\n }\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._updateComponentRef(prevProps, this.props);\n };\n /**\n * When the component has mounted, update the componentRef.\n */\n BaseComponent.prototype.componentDidMount = function () {\n this._setComponentRef(this.props.componentRef, this);\n };\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n BaseComponent.prototype.componentWillUnmount = function () {\n this._setComponentRef(this.props.componentRef, null);\n if (this.__disposables) {\n for (var i = 0, len = this._disposables.length; i < len; i++) {\n var disposable = this.__disposables[i];\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n };\n Object.defineProperty(BaseComponent.prototype, \"className\", {\n /**\n * Gets the object's class name.\n */\n get: function () {\n if (!this.__className) {\n var funcNameRegex = /function (.{1,})\\(/;\n var results = funcNameRegex.exec(this.constructor.toString());\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n return this.__className;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n get: function () {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_async\", {\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n return this.__async;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_events\", {\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n return this.__events;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n BaseComponent.prototype._resolveRef = function (refName) {\n var _this = this;\n if (!this.__resolves) {\n this.__resolves = {};\n }\n if (!this.__resolves[refName]) {\n this.__resolves[refName] = function (ref) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (_this[refName] = ref);\n };\n }\n return this.__resolves[refName];\n };\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n if (newProps === void 0) { newProps = {}; }\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n };\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n warnDeprecations(this.className, this.props, deprecationMap);\n };\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n };\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n };\n BaseComponent.prototype._setComponentRef = function (ref, value) {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n if (typeof ref === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref.current = value;\n }\n }\n };\n return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n for (var i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n var classMethod = obj[methodName];\n var prototypeMethod = prototype[methodName];\n if (classMethod || prototypeMethod) {\n obj[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var retVal;\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, args);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, args);\n }\n return retVal;\n };\n }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nvar DelayedRender = /** @class */ (function (_super) {\n __extends(DelayedRender, _super);\n function DelayedRender(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isRendered: false,\n };\n return _this;\n }\n DelayedRender.prototype.componentDidMount = function () {\n var _this = this;\n var delay = this.props.delay;\n this._timeoutId = window.setTimeout(function () {\n _this.setState({\n isRendered: true,\n });\n }, delay);\n };\n DelayedRender.prototype.componentWillUnmount = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n };\n DelayedRender.prototype.render = function () {\n return this.state.isRendered ? React.Children.only(this.props.children) : null;\n };\n DelayedRender.defaultProps = {\n delay: 0,\n };\n return DelayedRender;\n}(React.Component));\nexport { DelayedRender };\n//# sourceMappingURL=DelayedRender.js.map","import { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n /** parent: the context in which events attached to non-HTMLElements are called */\n function EventGroup(parent) {\n this._id = EventGroup._uniqueId++;\n this._parent = parent;\n this._eventRecords = [];\n }\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent) {\n var retVal;\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, bubbleEvent || false, true);\n assign(ev, eventArgs);\n retVal = target.dispatchEvent(ev);\n }\n else if (typeof document !== 'undefined' && document.createEventObject) {\n // IE8\n var evObj = document.createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n }\n else {\n while (target && retVal !== false) {\n var events = target.__events__;\n var eventRecords = events ? events[eventName] : null;\n if (eventRecords) {\n for (var id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n var eventRecordList = eventRecords[id];\n for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n var record = eventRecordList[listIndex];\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n return retVal;\n };\n EventGroup.isObserved = function (target, eventName) {\n var events = target && target.__events__;\n return !!events && !!events[eventName];\n };\n /** Check to see if the target has declared support of the given event. */\n EventGroup.isDeclared = function (target, eventName) {\n var declaredEvents = target && target.__declaredEvents;\n return !!declaredEvents && !!declaredEvents[eventName];\n };\n EventGroup.stopPropagation = function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n else {\n // IE8\n event.cancelBubble = true;\n }\n };\n EventGroup._isElement = function (target) {\n return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n };\n EventGroup.prototype.dispose = function () {\n if (!this._isDisposed) {\n this._isDisposed = true;\n this.off();\n this._parent = null;\n }\n };\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n EventGroup.prototype.onAll = function (target, events, useCapture) {\n for (var eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n };\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n EventGroup.prototype.on = function (target, eventName, callback, options) {\n var _this = this;\n if (eventName.indexOf(',') > -1) {\n var events = eventName.split(/[ ,]+/);\n for (var i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n }\n else {\n var parent_1 = this._parent;\n var eventRecord = {\n target: target,\n eventName: eventName,\n parent: parent_1,\n callback: callback,\n options: options,\n };\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n var events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n events[eventName][this._id].push(eventRecord);\n events[eventName].count++;\n if (EventGroup._isElement(target)) {\n var processElementEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n var result;\n try {\n result = callback.apply(parent_1, args);\n if (result === false && args[0]) {\n var e = args[0];\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n e.cancelBubble = true;\n }\n }\n catch (e) {\n // ignore\n }\n return result;\n };\n eventRecord.elementCallback = processElementEvent;\n if (target.addEventListener) {\n target.addEventListener(eventName, processElementEvent, options);\n }\n else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n }\n else {\n var processObjectEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n return callback.apply(parent_1, args);\n };\n eventRecord.objectCallback = processObjectEvent;\n }\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n };\n EventGroup.prototype.off = function (target, eventName, callback, options) {\n for (var i = 0; i < this._eventRecords.length; i++) {\n var eventRecord = this._eventRecords[i];\n if ((!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)) {\n var events = eventRecord.target.__events__;\n var targetArrayLookup = events[eventRecord.eventName];\n var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n }\n else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n }\n else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n this._eventRecords.splice(i--, 1);\n }\n }\n };\n /** Trigger the given event in the context of this instance of EventGroup. */\n EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n };\n /** Declare an event as being supported by this instance of EventGroup. */\n EventGroup.prototype.declare = function (event) {\n var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n }\n else {\n for (var i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n };\n EventGroup._uniqueId = 0;\n return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","var now = function () {\n return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();\n};\nvar RESET_INTERVAL = 3 * 60 * 1000; // auto reset every 3 minutes\n/**\n * Performance helper class for measuring things.\n *\n * @public\n * {@docCategory FabricPerformance}\n */\nvar FabricPerformance = /** @class */ (function () {\n function FabricPerformance() {\n }\n /**\n * Measures execution time of the given syncronous function. If the same logic is executed multiple times,\n * each individual measurement will be collected as well the overall numbers.\n * @param name - The name of this measurement\n * @param func - The logic to be measured for execution time\n */\n FabricPerformance.measure = function (name, func) {\n if (FabricPerformance._timeoutId) {\n FabricPerformance.setPeriodicReset();\n }\n var start = now();\n func();\n var end = now();\n var measurement = FabricPerformance.summary[name] || {\n totalDuration: 0,\n count: 0,\n all: [],\n };\n var duration = end - start;\n measurement.totalDuration += duration;\n measurement.count++;\n measurement.all.push({\n duration: duration,\n timeStamp: end,\n });\n FabricPerformance.summary[name] = measurement;\n };\n FabricPerformance.reset = function () {\n FabricPerformance.summary = {};\n clearTimeout(FabricPerformance._timeoutId);\n FabricPerformance._timeoutId = NaN;\n };\n FabricPerformance.setPeriodicReset = function () {\n FabricPerformance._timeoutId = setTimeout(function () { return FabricPerformance.reset(); }, RESET_INTERVAL);\n };\n FabricPerformance.summary = {};\n return FabricPerformance;\n}());\nexport { FabricPerformance };\n//# sourceMappingURL=FabricPerformance.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\nvar GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nvar CALLBACK_STATE_PROP_NAME = '__callbacks__';\nvar _counter = 0;\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nvar GlobalSettings = /** @class */ (function () {\n function GlobalSettings() {\n }\n GlobalSettings.getValue = function (key, defaultValue) {\n var globalSettings = _getGlobalSettings();\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n return globalSettings[key];\n };\n GlobalSettings.setValue = function (key, value) {\n var globalSettings = _getGlobalSettings();\n var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n var oldValue = globalSettings[key];\n if (value !== oldValue) {\n globalSettings[key] = value;\n var changeDescription = {\n oldValue: oldValue,\n value: value,\n key: key,\n };\n for (var id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n return value;\n };\n GlobalSettings.addChangeListener = function (cb) {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n var id = cb.__id__;\n var callbacks = _getCallbacks();\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n callbacks[id] = cb;\n };\n GlobalSettings.removeChangeListener = function (cb) {\n var callbacks = _getCallbacks();\n delete callbacks[cb.__id__];\n };\n return GlobalSettings;\n}());\nexport { GlobalSettings };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings() {\n var _a;\n var win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var globalObj = win || {};\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},\n _a[CALLBACK_STATE_PROP_NAME] = {},\n _a);\n }\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\nfunction _getCallbacks() {\n var globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n//# sourceMappingURL=GlobalSettings.js.map","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport var KeyCodes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n pauseBreak: 19,\n capslock: 20,\n escape: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n del: 46,\n zero: 48,\n one: 49,\n two: 50,\n three: 51,\n four: 52,\n five: 53,\n six: 54,\n seven: 55,\n eight: 56,\n nine: 57,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n leftWindow: 91,\n rightWindow: 92,\n select: 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96,\n one_numpad: 97,\n two_numpad: 98,\n three_numpad: 99,\n four_numpad: 100,\n five_numpad: 101,\n six_numpad: 102,\n seven_numpad: 103,\n eight_numpad: 104,\n nine_numpad: 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106,\n add: 107,\n subtract: 109,\n decimalPoint: 110,\n divide: 111,\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123,\n numlock: 144,\n scrollLock: 145,\n semicolon: 186,\n equalSign: 187,\n comma: 188,\n dash: 189,\n period: 190,\n forwardSlash: 191,\n graveAccent: 192,\n openBracket: 219,\n backSlash: 220,\n closeBracket: 221,\n singleQuote: 222,\n};\n//# sourceMappingURL=KeyCodes.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n function Rectangle(left, right, top, bottom) {\n if (left === void 0) { left = 0; }\n if (right === void 0) { right = 0; }\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Calculated automatically by subtracting the right from left\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n Rectangle.prototype.equals = function (rect) {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n };\n return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n var functions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n functions[_i - 1] = arguments[_i];\n }\n if (functions.length < 2) {\n return functions[0];\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n functions.forEach(function (f) { return f && f.apply(parent, args); });\n };\n}\n//# sourceMappingURL=appendFunction.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n var ariaAttributes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ariaAttributes[_i] = arguments[_i];\n }\n var mergedAttribute = ariaAttributes\n .filter(function (arg) { return arg; })\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var index = -1;\n for (var i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n var index = findIndex(array, cb);\n if (index < 0) {\n return undefined;\n }\n return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n var array = [];\n for (var i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n return items.reduce(function (rows, currentValue, index) {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n }\n else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n var copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n var copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n var result = [];\n array.forEach(function (item) { return (result = result.concat(item)); });\n return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=array.js.map","/**\n * asAsync - a HOC for async loading components.\n *\n * Usage:\n *\n * const AsyncDialog = asAsync({\n * load: () => import('Dialog').then(result => result.default),\n * });\n *\n * React.render(domElement, <AsyncDialog asyncPlaceholder={ () => <Spinner/> } { ...dialogProps } />);\n *\n * Note the `asyncPlaceholder` prop will be respected when rendering the async component and it hasn't\n * been loaded yet.\n */\nimport { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\n/**\n * If possible, use a WeakMap to maintain a cache of loaded components.\n * This can be used to synchronously render components that have already been loaded,\n * rather than having to wait for at least one async tick.\n */\nvar _syncModuleCache = typeof WeakMap !== 'undefined'\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new WeakMap()\n : undefined;\n/**\n * Produces a component which internally loads the target component before first mount.\n * The component passes all props through to the loaded component.\n *\n * This overload accepts a module with a default export for the component.\n */\nexport function asAsync(options) {\n var Async = /** @class */ (function (_super) {\n __extends(Async, _super);\n function Async() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n Component: _syncModuleCache ? _syncModuleCache.get(options.load) : undefined,\n };\n return _this;\n }\n Async.prototype.render = function () {\n // Typescript issue: the rest can't be pulled without the any cast, as TypeScript fails with rest on generics.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var _a = this.props, forwardedRef = _a.forwardedRef, Placeholder = _a.asyncPlaceholder, rest = __rest(_a, [\"forwardedRef\", \"asyncPlaceholder\"]);\n var Component = this.state.Component;\n return Component ? (React.createElement(Component, __assign(__assign({}, rest), { ref: forwardedRef }))) : Placeholder ? (React.createElement(Placeholder, null)) : null;\n };\n Async.prototype.componentDidMount = function () {\n var _this = this;\n var Component = this.state.Component;\n if (!Component) {\n options\n .load()\n .then(function (LoadedComponent) {\n if (LoadedComponent) {\n // Cache component for future reference.\n _syncModuleCache && _syncModuleCache.set(options.load, LoadedComponent);\n // Set state.\n _this.setState({\n Component: LoadedComponent,\n }, options.onLoad);\n }\n })\n .catch(options.onError);\n }\n };\n return Async;\n }(React.Component));\n return React.forwardRef(function (props, ref) { return React.createElement(Async, __assign({}, props, { forwardedRef: ref })); });\n}\n//# sourceMappingURL=asAsync.js.map","/**\n * AssertNever is a utility function that can be used for exhaustiveness checks in switch statements.\n *\n * @public\n */\nexport function assertNever(x) {\n throw new Error('Unexpected object: ' + x);\n}\n//# sourceMappingURL=assertNever.js.map","import { mergeCssSets, Stylesheet, } from '@uifabric/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nvar MAX_CACHE_COUNT = 50;\nvar DEFAULT_SPECIFICITY_MULTIPLIER = 5;\nvar _memoizedClassNames = 0;\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () { return _memoizedClassNames++; });\n}\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nvar retVal = '__retval__';\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction(options) {\n // We build a trie where each node is a Map. The map entry key represents an argument\n // value, and the entry value is another node (Map). Each node has a `__retval__`\n // property which is used to hold the cached response.\n if (options === void 0) { options = {}; }\n // To derive the response, we can simply ensure the arguments are added or already\n // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n // we call the `getStyles` api to evaluate, cache on the property, and return that.\n var map = new Map();\n var styleCalcCount = 0;\n var getClassNamesCount = 0;\n var currentMemoizedClassNames = _memoizedClassNames;\n var getClassNames = function (styleFunctionOrObject, styleProps) {\n if (styleProps === void 0) { styleProps = {}; }\n var _a, _b;\n // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n // If there is also no style overrides, we can skip merge styles completely and\n // simply return the result from the style funcion.\n if (options.useStaticStyles &&\n typeof styleFunctionOrObject === 'function' &&\n styleFunctionOrObject.__noStyleOverride__) {\n return styleFunctionOrObject(styleProps);\n }\n getClassNamesCount++;\n var current = map;\n var theme = styleProps.theme;\n var rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n var disableCaching = options.disableCaching;\n // On reset of our stylesheet, reset memoized cache.\n if (currentMemoizedClassNames !== _memoizedClassNames) {\n currentMemoizedClassNames = _memoizedClassNames;\n map = new Map();\n styleCalcCount = 0;\n }\n if (!options.disableCaching) {\n current = _traverseMap(map, styleFunctionOrObject);\n current = _traverseMap(current, styleProps);\n }\n if (disableCaching || !current[retVal]) {\n if (styleFunctionOrObject === undefined) {\n current[retVal] = {};\n }\n else {\n current[retVal] = mergeCssSets([\n (typeof styleFunctionOrObject === 'function'\n ? styleFunctionOrObject(styleProps)\n : styleFunctionOrObject),\n ], { rtl: !!rtl, specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined });\n }\n if (!disableCaching) {\n styleCalcCount++;\n }\n }\n if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n var win = getWindow();\n if ((_b = (_a = win) === null || _a === void 0 ? void 0 : _a.FabricConfig) === null || _b === void 0 ? void 0 : _b.enableClassNameCacheFullWarning) {\n // eslint-disable-next-line no-console\n console.warn(\"Styles are being recalculated too frequently. Cache miss rate is \" + styleCalcCount + \"/\" + getClassNamesCount + \".\");\n // eslint-disable-next-line no-console\n console.trace();\n }\n map.clear();\n styleCalcCount = 0;\n // Mutate the options passed in, that's all we can do.\n options.disableCaching = true;\n }\n // Note: the retVal is an attached property on the Map; not a key in the Map. We use this attached property to\n // cache the return value for this branch of the graph.\n return current[retVal];\n };\n return getClassNames;\n}\nfunction _traverseEdge(current, value) {\n value = _normalizeValue(value);\n if (!current.has(value)) {\n current.set(value, new Map());\n }\n return current.get(value);\n}\nfunction _traverseMap(current, inputs) {\n if (typeof inputs === 'function') {\n var cachedInputsFromStyled = inputs.__cachedInputs__;\n if (cachedInputsFromStyled) {\n // The styled helper will generate the styles function and will attach the cached\n // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n // These should be used as cache keys for deriving the memoized value.\n for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {\n var input = _a[_i];\n current = _traverseEdge(current, input);\n }\n }\n else {\n current = _traverseEdge(current, inputs);\n }\n }\n else if (typeof inputs === 'object') {\n for (var propName in inputs) {\n if (inputs.hasOwnProperty(propName)) {\n current = _traverseEdge(current, inputs[propName]);\n }\n }\n }\n return current;\n}\nfunction _normalizeValue(value) {\n switch (value) {\n case undefined:\n return '__undefined__';\n case null:\n return '__null__';\n default:\n return value;\n }\n}\n//# sourceMappingURL=classNamesFunction.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n var Outer = outer;\n var outerMemoizer = createMemoizer(function (inner) {\n if (outer === inner) {\n throw new Error('Attempted to compose a component with itself.');\n }\n var Inner = inner;\n var innerMemoizer = createMemoizer(function (defaultRender) {\n var InnerWithDefaultRender = function (innerProps) {\n return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n };\n return InnerWithDefaultRender;\n });\n var OuterWithDefaultRender = function (outerProps) {\n var defaultRender = outerProps.defaultRender;\n return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n };\n return OuterWithDefaultRender;\n });\n return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","/**\n * Determines whether a component is controlled.\n * @param props - Component props\n * @param valueProp - Prop containing the controlled value\n * @returns true if controlled, false if uncontrolled\n */\nexport function isControlled(props, valueProp) {\n // React's built-in <input> considers a prop to be provided if its value is non-null/undefined.\n // Mirror that behavior here (rather than checking for just undefined).\n return props[valueProp] !== undefined && props[valueProp] !== null;\n}\n//# sourceMappingURL=controlled.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) { return function (newValue) {\n for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n var ref = _a[_i];\n if (typeof ref === 'function') {\n ref(newValue);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = newValue;\n }\n }\n}; };\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n var local = {\n refs: [],\n };\n return function () {\n var newRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newRefs[_i] = arguments[_i];\n }\n if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n local.resolver = createResolver(local);\n }\n local.refs = newRefs;\n return local.resolver;\n };\n};\n//# sourceMappingURL=createMergedRef.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n }\n else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var key in arg) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings } from '../GlobalSettings';\nvar CustomizationsGlobalKey = 'customizations';\nvar NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\nvar _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\nvar _events = [];\nvar Customizations = /** @class */ (function () {\n function Customizations() {\n }\n Customizations.reset = function () {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n };\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n Customizations.applySettings = function (settings) {\n _allSettings.settings = __assign(__assign({}, _allSettings.settings), settings);\n Customizations._raiseChange();\n };\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n Customizations.applyScopedSettings = function (scopeName, settings) {\n _allSettings.scopedSettings[scopeName] = __assign(__assign({}, _allSettings.scopedSettings[scopeName]), settings);\n Customizations._raiseChange();\n };\n Customizations.getSettings = function (properties, scopeName, localSettings) {\n if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }\n var settings = {};\n var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n return settings;\n };\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n Customizations.applyBatchedUpdates = function (code, suppressUpdate) {\n Customizations._suppressUpdates = true;\n try {\n code();\n }\n catch (_a) {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n };\n Customizations.observe = function (onChange) {\n _events.push(onChange);\n };\n Customizations.unobserve = function (onChange) {\n _events = _events.filter(function (cb) { return cb !== onChange; });\n };\n Customizations._raiseChange = function () {\n if (!Customizations._suppressUpdates) {\n _events.forEach(function (cb) { return cb(); });\n }\n };\n return Customizations;\n}());\nexport { Customizations };\n//# sourceMappingURL=Customizations.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n */\nvar Customizer = /** @class */ (function (_super) {\n __extends(Customizer, _super);\n function Customizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n return _this;\n }\n Customizer.prototype.componentDidMount = function () {\n Customizations.observe(this._onCustomizationChange);\n };\n Customizer.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onCustomizationChange);\n };\n Customizer.prototype.render = function () {\n var _this = this;\n var contextTransform = this.props.contextTransform;\n return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n var newContext = mergeCustomizations(_this.props, parentContext);\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n }));\n };\n return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","import * as React from 'react';\nexport var CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n//# sourceMappingURL=CustomizerContext.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@uifabric/merge-styles';\nexport function customizable(scope, fields, concatStyles) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function customizableFactory(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(ComponentWithInjectedProps, _super);\n function ComponentWithInjectedProps(props) {\n var _this = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._styleCache = {};\n _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n return _this;\n }\n ComponentWithInjectedProps.prototype.componentDidMount = function () {\n Customizations.observe(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.render = function () {\n var _this = this;\n return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var componentProps = _this.props;\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n }\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (_this._styleCache.default !== defaultProps.styles ||\n _this._styleCache.component !== componentProps.styles) {\n var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n _this._styleCache.default = defaultProps.styles;\n _this._styleCache.component = componentProps.styles;\n _this._styleCache.merged = mergedStyles;\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged }));\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps));\n }));\n };\n ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n this.forceUpdate();\n };\n return ComponentWithInjectedProps;\n }(React.Component)),\n _a.displayName = 'Customized' + scope,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n//# sourceMappingURL=customizable.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n return function (oldScopedSettings) {\n var newScopedSettings = __assign({}, oldScopedSettings);\n for (var scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n }\n }\n return newScopedSettings;\n };\n}\n//# sourceMappingURL=mergeSettings.js.map","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\n/**\n * Hook to get Customizations settings from Customizations singleton or CustomizerContext.\n * It will trigger component state update on settings change observed.\n */\nexport function useCustomizationSettings(properties, scopeName) {\n var forceUpdate = useForceUpdate();\n var customizations = React.useContext(CustomizerContext).customizations;\n var inCustomizerContext = customizations.inCustomizerContext;\n React.useEffect(function () {\n if (!inCustomizerContext) {\n Customizations.observe(forceUpdate);\n }\n return function () {\n if (!inCustomizerContext) {\n Customizations.unobserve(forceUpdate);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate\n }, [inCustomizerContext]);\n return Customizations.getSettings(properties, scopeName, customizations);\n}\nfunction useForceUpdate() {\n var _a = React.useState(0), setValue = _a[1];\n return function () { return setValue(function (value) { return ++value; }); };\n}\n//# sourceMappingURL=useCustomizationSettings.js.map","import { _isSSR } from './setSSR';\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth. Also note that the SSR flag is used to test ssr scenarios even if\n * document is defined (from JSDOM for example.)\n *\n * @public\n */\nexport function getDocument(rootElement) {\n if (_isSSR || typeof document === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n//# sourceMappingURL=getDocument.js.map","/**\n * Helper to get bounding client rect. Passing in window will get the window size.\n *\n * @public\n */\nexport function getRect(element) {\n var rect;\n if (element) {\n if (element === window) {\n rect = {\n left: 0,\n top: 0,\n width: window.innerWidth,\n height: window.innerHeight,\n right: window.innerWidth,\n bottom: window.innerHeight,\n };\n }\n else if (element.getBoundingClientRect) {\n rect = element.getBoundingClientRect();\n }\n }\n return rect;\n}\n//# sourceMappingURL=getRect.js.map","import { _isSSR } from './setSSR';\nvar _window = undefined;\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n}\ncatch (e) {\n /* no-op */\n}\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement) {\n if (_isSSR || typeof _window === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n//# sourceMappingURL=getWindow.js.map","export function on(element, eventName, callback, options) {\n element.addEventListener(eventName, callback, options);\n return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","/** Raises a click event. */\nexport function raiseClick(target) {\n var event = createNewEvent('MouseEvents');\n event.initEvent('click', true, true);\n target.dispatchEvent(event);\n}\nfunction createNewEvent(eventName) {\n var event;\n if (typeof Event === 'function') {\n // Chrome, Opera, Firefox\n event = new Event(eventName);\n }\n else {\n // IE\n event = document.createEvent('Event');\n event.initEvent(eventName, true, true);\n }\n return event;\n}\n//# sourceMappingURL=raiseClick.js.map","export var _isSSR = false;\n/**\n * Helper to set ssr mode to simulate no window object returned from getWindow helper.\n *\n * @public\n */\nexport function setSSR(isEnabled) {\n _isSSR = isEnabled;\n}\n//# sourceMappingURL=setSSR.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n for (var name_1 in methods) {\n if (methods.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n }\n }\n}\n//# sourceMappingURL=extendComponent.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement) {\n var element = getNextElement(rootElement, rootElement, true, false, false, true);\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check its children.\n if (traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n var childMatchParent = childMatch.parentElement;\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its previous sibling.\n var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its children.\n if (!suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n return childMatch;\n }\n }\n if (currentElement === rootElement) {\n return null;\n }\n // Check its sibling.\n var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n if (!suppressParentTraversal) {\n return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n // Fallback to other methods of determining actual visibility.\n return (element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex) {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || element.disabled) {\n return false;\n }\n var tabIndex = 0;\n var tabIndexAttributeValue = null;\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n var result = !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n var document = getDocument(element);\n var currentActiveElement = document && document.activeElement;\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute) {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\nvar targetToFocusOnNextRepaint = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n if (element) {\n // An element was already queued to be focused, so replace that one with the new element\n if (targetToFocusOnNextRepaint) {\n targetToFocusOnNextRepaint = element;\n return;\n }\n targetToFocusOnNextRepaint = element;\n var win = getWindow(element);\n if (win) {\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n win.requestAnimationFrame(function () {\n var focusableElement = targetToFocusOnNextRepaint;\n // We are done focusing for this frame, so reset the queued focus element\n targetToFocusOnNextRepaint = undefined;\n if (focusableElement) {\n if (focusableElement.getAttribute && focusableElement.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n // Normally, a FocusZone would be responsible for setting the tabindex values on all its descendants.\n // However, even this animation frame callback can pre-empt the rendering of a FocusZone's child elements,\n // so it may be necessary to set the tabindex directly here.\n if (!focusableElement.getAttribute('tabindex')) {\n focusableElement.setAttribute('tabindex', '0');\n }\n }\n focusableElement.focus();\n }\n });\n }\n }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n var element = parent;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var index = path_1[_i];\n var nextChild = element.children[Math.min(index, element.children.length - 1)];\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n var path = [];\n while (toElement && fromElement && toElement !== fromElement) {\n var parent_1 = getParent(toElement, true);\n if (parent_1 === null) {\n return [];\n }\n path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n toElement = parent_1;\n }\n return path;\n}\n//# sourceMappingURL=focus.js.map","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@uifabric/merge-styles';\n// Initialize global window id.\nvar CURRENT_ID_PROPERTY = '__currentId__';\nvar DEFAULT_ID_STRING = 'id__';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar _global = getWindow() || {};\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\nvar _initializedStylesheetResets = false;\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix) {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n var index = _global[CURRENT_ID_PROPERTY]++;\n return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter) {\n if (counter === void 0) { counter = 0; }\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n//# sourceMappingURL=getId.js.map","import { labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, formProperties, iframeProperties, imgProperties, htmlElementProperties, getNativeProps, } from './properties';\nvar 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 form: formProperties,\n iframe: iframeProperties,\n img: imgProperties,\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// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeElementProps(tagName, props, excludedPropNames) {\n var allowedPropNames = (tagName && nativeElementMap[tagName]) || htmlElementProperties;\n return getNativeProps(props, allowedPropNames, excludedPropNames);\n}\n//# sourceMappingURL=getNativeElementProps.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n var props = __assign({}, propsWithoutDefaults);\n for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n var key = _a[_i];\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n var hoisted = [];\n var _loop_1 = function (methodName) {\n if (typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n source[methodName].apply(source, args);\n };\n }\n };\n for (var methodName in source) {\n _loop_1(methodName);\n }\n return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dest[name_1] = source[name_1];\n }\n }\n return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function () {\n var _a, _b;\n var win = getWindow();\n if (!((_b = (_a = win) === null || _a === void 0 ? void 0 : _a.navigator) === null || _b === void 0 ? void 0 : _b.userAgent)) {\n return false;\n }\n return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};\n//# sourceMappingURL=ie11Detector.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('@uifabric/utilities', '7.38.1');\n//# sourceMappingURL=version.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\nfunction _onMount() {\n _setComponentRef(this.props.componentRef, this);\n}\nfunction _onUpdate(prevProps) {\n if (prevProps.componentRef !== this.props.componentRef) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _setComponentRef(prevProps.componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\nfunction _onUnmount() {\n _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n componentRef.current = value;\n }\n else if (typeof componentRef === 'function') {\n componentRef(value);\n }\n }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","import { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown and mousedown events. (It will only do it once per window,\n * so it's safe to call this method multiple times.)\n * 2. When the user presses directional keyboard keys, adds the 'ms-Fabric--isFocusVisible' classname\n * to the document body, removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user clicks a mouse button, adds the 'ms-Fabric-isFocusHidden' classname to the\n * document body, removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param window - the window used to add the event listeners\n * @deprecated Use useFocusRects hook or FocusRects component instead.\n */\nexport function initializeFocusRects(window) {\n var _a;\n var win = (window || getWindow());\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return;\n }\n if (!win.__hasInitializeFocusRects__) {\n win.__hasInitializeFocusRects__ = true;\n win.addEventListener('mousedown', _onMouseDown, true);\n win.addEventListener('pointerdown', _onPointerDown, true);\n win.addEventListener('keydown', _onKeyDown, true);\n }\n}\nfunction _onMouseDown(ev) {\n setFocusVisibility(false, ev.target);\n}\nfunction _onPointerDown(ev) {\n if (ev.pointerType !== 'mouse') {\n setFocusVisibility(false, ev.target);\n }\n}\nfunction _onKeyDown(ev) {\n // eslint-disable-next-line deprecation/deprecation\n isDirectionalKeyCode(ev.which) && setFocusVisibility(true, ev.target);\n}\n//# sourceMappingURL=initializeFocusRects.js.map","/**\n * Regular expression matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n * so for example, (xyz) [xyz] {xyz} all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{][^\\)\\]\\}]*[\\)\\]\\}]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic: Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n * CJK Unified Ideographs Extension B\n */\n// eslint-disable-next-line @fluentui/max-len\nvar UNSUPPORTED_TEXT_REGEX = /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n var initials = '';\n var splits = displayName.split(' ');\n if (splits.length === 2) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[1].charAt(0).toUpperCase();\n }\n else if (splits.length === 3) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[2].charAt(0).toUpperCase();\n }\n else if (splits.length !== 0) {\n initials += splits[0].charAt(0).toUpperCase();\n }\n if (isRtl && initials.length > 1) {\n return initials.charAt(1) + initials.charAt(0);\n }\n return initials;\n}\nfunction cleanupDisplayName(displayName) {\n displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n displayName = displayName.trim();\n return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n if (!displayName) {\n return '';\n }\n displayName = cleanupDisplayName(displayName);\n // For names containing CJK characters, and phone numbers, we don't display initials\n if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n return '';\n }\n return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n _a[KeyCodes.up] = 1,\n _a[KeyCodes.down] = 1,\n _a[KeyCodes.left] = 1,\n _a[KeyCodes.right] = 1,\n _a[KeyCodes.home] = 1,\n _a[KeyCodes.end] = 1,\n _a[KeyCodes.tab] = 1,\n _a[KeyCodes.pageUp] = 1,\n _a[KeyCodes.pageDown] = 1,\n _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n DirectionalKeyCodes[which] = 1;\n}\n//# sourceMappingURL=keyboard.js.map","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n// Default to undefined so that we initialize on first read.\nvar _language;\nvar STORAGE_KEY = 'language';\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `localStorage` if available.\n * (In version 8, the default will be `sessionStorage`.)\n */\nexport function getLanguage(persistenceType) {\n if (persistenceType === void 0) { persistenceType = 'localStorage'; }\n if (_language === undefined) {\n var doc = getDocument();\n var savedLanguage = persistenceType === 'localStorage'\n ? localStorage.getItem(STORAGE_KEY)\n : persistenceType === 'sessionStorage'\n ? sessionStorage.getItem(STORAGE_KEY)\n : undefined;\n if (savedLanguage) {\n _language = savedLanguage;\n }\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n if (_language === undefined) {\n _language = 'en';\n }\n }\n return _language;\n}\nexport function setLanguage(language, persistenceParam) {\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'localStorage' : persistenceParam;\n if (persistenceType === 'localStorage') {\n localStorage.setItem(STORAGE_KEY, language);\n }\n else if (persistenceType === 'sessionStorage') {\n sessionStorage.setItem(STORAGE_KEY, language);\n }\n _language = language;\n}\n//# sourceMappingURL=language.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key, data) {\n try {\n var win = getWindow();\n win && win.localStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=localStorage.js.map","/**\n * Determines the distance between two points.\n *\n * @public\n */\n/* eslint-disable deprecation/deprecation */\nexport function getDistanceBetweenPoints(point1, point2) {\n var left1 = point1.left || point1.x || 0;\n var top1 = point1.top || point1.y || 0;\n var left2 = point2.left || point2.x || 0;\n var top2 = point2.top || point2.y || 0;\n /* eslint-enable deprecation/deprecation */\n var distance = Math.sqrt(Math.pow(left1 - left2, 2) + Math.pow(top1 - top2, 2));\n return distance;\n}\n/**\n * Produces a proportionally-scaled version of an input content size when fit to a bounding size.\n * Given a `contentSize` and a `boundsSize`, this function scales `contentSize` proportionally\n * using either `contain` or `cover` fit behaviors.\n * Use this function to pre-calculate the layout for the CSS `object-fit` and `background-fit` behaviors.\n * With `contain`, the output size must be the largest it can be while completely within the `boundsSize`.\n * With `cover`, the output size must be the smallest it can be while completely around the `boundsSize`.\n * By default, there is a `maxScale` value of 1, which prevents the `contentSize` from being scaled larger.\n *\n * @param options - the options for the bounds fit operation\n */\nexport function fitContentToBounds(options) {\n var contentSize = options.contentSize, boundsSize = options.boundsSize, _a = options.mode, mode = _a === void 0 ? 'contain' : _a, _b = options.maxScale, maxScale = _b === void 0 ? 1 : _b;\n var contentAspectRatio = contentSize.width / contentSize.height;\n var boundsAspectRatio = boundsSize.width / boundsSize.height;\n var scale;\n if (mode === 'contain' ? contentAspectRatio > boundsAspectRatio : contentAspectRatio < boundsAspectRatio) {\n scale = boundsSize.width / contentSize.width;\n }\n else {\n scale = boundsSize.height / contentSize.height;\n }\n var finalScale = Math.min(maxScale, scale);\n return {\n width: contentSize.width * finalScale,\n height: contentSize.height * finalScale,\n };\n}\n/**\n * Calculates a number's precision based on the number of trailing\n * zeros if the number does not have a decimal indicated by a negative\n * precision. Otherwise, it calculates the number of digits after\n * the decimal point indicated by a positive precision.\n * @param value - the value to determine the precision of\n */\nexport function calculatePrecision(value) {\n /**\n * Group 1:\n * [1-9]([0]+$) matches trailing zeros\n * Group 2:\n * \\.([0-9]*) matches all digits after a decimal point.\n */\n var groups = /[1-9]([0]+$)|\\.([0-9]*)/.exec(String(value));\n if (!groups) {\n return 0;\n }\n if (groups[1]) {\n return -groups[1].length;\n }\n if (groups[2]) {\n return groups[2].length;\n }\n return 0;\n}\n/**\n * Rounds a number to a certain level of precision. Accepts negative precision.\n * @param value - The value that is being rounded.\n * @param precision - The number of decimal places to round the number to\n */\nexport function precisionRound(value, precision, base) {\n if (base === void 0) { base = 10; }\n var exp = Math.pow(base, precision);\n return Math.round(value * exp) / exp;\n}\n//# sourceMappingURL=math.js.map","import { Stylesheet } from '@uifabric/merge-styles';\nvar _initializedStylesheetResets = false;\nvar _resetCounter = 0;\nvar _emptyObject = { empty: true };\nvar _dictionary = {};\nvar _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap) {\n _weakMap = weakMap;\n}\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations() {\n _resetCounter++;\n}\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(target, key, descriptor) {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n return {\n configurable: true,\n get: function () {\n return fn;\n },\n };\n}\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {\n if (maxCacheSize === void 0) { maxCacheSize = 100; }\n if (ignoreNullOrUndefinedResult === void 0) { ignoreNullOrUndefinedResult = false; }\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n if (!_initializedStylesheetResets) {\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n var rootNode;\n var cacheSize = 0;\n var localResetCounter = _resetCounter;\n return function memoizedFunction() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var currentNode = rootNode;\n if (rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n currentNode = rootNode;\n // Traverse the tree until we find the match.\n for (var i = 0; i < args.length; i++) {\n var arg = _normalizeArg(args[i]);\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n currentNode = currentNode.map.get(arg);\n }\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb.apply(void 0, args);\n cacheSize++;\n }\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb.apply(void 0, args);\n }\n return currentNode.value;\n };\n}\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer(getValue) {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n var cache = new _weakMap();\n function memoizedGetValue(input) {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n if (cache.has(input)) {\n return cache.get(input);\n }\n var value = getValue(input);\n cache.set(input, value);\n return value;\n }\n return memoizedGetValue;\n}\nfunction _normalizeArg(val) {\n if (!val) {\n return _emptyObject;\n }\n else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n }\n else if (!_dictionary[val]) {\n _dictionary[val] = { val: val };\n }\n return _dictionary[val];\n}\nfunction _createNode() {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n//# sourceMappingURL=memoize.js.map","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n _merge(target || {}, arg);\n }\n return target;\n}\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target, source, circularReferences) {\n if (circularReferences === void 0) { circularReferences = []; }\n circularReferences.push(source);\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n if (name_1 !== '__proto__' && name_1 !== 'constructor' && name_1 !== 'prototype') {\n var value = source[name_1];\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n var isCircularReference = circularReferences.indexOf(value) > -1;\n target[name_1] = (isCircularReference\n ? value\n : _merge(target[name_1] || {}, value, circularReferences));\n }\n else {\n target[name_1] = value;\n }\n }\n }\n }\n circularReferences.pop();\n return target;\n}\n//# sourceMappingURL=merge.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n var _a;\n var affectedNodes = [];\n var targetDocument = getDocument(target) || document;\n // start at target, then recurse and do the same for parent, until we reach <body>\n while (target !== targetDocument.body) {\n // grab all siblings of current element\n for (var _i = 0, _b = target.parentElement.children; _i < _b.length; _i++) {\n var sibling = _b[_i];\n // but ignore elements that are already aria-hidden\n if (sibling !== target && ((_a = sibling.getAttribute('aria-hidden')) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'true') {\n affectedNodes.push(sibling);\n }\n }\n if (!target.parentElement) {\n break;\n }\n target = target.parentElement;\n }\n // take all those elements and set aria-hidden=true on them\n affectedNodes.forEach(function (node) {\n node.setAttribute('aria-hidden', 'true');\n });\n return function () {\n unmodalize(affectedNodes);\n affectedNodes = []; // dispose\n };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n affectedNodes.forEach(function (node) {\n // set instead of removing in case other components explicitly set aria-hidden and do ==\"true\" or ==\"false\"\n node.setAttribute('aria-hidden', 'false');\n });\n}\n//# sourceMappingURL=modalize.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n for (var propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (var propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n target = target || {};\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var sourceObject = args_1[_a];\n if (sourceObject) {\n for (var propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n // map<any> to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map(function (p) {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p, theEnum[p]);\n }\n return undefined;\n })\n .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n return Object.keys(obj).reduce(function (arr, key) {\n arr.push(obj[key]);\n return arr;\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 */\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 var result = {};\n for (var key in obj) {\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=object.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n if (typeof isMacResult === 'undefined' || reset) {\n var win = getWindow();\n var userAgent = win && win.navigator.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","var toObjectMap = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var result = {};\n for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n var item = items_1[_a];\n var keys = Array.isArray(item) ? item : Object.keys(item);\n for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n var key = keys_1[_b];\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 */\nexport var baseElementEvents = toObjectMap([\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 */\nexport var 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 HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n 'form',\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var 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 */\nexport var videoProperties = toObjectMap(audioProperties, [\n 'poster',\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n 'start',\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n 'value',\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n 'download',\n 'href',\n 'hrefLang',\n 'media',\n 'rel',\n 'target',\n 'type',\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var 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 */\nexport var 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 */\nexport var 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 */\nexport var selectProperties = toObjectMap(buttonProperties, [\n 'form',\n 'multiple',\n 'required',\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n 'selected',\n 'value',\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding',\n 'cellSpacing',\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan',\n 'scope',\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'headers',\n 'rowSpan',\n 'scope',\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span',\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n 'span',\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var 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 */\nexport var 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 */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n 'alt',\n 'crossOrigin',\n 'height',\n 'src',\n 'srcSet',\n 'useMap',\n 'width',\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var 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 allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// 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 var _a;\n var isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n var keys = Object.keys(props);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var isNativeProp = (!isArray && allowedPropNames[key]) ||\n (isArray && allowedPropNames.indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n if (isNativeProp && (!excludedPropNames || ((_a = excludedPropNames) === null || _a === void 0 ? void 0 : _a.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//# sourceMappingURL=properties.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n var outerMemoizer = createMemoizer(function (inner) {\n var innerMemoizer = createMemoizer(function (defaultRender) {\n return function (innerProps) {\n return inner(innerProps, defaultRender);\n };\n });\n return function (outerProps, defaultRender) {\n return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n };\n });\n return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","var _baseUrl = '';\n/** Sets the current base url used for fetching images. */\nexport function getResourceUrl(url) {\n return _baseUrl + url;\n}\n/** Gets the current base url used for fetching images. */\nexport function setBaseUrl(baseUrl) {\n _baseUrl = baseUrl;\n}\n//# sourceMappingURL=resources.js.map","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@uifabric/merge-styles';\nvar RTL_LOCAL_STORAGE_KEY = 'isRTL';\n// Default to undefined so that we initialize on first read.\nvar _isRTL;\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme) {\n if (theme === void 0) { theme = {}; }\n if (theme.rtl !== undefined) {\n return theme.rtl;\n }\n if (_isRTL === undefined) {\n // Fabric supports persisting the RTL setting between page refreshes via session storage\n var savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n if (savedRTL !== null) {\n _isRTL = savedRTL === '1';\n setRTL(_isRTL);\n }\n var doc = getDocument();\n if (_isRTL === undefined && doc) {\n _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n mergeStylesSetRTL(_isRTL);\n }\n }\n return !!_isRTL;\n}\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL, persistSetting) {\n if (persistSetting === void 0) { persistSetting = false; }\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n if (persistSetting) {\n setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n }\n _isRTL = isRTL;\n mergeStylesSetRTL(_isRTL);\n}\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key, theme) {\n if (theme === void 0) { theme = {}; }\n if (getRTL(theme)) {\n if (key === KeyCodes.left) {\n key = KeyCodes.right;\n }\n else if (key === KeyCodes.right) {\n key = KeyCodes.left;\n }\n }\n return key;\n}\n//# sourceMappingURL=rtl.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeRequestAnimationFrame = function (component) {\n var activeTimeouts;\n return function (cb) {\n if (!activeTimeouts) {\n activeTimeouts = new Set();\n extendComponent(component, {\n componentWillUnmount: function () {\n activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });\n },\n });\n }\n var timeoutId = requestAnimationFrame(function () {\n activeTimeouts.delete(timeoutId);\n cb();\n });\n activeTimeouts.add(timeoutId);\n };\n};\n//# sourceMappingURL=safeRequestAnimationFrame.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to setTimeout. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeSetTimeout = function (component) {\n var activeTimeouts;\n return function (cb, duration) {\n if (!activeTimeouts) {\n activeTimeouts = new Set();\n extendComponent(component, {\n componentWillUnmount: function () {\n activeTimeouts.forEach(function (id) { return clearTimeout(id); });\n },\n });\n }\n var timeoutId = setTimeout(function () {\n activeTimeouts.delete(timeoutId);\n cb();\n }, duration);\n activeTimeouts.add(timeoutId);\n };\n};\n//# sourceMappingURL=safeSetTimeout.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@uifabric/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _previousClientY = 0;\n var _element = null;\n // remember the clientY for future calls of _preventOverscrolling\n var _saveClientY = function (event) {\n if (event.targetTouches.length === 1) {\n _previousClientY = event.targetTouches[0].clientY;\n }\n };\n // prevent the body from scrolling when the user attempts\n // to scroll past the top or bottom of the element\n var _preventOverscrolling = function (event) {\n // only respond to a single-finger touch\n if (event.targetTouches.length !== 1) {\n return;\n }\n // prevent the body touchmove handler from firing\n // so that scrolling is allowed within the element\n event.stopPropagation();\n if (!_element) {\n return;\n }\n var clientY = event.targetTouches[0].clientY - _previousClientY;\n var scrollableParent = findScrollableParent(event.target);\n if (scrollableParent) {\n _element = scrollableParent;\n }\n // if the element is scrolled to the top,\n // prevent the user from scrolling up\n if (_element.scrollTop === 0 && clientY > 0) {\n event.preventDefault();\n }\n // if the element is scrolled to the bottom,\n // prevent the user from scrolling down\n if (_element.scrollHeight - Math.ceil(_element.scrollTop) <= _element.clientHeight && clientY < 0) {\n event.preventDefault();\n }\n };\n events.on(element, 'touchstart', _saveClientY, { passive: false });\n events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _allowElementScroll = function (event) {\n event.stopPropagation();\n };\n events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n var doc = getDocument();\n if (doc && doc.body && !_bodyScrollDisabledCount) {\n doc.body.classList.add(DisabledScrollClassName);\n doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n }\n _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n if (_bodyScrollDisabledCount > 0) {\n var doc = getDocument();\n if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n doc.body.classList.remove(DisabledScrollClassName);\n doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n }\n _bodyScrollDisabledCount--;\n }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth() {\n if (_scrollbarWidth === undefined) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.setProperty('width', '100px');\n scrollDiv.style.setProperty('height', '100px');\n scrollDiv.style.setProperty('overflow', 'scroll');\n scrollDiv.style.setProperty('position', 'absolute');\n scrollDiv.style.setProperty('top', '-9999px');\n document.body.appendChild(scrollDiv);\n // Get the scrollbar width\n _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n }\n return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n var el = startingElement;\n var doc = getDocument(startingElement);\n // First do a quick scan for the scrollable attribute.\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n return el;\n }\n el = el.parentElement;\n }\n // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n el = startingElement;\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n var computedStyles = getComputedStyle(el);\n var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n return el;\n }\n }\n el = el.parentElement;\n }\n // Fall back to window scroll.\n if (!el || el === doc.body) {\n el = getWindow(startingElement);\n }\n return el;\n}\n//# sourceMappingURL=scroll.js.map","import { SELECTION_CHANGE, SELECTION_ITEMS_CHANGE, SelectionMode } from './Selection.types';\nimport { EventGroup } from '../EventGroup';\n/**\n * {@docCategory Selection}\n */\nvar Selection = /** @class */ (function () {\n /**\n * Create a new Selection. If `TItem` does not have a `key` property, you must provide an options\n * object with a `getKey` implementation. Providing options is optional otherwise.\n * (At most one `options` object is accepted.)\n */\n function Selection() {\n var options = []; // Otherwise, arguments require options with `getKey`.\n for (var _i = 0 // Otherwise, arguments require options with `getKey`.\n ; _i < arguments.length // Otherwise, arguments require options with `getKey`.\n ; _i++ // Otherwise, arguments require options with `getKey`.\n ) {\n options[_i] = arguments[_i]; // Otherwise, arguments require options with `getKey`.\n }\n var _a = options[0] || {}, onSelectionChanged = _a.onSelectionChanged, onItemsChanged = _a.onItemsChanged, getKey = _a.getKey, _b = _a.canSelectItem, canSelectItem = _b === void 0 ? function () { return true; } : _b, items = _a.items, _c = _a.selectionMode, selectionMode = _c === void 0 ? SelectionMode.multiple : _c;\n this.mode = selectionMode;\n this._getKey = getKey || defaultGetKey;\n this._changeEventSuppressionCount = 0;\n this._exemptedCount = 0;\n this._anchoredIndex = 0;\n this._unselectableCount = 0;\n this._onSelectionChanged = onSelectionChanged;\n this._onItemsChanged = onItemsChanged;\n this._canSelectItem = canSelectItem;\n this._keyToIndexMap = {};\n this._isModal = false;\n this.setItems(items || [], true);\n this.count = this.getSelectedCount();\n }\n Selection.prototype.canSelectItem = function (item, index) {\n if (typeof index === 'number' && index < 0) {\n return false;\n }\n return this._canSelectItem(item, index);\n };\n Selection.prototype.getKey = function (item, index) {\n var key = this._getKey(item, index);\n return typeof key === 'number' || key ? \"\" + key : '';\n };\n Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {\n this._changeEventSuppressionCount += isEnabled ? -1 : 1;\n if (this._changeEventSuppressionCount === 0 && this._hasChanged) {\n this._hasChanged = false;\n if (!suppressChange) {\n this._change();\n }\n }\n };\n Selection.prototype.isModal = function () {\n return this._isModal;\n };\n Selection.prototype.setModal = function (isModal) {\n if (this._isModal !== isModal) {\n this.setChangeEvents(false);\n this._isModal = isModal;\n if (!isModal) {\n this.setAllSelected(false);\n }\n this._change();\n this.setChangeEvents(true);\n }\n };\n /**\n * Selection needs the items, call this method to set them. If the set\n * of items is the same, this will re-evaluate selection and index maps.\n * Otherwise, shouldClear should be set to true, so that selection is\n * cleared.\n */\n Selection.prototype.setItems = function (items, shouldClear) {\n if (shouldClear === void 0) { shouldClear = true; }\n var newKeyToIndexMap = {};\n var newUnselectableIndices = {};\n var hasSelectionChanged = false;\n this.setChangeEvents(false);\n // Reset the unselectable count.\n this._unselectableCount = 0;\n var haveItemsChanged = false;\n // Build lookup table for quick selection evaluation.\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item) {\n var key = this.getKey(item, i);\n if (key) {\n if (!haveItemsChanged && (!(key in this._keyToIndexMap) || this._keyToIndexMap[key] !== i)) {\n haveItemsChanged = true;\n }\n newKeyToIndexMap[key] = i;\n }\n }\n newUnselectableIndices[i] = item && !this.canSelectItem(item);\n if (newUnselectableIndices[i]) {\n this._unselectableCount++;\n }\n }\n if (shouldClear || items.length === 0) {\n this._setAllSelected(false, true);\n }\n // Check the exemption list for discrepencies.\n var newExemptedIndicies = {};\n var newExemptedCount = 0;\n for (var indexProperty in this._exemptedIndices) {\n if (this._exemptedIndices.hasOwnProperty(indexProperty)) {\n var index = Number(indexProperty);\n var item = this._items[index];\n var exemptKey = item ? this.getKey(item, Number(index)) : undefined;\n var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;\n if (newIndex === undefined) {\n // The item has likely been replaced or removed.\n hasSelectionChanged = true;\n }\n else {\n // We know the new index of the item. update the existing exemption table.\n newExemptedIndicies[newIndex] = true;\n newExemptedCount++;\n hasSelectionChanged = hasSelectionChanged || newIndex !== index;\n }\n }\n }\n if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {\n // If everything was selected but the number of items has changed, selection has changed.\n hasSelectionChanged = true;\n }\n if (!haveItemsChanged) {\n for (var _i = 0, _a = Object.keys(this._keyToIndexMap); _i < _a.length; _i++) {\n var key = _a[_i];\n if (!(key in newKeyToIndexMap)) {\n haveItemsChanged = true;\n break;\n }\n }\n }\n this._exemptedIndices = newExemptedIndicies;\n this._exemptedCount = newExemptedCount;\n this._keyToIndexMap = newKeyToIndexMap;\n this._unselectableIndices = newUnselectableIndices;\n this._items = items;\n this._selectedItems = null;\n if (hasSelectionChanged) {\n this._updateCount();\n }\n if (haveItemsChanged) {\n EventGroup.raise(this, SELECTION_ITEMS_CHANGE);\n if (this._onItemsChanged) {\n this._onItemsChanged();\n }\n }\n if (hasSelectionChanged) {\n this._change();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.getItems = function () {\n return this._items;\n };\n Selection.prototype.getSelection = function () {\n if (!this._selectedItems) {\n this._selectedItems = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedItems.push(items[i]);\n }\n }\n }\n }\n return this._selectedItems;\n };\n Selection.prototype.getSelectedCount = function () {\n return this._isAllSelected\n ? this._items.length - this._exemptedCount - this._unselectableCount\n : this._exemptedCount;\n };\n Selection.prototype.getSelectedIndices = function () {\n if (!this._selectedIndices) {\n this._selectedIndices = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedIndices.push(i);\n }\n }\n }\n }\n return this._selectedIndices;\n };\n Selection.prototype.getItemIndex = function (key) {\n var index = this._keyToIndexMap[key];\n return (index !== null && index !== void 0 ? index : -1);\n };\n Selection.prototype.isRangeSelected = function (fromIndex, count) {\n if (count === 0) {\n return false;\n }\n var endIndex = fromIndex + count;\n for (var i = fromIndex; i < endIndex; i++) {\n if (!this.isIndexSelected(i)) {\n return false;\n }\n }\n return true;\n };\n Selection.prototype.isAllSelected = function () {\n var selectableCount = this._items.length - this._unselectableCount;\n // In single mode, we can only have a max of 1 item.\n if (this.mode === SelectionMode.single) {\n selectableCount = Math.min(selectableCount, 1);\n }\n return ((this.count > 0 && this._isAllSelected && this._exemptedCount === 0) ||\n (!this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0));\n };\n Selection.prototype.isKeySelected = function (key) {\n var index = this._keyToIndexMap[key];\n return this.isIndexSelected(index);\n };\n Selection.prototype.isIndexSelected = function (index) {\n return !!((this.count > 0 && this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index]) ||\n (!this._isAllSelected && this._exemptedIndices[index]));\n };\n Selection.prototype.setAllSelected = function (isAllSelected) {\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {\n var index = this._keyToIndexMap[key];\n if (index >= 0) {\n this.setIndexSelected(index, isSelected, shouldAnchor);\n }\n };\n Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n index = Math.min(Math.max(0, index), this._items.length - 1);\n // No-op on out of bounds selections.\n if (index < 0 || index >= this._items.length) {\n return;\n }\n this.setChangeEvents(false);\n var isExempt = this._exemptedIndices[index];\n var canSelect = !this._unselectableIndices[index];\n if (canSelect) {\n if (isSelected && this.mode === SelectionMode.single) {\n // If this is single-select, the previous selection should be removed.\n this._setAllSelected(false, true);\n }\n // Determine if we need to remove the exemption.\n if (isExempt && ((isSelected && this._isAllSelected) || (!isSelected && !this._isAllSelected))) {\n delete this._exemptedIndices[index];\n this._exemptedCount--;\n }\n // Determine if we need to add the exemption.\n if (!isExempt && ((isSelected && !this._isAllSelected) || (!isSelected && this._isAllSelected))) {\n this._exemptedIndices[index] = true;\n this._exemptedCount++;\n }\n if (shouldAnchor) {\n this._anchoredIndex = index;\n }\n }\n this._updateCount();\n this.setChangeEvents(true);\n };\n Selection.prototype.setRangeSelected = function (fromIndex, count, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n fromIndex = Math.min(Math.max(0, fromIndex), this._items.length - 1);\n // Clamp the range.\n count = Math.min(Math.max(0, count), this._items.length - fromIndex);\n // No-op on out of bounds selections.\n if (fromIndex < 0 || fromIndex >= this._items.length || count === 0) {\n return;\n }\n this.setChangeEvents(false);\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = fromIndex;\n var endIndex = fromIndex + count - 1;\n var newAnchorIndex = anchorIndex >= endIndex ? startIndex : endIndex;\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, isSelected, shouldAnchor ? startIndex === newAnchorIndex : false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToKey = function (key, clearSelection) {\n this.selectToIndex(this._keyToIndexMap[key], clearSelection);\n };\n Selection.prototype.selectToRange = function (fromIndex, count, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n if (count === 1) {\n this.setIndexSelected(fromIndex, true, true);\n }\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(fromIndex, anchorIndex);\n var endIndex = Math.max(fromIndex + count - 1, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToIndex = function (index, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n this.setIndexSelected(index, true, true);\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(index, anchorIndex);\n var endIndex = Math.max(index, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.toggleAllSelected = function () {\n this.setAllSelected(!this.isAllSelected());\n };\n Selection.prototype.toggleKeySelected = function (key) {\n this.setKeySelected(key, !this.isKeySelected(key), true);\n };\n Selection.prototype.toggleIndexSelected = function (index) {\n this.setIndexSelected(index, !this.isIndexSelected(index), true);\n };\n Selection.prototype.toggleRangeSelected = function (fromIndex, count) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n var isRangeSelected = this.isRangeSelected(fromIndex, count);\n var endIndex = fromIndex + count;\n if (this.mode === SelectionMode.single && count > 1) {\n return;\n }\n this.setChangeEvents(false);\n for (var i = fromIndex; i < endIndex; i++) {\n this.setIndexSelected(i, !isRangeSelected, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._updateCount = function (preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n var count = this.getSelectedCount();\n if (count !== this.count) {\n this.count = count;\n this._change();\n }\n if (!this.count && !preserveModalState) {\n this.setModal(false);\n }\n };\n Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount(preserveModalState);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._change = function () {\n if (this._changeEventSuppressionCount === 0) {\n this._selectedItems = null;\n this._selectedIndices = undefined;\n EventGroup.raise(this, SELECTION_CHANGE);\n if (this._onSelectionChanged) {\n this._onSelectionChanged();\n }\n }\n else {\n this._hasChanged = true;\n }\n };\n return Selection;\n}());\nexport { Selection };\nfunction defaultGetKey(item, index) {\n // 0 may be used as a key\n var _a = (item || {}).key, key = _a === void 0 ? \"\" + index : _a;\n return key;\n}\n//# sourceMappingURL=Selection.js.map","export var SELECTION_CHANGE = 'change';\nexport var SELECTION_ITEMS_CHANGE = 'items-change';\n/**\n * {@docCategory Selection}\n */\nexport var SelectionMode;\n(function (SelectionMode) {\n SelectionMode[SelectionMode[\"none\"] = 0] = \"none\";\n SelectionMode[SelectionMode[\"single\"] = 1] = \"single\";\n SelectionMode[SelectionMode[\"multiple\"] = 2] = \"multiple\";\n})(SelectionMode || (SelectionMode = {}));\n/**\n * {@docCategory Selection}\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n SelectionDirection[SelectionDirection[\"horizontal\"] = 0] = \"horizontal\";\n SelectionDirection[SelectionDirection[\"vertical\"] = 1] = \"vertical\";\n})(SelectionDirection || (SelectionDirection = {}));\n//# sourceMappingURL=Selection.types.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.sessionStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key, data) {\n var _a;\n try {\n (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.sessionStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=sessionStorage.js.map","import { getWindow } from './dom/getWindow';\nexport var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport var IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - whether to remove or add focus\n * @param target - optional target\n */\nexport function setFocusVisibility(enabled, target) {\n var win = target ? getWindow(target) : getWindow();\n if (win) {\n var classList = win.document.body.classList;\n classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n//# sourceMappingURL=setFocusVisibility.js.map","// Regex that finds { and } so they can be removed on a lookup for string format\nvar FORMAT_ARGS_REGEX = /[\\{\\}]/g;\n// Regex that finds {#} so it can be replaced by the arguments in string format\nvar FORMAT_REGEX = /\\{\\d+\\}/g;\n/**\n * String format method, used for scenarios where at runtime you\n * need to evaluate a formatted string given a tokenized string. This\n * usually only is needed in localization scenarios.\n\n * @example\n * ```tsx\n * \"I love {0} every {1}\".format(\"CXP\")\n * ```\n * will result in a Debug Exception.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(s) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var args = values;\n // Callback match function\n function replaceFunc(match) {\n // looks up in the args\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')];\n // catches undefined in nondebug and null in debug and nondebug\n if (replacement === null || replacement === undefined) {\n replacement = '';\n }\n return replacement;\n }\n return s.replace(FORMAT_REGEX, replaceFunc);\n}\n//# sourceMappingURL=string.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSetsWithProps } from '@uifabric/merge-styles';\nimport { useCustomizationSettings } from './customizations/useCustomizationSettings';\nvar DefaultFields = ['theme', 'styles'];\nexport function styled(Component, baseStyles, getProps, customizable, pure) {\n customizable = customizable || { scope: '', fields: undefined };\n var scope = customizable.scope, _a = customizable.fields, fields = _a === void 0 ? DefaultFields : _a;\n var Wrapped = React.forwardRef(function (props, forwardedRef) {\n var styles = React.useRef();\n var settings = useCustomizationSettings(fields, scope);\n var customizedStyles = settings.styles, dir = settings.dir, rest = __rest(settings, [\"styles\", \"dir\"]);\n var additionalProps = getProps ? getProps(props) : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var cache = (styles.current && styles.current.__cachedInputs__) || [];\n if (!styles.current || customizedStyles !== cache[1] || props.styles !== cache[2]) {\n // Using styled components as the Component arg will result in nested styling arrays.\n var concatenatedStyles = function (styleProps) {\n return concatStyleSetsWithProps(styleProps, baseStyles, customizedStyles, props.styles);\n };\n // The __cachedInputs__ array is attached to the function and consumed by the\n // classNamesFunction as a list of keys to include for memoizing classnames.\n concatenatedStyles.__cachedInputs__ = [\n baseStyles,\n customizedStyles,\n props.styles,\n ];\n concatenatedStyles.__noStyleOverride__ =\n !customizedStyles && !props.styles;\n styles.current = concatenatedStyles;\n }\n return React.createElement(Component, __assign({ ref: forwardedRef }, rest, additionalProps, props, { styles: styles.current }));\n });\n // Function.prototype.name is an ES6 feature, so the cast to any is required until we're\n // able to drop IE 11 support and compile with ES6 libs\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Wrapped.displayName = \"Styled\" + (Component.displayName || Component.name);\n // This preserves backwards compatibility.\n var pureComponent = pure ? React.memo(Wrapped) : Wrapped;\n // Check if the wrapper has a displayName after it has been memoized. Then assign it to the pure component.\n if (Wrapped.displayName) {\n pureComponent.displayName = Wrapped.displayName;\n }\n return pureComponent;\n}\n//# sourceMappingURL=styled.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\n/**\n * Counter for mounted component that uses focus rectangle.\n * We want to cleanup the listners before last component that uses focus rectangle unmounts.\n */\nvar mountCounters = new WeakMap();\nfunction setMountCounters(key, delta) {\n var newValue;\n var currValue = mountCounters.get(key);\n if (currValue) {\n newValue = currValue + delta;\n }\n else {\n newValue = 1;\n }\n mountCounters.set(key, newValue);\n return newValue;\n}\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown and mousedown events. (It will only do it once per window,\n * so it's safe to call this method multiple times.)\n * 2. When the user presses directional keyboard keys, adds the 'ms-Fabric--isFocusVisible' classname\n * to the document body, removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user clicks a mouse button, adds the 'ms-Fabric-isFocusHidden' classname to the\n * document body, removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n React.useEffect(function () {\n var _a, _b;\n var win = getWindow((_a = rootRef) === null || _a === void 0 ? void 0 : _a.current);\n if (!win || ((_b = win.FabricConfig) === null || _b === void 0 ? void 0 : _b.disableFocusRects) === true) {\n return undefined;\n }\n var count = setMountCounters(win, 1);\n if (count <= 1) {\n win.addEventListener('mousedown', _onMouseDown, true);\n win.addEventListener('pointerdown', _onPointerDown, true);\n win.addEventListener('keydown', _onKeyDown, true);\n }\n return function () {\n var _a;\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return;\n }\n count = setMountCounters(win, -1);\n if (count === 0) {\n win.removeEventListener('mousedown', _onMouseDown, true);\n win.removeEventListener('pointerdown', _onPointerDown, true);\n win.removeEventListener('keydown', _onKeyDown, true);\n }\n };\n }, [rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n useFocusRects(props.rootRef);\n return null;\n};\nfunction _onMouseDown(ev) {\n setFocusVisibility(false, ev.target);\n}\nfunction _onPointerDown(ev) {\n if (ev.pointerType !== 'mouse') {\n setFocusVisibility(false, ev.target);\n }\n}\nfunction _onKeyDown(ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target);\n }\n}\n//# sourceMappingURL=useFocusRects.js.map","/* eslint-disable no-console */\nvar _warningCallback = undefined;\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message) {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n }\n else if (console && console.warn) {\n console.warn(message);\n }\n}\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback) {\n _warningCallback = warningCallback;\n}\n//# sourceMappingURL=warn.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n if (condition === true && process.env.NODE_ENV !== 'production') {\n for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n var requiredPropName = requiredProps_1[_i];\n if (!(requiredPropName in props)) {\n warn(componentName + \" property '\" + requiredPropName + \"' is required when '\" + conditionalPropName + \"' is used.'\");\n }\n }\n }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { warn } from './warn';\nimport { isControlled as checkIsControlled } from '../controlled';\nvar warningsMap;\nif (process.env.NODE_ENV !== 'production') {\n warningsMap = {\n valueOnChange: {},\n valueDefaultValue: {},\n controlledToUncontrolled: {},\n uncontrolledToControlled: {},\n };\n}\n/** Reset controlled usage warnings for testing purposes. */\nexport function resetControlledWarnings() {\n if (process.env.NODE_ENV !== 'production') {\n warningsMap.valueOnChange = {};\n warningsMap.valueDefaultValue = {};\n warningsMap.controlledToUncontrolled = {};\n warningsMap.uncontrolledToControlled = {};\n }\n}\n/**\n * Check for and warn on the following error conditions with a form component:\n * - A value prop is provided (indicated it's being used as controlled) without a change handler,\n * and the component is not read-only\n * - Both the value and defaultValue props are provided\n * - The component is attempting to switch between controlled and uncontrolled\n *\n * The messages mimic the warnings React gives for these error conditions on input elements.\n * The warning will only be displayed once per component ID.\n */\nexport function warnControlledUsage(params) {\n if (process.env.NODE_ENV !== 'production') {\n var componentId = params.componentId, componentName = params.componentName, defaultValueProp = params.defaultValueProp, props = params.props, oldProps = params.oldProps, onChangeProp = params.onChangeProp, readOnlyProp = params.readOnlyProp, valueProp = params.valueProp;\n // This warning logic closely follows what React does for native <input> elements.\n var oldIsControlled = oldProps ? checkIsControlled(oldProps, valueProp) : undefined;\n var newIsControlled = checkIsControlled(props, valueProp);\n if (newIsControlled) {\n // onChange (or readOnly) must be provided if value is provided\n var hasOnChange = !!props[onChangeProp];\n var isReadOnly = !!(readOnlyProp && props[readOnlyProp]);\n if (!(hasOnChange || isReadOnly) && !warningsMap.valueOnChange[componentId]) {\n warningsMap.valueOnChange[componentId] = true;\n warn(\"Warning: You provided a '\" + valueProp + \"' prop to a \" + componentName + \" without an '\" + onChangeProp + \"' handler. \" +\n (\"This will render a read-only field. If the field should be mutable use '\" + defaultValueProp + \"'. \") +\n (\"Otherwise, set '\" + onChangeProp + \"'\" + (readOnlyProp ? \" or '\" + readOnlyProp + \"'\" : '') + \".\"));\n }\n // value and defaultValue are mutually exclusive\n var defaultValue = props[defaultValueProp];\n if (defaultValue !== undefined && defaultValue !== null && !warningsMap.valueDefaultValue[componentId]) {\n warningsMap.valueDefaultValue[componentId] = true;\n warn(\"Warning: You provided both '\" + valueProp + \"' and '\" + defaultValueProp + \"' to a \" + componentName + \". \" +\n (\"Form fields must be either controlled or uncontrolled (specify either the '\" + valueProp + \"' prop, \") +\n (\"or the '\" + defaultValueProp + \"' prop, but not both). Decide between using a controlled or uncontrolled \") +\n (componentName + \" and remove one of these props. More info: https://fb.me/react-controlled-components\"));\n }\n }\n // Warn if switching between uncontrolled and controlled. (One difference between this implementation\n // and React's <input> is that if oldIsControlled is indeterminate and newIsControlled true, we don't warn.)\n if (oldProps && newIsControlled !== oldIsControlled) {\n var oldType = oldIsControlled ? 'a controlled' : 'an uncontrolled';\n var newType = oldIsControlled ? 'uncontrolled' : 'controlled';\n var warnMap = oldIsControlled ? warningsMap.controlledToUncontrolled : warningsMap.uncontrolledToControlled;\n if (!warnMap[componentId]) {\n warnMap[componentId] = true;\n warn(\"Warning: A component is changing \" + oldType + \" \" + componentName + \" to be \" + newType + \". \" +\n (componentName + \"s should not switch from controlled to uncontrolled (or vice versa). \") +\n \"Decide between using controlled or uncontrolled for the lifetime of the component. \" +\n \"More info: https://fb.me/react-controlled-components\");\n }\n }\n }\n}\n//# sourceMappingURL=warnControlledUsage.js.map","import { warn } from './warn';\n/**\n * Warns when a deprecated props are being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\nexport function warnDeprecations(componentName, props, deprecationMap) {\n if (process.env.NODE_ENV !== 'production') {\n for (var propName in deprecationMap) {\n if (props && propName in props) {\n var deprecationMessage = componentName + \" property '\" + propName + \"' was used but has been deprecated.\";\n var replacementPropName = deprecationMap[propName];\n if (replacementPropName) {\n deprecationMessage += \" Use '\" + replacementPropName + \"' instead.\";\n }\n warn(deprecationMessage);\n }\n }\n }\n}\n//# sourceMappingURL=warnDeprecations.js.map","import { warn } from './warn';\n/**\n * Warns when two props which are mutually exclusive are both being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param exclusiveMap - A map where the key is a parameter, and the value is the other parameter.\n */\nexport function warnMutuallyExclusive(componentName, props, exclusiveMap) {\n if (process.env.NODE_ENV !== 'production') {\n for (var propName in exclusiveMap) {\n if (props && props[propName] !== undefined) {\n var propInExclusiveMapValue = exclusiveMap[propName];\n if (propInExclusiveMapValue && props[propInExclusiveMapValue] !== undefined) {\n warn(componentName + \" property '\" + propName + \"' is mutually exclusive with '\" + exclusiveMap[propName] + \"'. \" +\n \"Use one or the other.\");\n }\n }\n }\n }\n}\n//# sourceMappingURL=warnMutuallyExclusive.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\n function template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = lodash.templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = '//# sourceURL=' +\n (hasOwnProperty.call(options, 'sourceURL')\n ? (options.sourceURL + '').replace(/\\s/g, ' ')\n : ('lodash.templateSources[' + (++templateCounter) + ']')\n ) + '\\n';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n }\n\n /**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n\n /**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n\n /**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n }\n\n /**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n }\n\n /**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n }\n\n /**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n }\n\n /**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n }\n\n /**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\n var upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n });\n\n /**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n var upperFirst = createCaseFirst('toUpperCase');\n\n /**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n });\n\n /**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n\n /**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = getIteratee();\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n\n /**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\n function constant(value) {\n return function() {\n return value;\n };\n }\n\n /**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\n function defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n }\n\n /**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\n var flow = createFlow();\n\n /**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\n var flowRight = createFlow(true);\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n function iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n\n /**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\n var over = createOver(arrayMap);\n\n /**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\n var overEvery = createOver(arrayEvery);\n\n /**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\n var overSome = createOver(arraySome);\n\n /**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n\n /**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n }\n\n /**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n var range = createRange();\n\n /**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\n var rangeRight = createRange(true);\n\n /**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\n function stubArray() {\n return [];\n }\n\n /**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n function stubFalse() {\n return false;\n }\n\n /**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\n function stubObject() {\n return {};\n }\n\n /**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\n function stubString() {\n return '';\n }\n\n /**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\n function stubTrue() {\n return true;\n }\n\n /**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\n function times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = getIteratee(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n }\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\n var add = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n\n /**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\n var ceil = createRound('ceil');\n\n /**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n\n /**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\n var floor = createRound('floor');\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n function maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n : undefined;\n }\n\n /**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\n function mean(array) {\n return baseMean(array, identity);\n }\n\n /**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\n function meanBy(array, iteratee) {\n return baseMean(array, getIteratee(iteratee, 2));\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n function minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n : undefined;\n }\n\n /**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n\n /**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\n var round = createRound('round');\n\n /**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n\n /**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\n function sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n }\n\n /**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\n function sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, getIteratee(iteratee, 2))\n : 0;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n\n // Add aliases.\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Assign default placeholders.\n arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n\n // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n arrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n\n // Add `LazyWrapper` methods that accept an `iteratee` value.\n arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': getIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n });\n\n // Add `LazyWrapper` methods for `_.head` and `_.last`.\n arrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n\n // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n arrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n };\n\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n\n // Add `LazyWrapper` methods to `lodash.prototype`.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n });\n\n // Add `Array` methods to `lodash.prototype`.\n arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Map minified method names to their real names.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n }\n });\n\n realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n }];\n\n // Add methods to `LazyWrapper`.\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n // Add lazy aliases.\n lodash.prototype.first = lodash.prototype.head;\n\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n });\n\n /*--------------------------------------------------------------------------*/\n\n // Export lodash.\n var _ = runInContext();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = _;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function() {\n return _;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = _)._ = _;\n // Export for CommonJS support.\n freeExports._ = _;\n }\n else {\n // Export to the global object.\n root._ = _;\n }\n}.call(this));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var af = moment.defineLocale('af', {\n months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM : function (input) {\n return /^nm$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Vandag om] LT',\n nextDay : '[Môre om] LT',\n nextWeek : 'dddd [om] LT',\n lastDay : '[Gister om] LT',\n lastWeek : '[Laas] dddd [om] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'oor %s',\n past : '%s gelede',\n s : '\\'n paar sekondes',\n ss : '%d sekondes',\n m : '\\'n minuut',\n mm : '%d minute',\n h : '\\'n uur',\n hh : '%d ure',\n d : '\\'n dag',\n dd : '%d dae',\n M : '\\'n maand',\n MM : '%d maande',\n y : '\\'n jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week : {\n dow : 1, // Maandag is die eerste dag van die week.\n doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arDz = moment.defineLocale('ar-dz', {\n months : 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort : 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø£Ø_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arKw = moment.defineLocale('ar-kw', {\n months : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر'\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months : months,\n monthsShort : months,\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM : function (input) {\n return 'Ù…' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arMa = moment.defineLocale('ar-ma', {\n months : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù '\n }, numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months : 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort : 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM : function (input) {\n return 'Ù…' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss : '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù '\n }, numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر'\n ];\n\n var ar = moment.defineLocale('ar', {\n months : months,\n monthsShort : months,\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM : function (input) {\n return 'Ù…' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n\n var az = moment.defineLocale('az', {\n months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay : '[dünÉ™n] LT',\n lastWeek : '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s É™vvÉ™l',\n s : 'birneçə saniyÉ™',\n ss : '%d saniyÉ™',\n m : 'bir dÉ™qiqÉ™',\n mm : '%d dÉ™qiqÉ™',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM : function (input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal : function (number) {\n if (number === 0) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'меÑÑц_меÑÑцы_меÑÑцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months : {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split('_'),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split('_')\n },\n monthsShort : 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split('_'),\n weekdays : {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split('_'),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function () {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі Ñекунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'меÑÑц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM : function (input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-Ñ–' : number + '-Ñ‹';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bg = moment.defineLocale('bg', {\n months : 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort : 'Ñнр_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays : 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split('_'),\n weekdaysShort : 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay : '[Утре в] LT',\n nextWeek : 'dddd [в] LT',\n lastDay : '[Вчера в] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Ð’ изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Ð’ изминалиÑ] dddd [в] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Ñлед %s',\n past : 'преди %s',\n s : 'нÑколко Ñекунди',\n ss : '%d Ñекунди',\n m : 'минута',\n mm : '%d минути',\n h : 'чаÑ',\n hh : '%d чаÑа',\n d : 'ден',\n dd : '%d дни',\n M : 'меÑец',\n MM : '%d меÑеца',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bm = moment.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays : 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lÉ›rÉ›] LT',\n nextDay : '[Sini lÉ›rÉ›] LT',\n nextWeek : 'dddd [don lÉ›rÉ›] LT',\n lastDay : '[Kunu lÉ›rÉ›] LT',\n lastWeek : 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kÉ”nÉ”',\n past : 'a bÉ› %s bÉ”',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lÉ›rÉ› kelen',\n hh : 'lÉ›rÉ› %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': 'à§',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n var bn = moment.defineLocale('bn', {\n months : 'জানà§à§Ÿà¦¾à¦°à§€_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split('_'),\n monthsShort : 'জানà§_ফেব_মারà§à¦š_à¦à¦ªà§à¦°_মে_জà§à¦¨_জà§à¦²_আগ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split('_'),\n weekdays : 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'),\n weekdaysShort : 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin : 'রবি_সোম_মঙà§à¦—_বà§à¦§_বৃহঃ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat : {\n LT : 'A h:mm সময়',\n LTS : 'A h:mm:ss সময়',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm সময়',\n LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar : {\n sameDay : '[আজ] LT',\n nextDay : '[আগামীকাল] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[গতকাল] LT',\n lastWeek : '[গত] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s পরে',\n past : '%s আগে',\n s : 'কয়েক সেকেনà§à¦¡',\n ss : '%d সেকেনà§à¦¡',\n m : 'à¦à¦• মিনিট',\n mm : '%d মিনিট',\n h : 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh : '%d ঘনà§à¦Ÿà¦¾',\n d : 'à¦à¦• দিন',\n dd : '%d দিন',\n M : 'à¦à¦• মাস',\n MM : '%d মাস',\n y : 'à¦à¦• বছর',\n yy : '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) ||\n meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n var bo = moment.defineLocale('bo', {\n months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[དི་རིང] LT',\n nextDay : '[སང་ཉིན] LT',\n nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay : '[à½à¼‹à½¦à½„] LT',\n lastWeek : '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ལ་',\n past : '%s སྔན་ལ',\n s : 'ལམ་སང',\n ss : '%d སà¾à½¢à¼‹à½†à¼',\n m : 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm : '%d སà¾à½¢à¼‹à½˜',\n h : 'ཆུ་ཚོད་གཅིག',\n hh : '%d ཆུ་ཚོད',\n d : 'ཉིན་གཅིག',\n dd : '%d ཉིན་',\n M : 'ཟླ་བ་གཅིག',\n MM : '%d ཟླ་བ',\n y : 'ལོ་གཅིག',\n yy : '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n 'mm': 'munutenn',\n 'MM': 'miz',\n 'dd': 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var br = moment.defineLocale('br', {\n months : 'Genver_C\\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort : 'Gen_C\\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays : 'Sul_Lun_Meurzh_Merc\\'her_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h[e]mm A',\n LTS : 'h[e]mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [a viz] MMMM YYYY',\n LLL : 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'\n },\n calendar : {\n sameDay : '[Hiziv da] LT',\n nextDay : '[Warc\\'hoazh da] LT',\n nextWeek : 'dddd [da] LT',\n lastDay : '[Dec\\'h da] LT',\n lastWeek : 'dddd [paset da] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'a-benn %s',\n past : '%s \\'zo',\n s : 'un nebeud segondennoù',\n ss : '%d eilenn',\n m : 'ur vunutenn',\n mm : relativeTimeWithMutation,\n h : 'un eur',\n hh : '%d eur',\n d : 'un devezh',\n dd : relativeTimeWithMutation,\n M : 'ur miz',\n MM : relativeTimeWithMutation,\n y : 'ur bloaz',\n yy : specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal : function (number) {\n var output = (number === 1) ? 'añ' : 'vet';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ca = moment.defineLocale('ca', {\n months : {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: 'de gener_de febrer_de març_d\\'abril_de maig_de juny_de juliol_d\\'agost_de setembre_d\\'octubre_de novembre_de desembre'.split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [de] YYYY',\n ll : 'D MMM YYYY',\n LLL : 'D MMMM [de] YYYY [a les] H:mm',\n lll : 'D MMM YYYY, H:mm',\n LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll : 'ddd D MMM YYYY, H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextDay : function () {\n return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastDay : function () {\n return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'd\\'aquà %s',\n past : 'fa %s',\n s : 'uns segons',\n ss : '%d segons',\n m : 'un minut',\n mm : '%d minuts',\n h : 'una hora',\n hh : '%d hores',\n d : 'un dia',\n dd : '%d dies',\n M : 'un mes',\n MM : '%d mesos',\n y : 'un any',\n yy : '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal : function (number, period) {\n var output = (number === 1) ? 'r' :\n (number === 2) ? 'n' :\n (number === 3) ? 'r' :\n (number === 4) ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_');\n\n var monthsParse = [/^led/i, /^úno/i, /^bÅ™e/i, /^dub/i, /^kvÄ›/i, /^(Ävn|Äerven$|Äervna)/i, /^(Ävc|Äervenec|Äervence)/i, /^srp/i, /^zář/i, /^Å™Ãj/i, /^lis/i, /^pro/i];\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n var monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n\n function plural(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months : months,\n monthsShort : monthsShort,\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex : /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex : /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort : 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin : 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm',\n l : 'D. M. YYYY'\n },\n calendar : {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅ™edu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅ™edu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pÅ™ed %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse : /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cv = moment.defineLocale('cv', {\n months : 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /Ñехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каÑлла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр Ñехет',\n hh : '%d Ñехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var da = moment.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'pÃ¥ dddd [kl.] LT',\n lastDay : '[i gÃ¥r kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'fÃ¥ sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en mÃ¥ned',\n MM : '%d mÃ¥neder',\n y : 'et Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©',\n 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©',\n 'Þ‰Þ§ÞƒÞ¨Þ—Þª',\n 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª',\n 'Þ‰Þ',\n 'Þ–Þ«Þ‚Þ°',\n 'Þ–ÞªÞÞ¦Þ‡Þ¨',\n 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª',\n 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª',\n 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª'\n ], weekdays = [\n 'އާދިއްތަ',\n 'Þ€Þ¯Þ‰Þ¦',\n 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦',\n 'Þ„ÞªÞ‹Þ¦',\n 'Þ„ÞªÞƒÞ§Þްފަތި',\n 'Þ€ÞªÞ†ÞªÞƒÞª',\n 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª'\n ];\n\n var dv = moment.defineLocale('dv', {\n months : months,\n monthsShort : months,\n weekdays : weekdays,\n weekdaysShort : weekdays,\n weekdaysMin : 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat : {\n\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/M/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM : function (input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar : {\n sameDay : '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay : '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek : '[ފާއިތުވި] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past : 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s : 'Þިކުންތުކޮޅެއް',\n ss : 'd% Þިކުންތު',\n m : 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm : 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h : 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh : 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d : 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd : 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M : 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM : 'Þ‰Þ¦ÞÞ° %d',\n y : 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy : 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 7, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl : 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split('_'),\n monthsGenitiveEl : 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split('_'),\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort : 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays : 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split('_'),\n weekdaysShort : 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin : 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM : function (input) {\n return ((input + '').toLowerCase()[0] === 'μ');\n },\n meridiemParse : /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl : {\n sameDay : '[ΣήμεÏα {}] LT',\n nextDay : '[ΑÏÏιο {}] LT',\n nextWeek : 'dddd [{}] LT',\n lastDay : '[Χθες {}] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse : 'L'\n },\n calendar : function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));\n },\n relativeTime : {\n future : 'σε %s',\n past : '%s Ï€Ïιν',\n s : 'λίγα δευτεÏόλεπτα',\n ss : '%d δευτεÏόλεπτα',\n m : 'Îνα λεπτό',\n mm : '%d λεπτά',\n h : 'μία ÏŽÏα',\n hh : '%d ÏŽÏες',\n d : 'μία μÎÏα',\n dd : '%d μÎÏες',\n M : 'Îνας μήνας',\n MM : '%d μήνες',\n y : 'Îνας χÏόνος',\n yy : '%d χÏόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enSG = moment.defineLocale('en-SG', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enSG;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enAu = moment.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enCa = moment.defineLocale('en-ca', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'YYYY-MM-DD',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enGb = moment.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIe = moment.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIl = moment.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enNz = moment.defineLocale('en-nz', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eo = moment.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aÅg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar : {\n sameDay : '[HodiaÅ je] LT',\n nextDay : '[MorgaÅ je] LT',\n nextWeek : 'dddd [je] LT',\n lastDay : '[HieraÅ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaÅ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'MM/DD/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex : /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm' : ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h' : ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd' : ['ühe päeva', 'üks päev'],\n 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y' : ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Täna,] LT',\n nextDay : '[Homme,] LT',\n nextWeek : '[Järgmine] dddd LT',\n lastDay : '[Eile,] LT',\n lastWeek : '[Eelmine] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : '%d päeva',\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eu = moment.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Û±',\n '2': 'Û²',\n '3': 'Û³',\n '4': 'Û´',\n '5': 'Ûµ',\n '6': 'Û¶',\n '7': 'Û·',\n '8': 'Û¸',\n '9': 'Û¹',\n '0': 'Û°'\n }, numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0'\n };\n\n var fa = moment.defineLocale('fa', {\n months : 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort : 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin : 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar : {\n sameDay : '[امروز ساعت] LT',\n nextDay : '[Ùردا ساعت] LT',\n nextWeek : 'dddd [ساعت] LT',\n lastDay : '[دیروز ساعت] LT',\n lastWeek : 'dddd [پیش] [ساعت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'در %s',\n past : '%s پیش',\n s : 'چند ثانیه',\n ss : 'ثانیه d%',\n m : 'یک دقیقه',\n mm : '%d دقیقه',\n h : 'یک ساعت',\n hh : '%d ساعت',\n d : 'یک روز',\n dd : '%d روز',\n M : 'یک ماه',\n MM : '%d ماه',\n y : 'یک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal : '%dÙ…',\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'Do MMMM[ta] YYYY',\n LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l : 'D.M.YYYY',\n ll : 'Do MMM YYYY',\n lll : 'Do MMM YYYY, [klo] HH.mm',\n llll : 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar : {\n sameDay : '[tänään] [klo] LT',\n nextDay : '[huomenna] [klo] LT',\n nextWeek : 'dddd [klo] LT',\n lastDay : '[eilen] [klo] LT',\n lastWeek : '[viime] dddd[na] [klo] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s päästä',\n past : '%s sitten',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fo = moment.defineLocale('fo', {\n months : 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[à dag kl.] LT',\n nextDay : '[à morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[à gjár kl.] LT',\n lastWeek : '[sÃðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s sÃðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minuttur',\n mm : '%d minuttir',\n h : 'ein tÃmi',\n hh : '%d tÃmar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaður',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCa = moment.defineLocale('fr-ca', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à ] LT',\n nextDay : '[Demain à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[Hier à ] LT',\n lastWeek : 'dddd [dernier à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCh = moment.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à ] LT',\n nextDay : '[Demain à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[Hier à ] LT',\n lastWeek : 'dddd [dernier à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fr = moment.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à ] LT',\n nextDay : '[Demain à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[Hier à ] LT',\n lastWeek : 'dddd [dernier à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'oer %s',\n past : '%s lyn',\n s : 'in pear sekonden',\n ss : '%d sekonden',\n m : 'ien minút',\n mm : '%d minuten',\n h : 'ien oere',\n hh : '%d oeren',\n d : 'ien dei',\n dd : '%d dagen',\n M : 'ien moanne',\n MM : '%d moannen',\n y : 'ien jier',\n yy : '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n\n var months = [\n 'Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'\n ];\n\n var monthsShort = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n\n var weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'];\n\n var weekdaysShort = ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'];\n\n var weekdaysMin = ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné aig] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃ',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Am Faoilleach', 'An Gearran', 'Am Mà rt', 'An Giblean', 'An Cèitean', 'An t-Ã’gmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dà mhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort = ['Faoi', 'Gear', 'Mà rt', 'Gibl', 'Cèit', 'Ã’gmh', 'Iuch', 'Lùn', 'Sult', 'Dà mh', 'Samh', 'Dùbh'];\n\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimà irt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months : months,\n monthsShort : monthsShort,\n monthsParseExact : true,\n weekdays : weekdays,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-mà ireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var gl = moment.defineLocale('gl', {\n months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextDay : function () {\n return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n lastDay : function () {\n return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';\n },\n lastWeek : function () {\n return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past : 'hai %s',\n s : 'uns segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'unha hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': 'à«©',\n '4': '૪',\n '5': 'à««',\n '6': '૬',\n '7': 'à«',\n '8': 'à«®',\n '9': '૯',\n '0': '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0'\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split('_'),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var he = moment.defineLocale('he', {\n months : '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split('_'),\n monthsShort : '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split('_'),\n weekdays : 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort : '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin : '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [ב]MMMM YYYY',\n LLL : 'D [ב]MMMM YYYY HH:mm',\n LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',\n l : 'D/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[×”×™×•× ×‘Ö¾]LT',\n nextDay : '[מחר ב־]LT',\n nextWeek : 'dddd [בשעה] LT',\n lastDay : '[×תמול ב־]LT',\n lastWeek : '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'בעוד %s',\n past : '×œ×¤× ×™ %s',\n s : 'מספר ×©× ×™×•×ª',\n ss : '%d ×©× ×™×•×ª',\n m : 'דקה',\n mm : '%d דקות',\n h : 'שעה',\n hh : function (number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n return number + ' שעות';\n },\n d : 'יו×',\n dd : function (number) {\n if (number === 2) {\n return 'יומיי×';\n }\n return number + ' ימי×';\n },\n M : 'חודש',\n MM : function (number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n return number + ' חודשי×';\n },\n y : '×©× ×”',\n yy : function (number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n return number + ' ×©× ×™×';\n }\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM : function (input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n }\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var hi = moment.defineLocale('hi', {\n months : 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'),\n monthsShort : 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays : 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm बजे',\n LTS : 'A h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[कल] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[कल] LT',\n lastWeek : '[पिछले] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s में',\n past : '%s पहले',\n s : 'कà¥à¤› ही कà¥à¤·à¤£',\n ss : '%d सेकंड',\n m : 'à¤à¤• मिनट',\n mm : '%d मिनट',\n h : 'à¤à¤• घंटा',\n hh : '%d घंटे',\n d : 'à¤à¤• दिन',\n dd : '%d दिन',\n M : 'à¤à¤• महीने',\n MM : '%d महीने',\n y : 'à¤à¤• वरà¥à¤·',\n yy : '%d वरà¥à¤·'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months : {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek : function () {\n return week.call(this, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek : function () {\n return week.call(this, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var hyAm = moment.defineLocale('hy-am', {\n months : {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split('_'),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split('_')\n },\n monthsShort : 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays : 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split('_'),\n weekdaysShort : 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin : 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY Õ©.',\n LLL : 'D MMMM YYYY Õ©., HH:mm',\n LLLL : 'dddd, D MMMM YYYY Õ©., HH:mm'\n },\n calendar : {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function () {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s Õ°Õ¥Õ¿Õ¸',\n past : '%s Õ¡Õ¼Õ¡Õ»',\n s : 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss : '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m : 'Ö€Õ¸ÕºÕ¥',\n mm : '%d Ö€Õ¸ÕºÕ¥',\n h : 'ÕªÕ¡Õ´',\n hh : '%d ÕªÕ¡Õ´',\n d : 'Ö…Ö€',\n dd : '%d Ö…Ö€',\n M : 'Õ¡Õ´Õ«Õ½',\n MM : '%d Õ¡Õ´Õ«Õ½',\n y : 'Õ¿Õ¡Ö€Õ«',\n yy : '%d Õ¿Õ¡Ö€Õ«'\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function (input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem : function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-Ö€Õ¤';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var id = moment.defineLocale('id', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum');\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n return result + 'mÃnútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months : 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[à dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[à gær kl.] LT',\n lastWeek : '[sÃðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s sÃðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var itCh = moment.defineLocale('it-ch', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var it = moment.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ja = moment.defineLocale('ja', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin : 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL : 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥(ddd) HH:mm'\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM : function (input) {\n return input === 'åˆå¾Œ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}æ—¥/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%så‰',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1æ—¥',\n dd : '%dæ—¥',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1å¹´',\n yy : '%då¹´'\n }\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var jv = moment.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ka = moment.defineLocale('ka', {\n months : {\n standalone: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split('_'),\n format: 'იáƒáƒœáƒ•áƒáƒ ს_თებერვáƒáƒšáƒ¡_მáƒáƒ ტს_áƒáƒžáƒ ილის_მáƒáƒ˜áƒ¡áƒ¡_ივნისს_ივლისს_áƒáƒ’ვისტს_სექტემბერს_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერს_ნáƒáƒ”მბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split('_'),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split('_'),\n isFormat: /(წინáƒ|შემდეგ)/\n },\n weekdaysShort : 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin : 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვáƒáƒš] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინáƒ] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss : '%d წáƒáƒ›áƒ˜',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'სáƒáƒáƒ—ი',\n hh : '%d სáƒáƒáƒ—ი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n\n var kk = moment.defineLocale('kk', {\n months : 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split('_'),\n monthsShort : 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays : 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split('_'),\n weekdaysShort : 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin : 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгін Ñағат] LT',\n nextDay : '[Ертең Ñағат] LT',\n nextWeek : 'dddd [Ñағат] LT',\n lastDay : '[Кеше Ñағат] LT',\n lastWeek : '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ішінде',\n past : '%s бұрын',\n s : 'бірнеше Ñекунд',\n ss : '%d Ñекунд',\n m : 'бір минут',\n mm : '%d минут',\n h : 'бір Ñағат',\n hh : '%d Ñағат',\n d : 'бір күн',\n dd : '%d күн',\n M : 'бір ай',\n MM : '%d ай',\n y : 'бір жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse : /ទី\\d{1,2}/,\n ordinal : 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': 'à³',\n '8': 'à³®',\n '9': '೯',\n '0': '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0'\n };\n\n var kn = moment.defineLocale('kn', {\n months : 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split('_'),\n monthsShort : 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays : 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split('_'),\n weekdaysShort : 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin : 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[ಇಂದà³] LT',\n nextDay : '[ನಾಳೆ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ನಿನà³à²¨à³†] LT',\n lastWeek : '[ಕೊನೆಯ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ನಂತರ',\n past : '%s ಹಿಂದೆ',\n s : 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss : '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m : 'ಒಂದೠನಿಮಿಷ',\n mm : '%d ನಿಮಿಷ',\n h : 'ಒಂದೠಗಂಟೆ',\n hh : '%d ಗಂಟೆ',\n d : 'ಒಂದೠದಿನ',\n dd : '%d ದಿನ',\n M : 'ಒಂದೠತಿಂಗಳà³',\n MM : '%d ತಿಂಗಳà³',\n y : 'ಒಂದೠವರà³à²·',\n yy : '%d ವರà³à²·'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal : function (number) {\n return number + 'ನೇ';\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ko = moment.defineLocale('ko', {\n months : '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort : '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n weekdays : 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort : 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin : 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYYë…„ MMMM Dì¼',\n LLL : 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL : 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYYë…„ MMMM Dì¼',\n lll : 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll : 'YYYYë…„ MMMM Dì¼ dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : 'ë‚´ì¼ LT',\n nextWeek : 'dddd LT',\n lastDay : 'ì–´ì œ LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s ì „',\n s : '몇 ì´ˆ',\n ss : '%dì´ˆ',\n m : '1분',\n mm : '%d분',\n h : 'í•œ 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%dì¼',\n M : 'í•œ 달',\n MM : '%d달',\n y : 'ì¼ ë…„',\n yy : '%dë…„'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n case 'M':\n return number + 'ì›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /ì˜¤ì „|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n }\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù '\n }, numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'Øوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n var ku = moment.defineLocale('ku', {\n months : months,\n monthsShort : months,\n weekdays : 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort : 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin : 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar : {\n sameDay : '[ئه‌مرۆ كاتژمێر] LT',\n nextDay : '[به‌یانی كاتژمێر] LT',\n nextWeek : 'dddd [كاتژمێر] LT',\n lastDay : '[دوێنێ كاتژمێر] LT',\n lastWeek : 'dddd [كاتژمێر] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'له‌ %s',\n past : '%s',\n s : 'چه‌ند چركه‌یه‌ك',\n ss : 'چركه‌ %d',\n m : 'یه‌ك خوله‌ك',\n mm : '%d خوله‌ك',\n h : 'یه‌ك كاتژمێر',\n hh : '%d كاتژمێر',\n d : 'یه‌ك Ú•Û†Ú˜',\n dd : '%d Ú•Û†Ú˜',\n M : 'یه‌ك مانگ',\n MM : '%d مانگ',\n y : 'یه‌ك ساڵ',\n yy : '%d ساڵ'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n\n var ky = moment.defineLocale('ky', {\n months : 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_'),\n monthsShort : 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн Ñаат] LT',\n nextDay : '[Ðртең Ñаат] LT',\n nextWeek : 'dddd [Ñаат] LT',\n lastDay : '[КечÑÑ Ñаат] LT',\n lastWeek : '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече Ñекунд',\n ss : '%d Ñекунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир Ñаат',\n hh : '%d Ñаат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10, firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime,\n mm : '%d Minutten',\n h : processRelativeTime,\n hh : '%d Stonnen',\n d : processRelativeTime,\n dd : '%d Deeg',\n M : processRelativeTime,\n MM : '%d Méint',\n y : processRelativeTime,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var lo = moment.defineLocale('lo', {\n months : 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n monthsShort : 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n weekdays : 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function (input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'àºàºµàº %s',\n past : '%sຜ່ານມາ',\n s : 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືàºàº™',\n MM : '%d ເດືàºàº™',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss' : 'sekundÄ—_sekundžių_sekundes',\n 'm' : 'minutÄ—_minutÄ—s_minutÄ™',\n 'mm': 'minutÄ—s_minuÄių_minutes',\n 'h' : 'valanda_valandos_valandÄ…',\n 'hh': 'valandos_valandų_valandas',\n 'd' : 'diena_dienos_dienÄ…',\n 'dd': 'dienos_dienų_dienas',\n 'M' : 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n 'MM': 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n 'y' : 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Å iandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[PraÄ—jusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieÅ¡ %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss': 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n 'm': 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n 'mm': 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n 'h': 'stundas_stundÄm_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundÄm_stunda_stundas'.split('_'),\n 'd': 'dienas_dienÄm_diena_dienas'.split('_'),\n 'dd': 'dienas_dienÄm_diena_dienas'.split('_'),\n 'M': 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n 'MM': 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n\n var lv = moment.defineLocale('lv', {\n months : 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Å odien pulksten] LT',\n nextDay : '[RÄ«t pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pÄ“c %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄe u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedjelje] [u] LT',\n '[proÅ¡log] [ponedjeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srijede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mjesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mk = moment.defineLocale('mk', {\n months : 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays : 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split('_'),\n weekdaysShort : 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin : 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay : '[Утре во] LT',\n nextWeek : '[Во] dddd [во] LT',\n lastDay : '[Вчера во] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'поÑле %s',\n past : 'пред %s',\n s : 'неколку Ñекунди',\n ss : '%d Ñекунди',\n m : 'минута',\n mm : '%d минути',\n h : 'чаÑ',\n hh : '%d чаÑа',\n d : 'ден',\n dd : '%d дена',\n M : 'меÑец',\n MM : '%d меÑеци',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ml = moment.defineLocale('ml', {\n months : 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split('_'),\n weekdaysShort : 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin : 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -à´¨àµ',\n LTS : 'A h:mm:ss -à´¨àµ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -à´¨àµ'\n },\n calendar : {\n sameDay : '[ഇനàµà´¨àµ] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek : '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s à´•à´´à´¿à´žàµà´žàµ',\n past : '%s à´®àµàµ»à´ªàµ',\n s : 'അൽപ നിമിഷങàµà´™àµ¾',\n ss : '%d സെകàµà´•àµ»à´¡àµ',\n m : 'ഒരൠമിനിറàµà´±àµ',\n mm : '%d മിനിറàµà´±àµ',\n h : 'ഒരൠമണികàµà´•àµ‚ർ',\n hh : '%d മണികàµà´•àµ‚ർ',\n d : 'ഒരൠദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരൠമാസം',\n MM : '%d മാസം',\n y : 'ഒരൠവർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാതàµà´°à´¿' && hour >= 4) ||\n meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' ||\n meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n }\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months : 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split('_'),\n monthsShort : '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split('_'),\n monthsParseExact : true,\n weekdays : 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort : 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin : 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY оны MMMMын D',\n LLL : 'YYYY оны MMMMын D HH:mm',\n LLLL : 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM : function (input) {\n return input === 'ҮХ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar : {\n sameDay : '[Өнөөдөр] LT',\n nextDay : '[Маргааш] LT',\n nextWeek : '[ИрÑÑ…] dddd LT',\n lastDay : '[Өчигдөр] LT',\n lastWeek : '[ӨнгөрÑөн] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s дараа',\n past : '%s өмнө',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture)\n {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's': output = 'काही सेकंद'; break;\n case 'ss': output = '%d सेकंद'; break;\n case 'm': output = 'à¤à¤• मिनिट'; break;\n case 'mm': output = '%d मिनिटे'; break;\n case 'h': output = 'à¤à¤• तास'; break;\n case 'hh': output = '%d तास'; break;\n case 'd': output = 'à¤à¤• दिवस'; break;\n case 'dd': output = '%d दिवस'; break;\n case 'M': output = 'à¤à¤• महिना'; break;\n case 'MM': output = '%d महिने'; break;\n case 'y': output = 'à¤à¤• वरà¥à¤·'; break;\n case 'yy': output = '%d वरà¥à¤·à¥‡'; break;\n }\n }\n else {\n switch (string) {\n case 's': output = 'काही सेकंदां'; break;\n case 'ss': output = '%d सेकंदां'; break;\n case 'm': output = 'à¤à¤•à¤¾ मिनिटा'; break;\n case 'mm': output = '%d मिनिटां'; break;\n case 'h': output = 'à¤à¤•à¤¾ तासा'; break;\n case 'hh': output = '%d तासां'; break;\n case 'd': output = 'à¤à¤•à¤¾ दिवसा'; break;\n case 'dd': output = '%d दिवसां'; break;\n case 'M': output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾'; break;\n case 'MM': output = '%d महिनà¥à¤¯à¤¾à¤‚'; break;\n case 'y': output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾'; break;\n case 'yy': output = '%d वरà¥à¤·à¤¾à¤‚'; break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months : 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split('_'),\n monthsParseExact : true,\n weekdays : 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm वाजता',\n LTS : 'A h:mm:ss वाजता',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm वाजता',\n LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[उदà¥à¤¯à¤¾] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रातà¥à¤°à¥€|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रातà¥à¤°à¥€') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¾à¤°à¥€') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रातà¥à¤°à¥€';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var msMy = moment.defineLocale('ms-my', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ms = moment.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mt = moment.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'Ä¡urnata',\n dd : '%d Ä¡ranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'á',\n '2': 'á‚',\n '3': 'áƒ',\n '4': 'á„',\n '5': 'á…',\n '6': 'á†',\n '7': 'á‡',\n '8': 'áˆ',\n '9': 'á‰',\n '0': 'á€'\n }, numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0'\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss : '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nb = moment.defineLocale('nb', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'noen sekunder',\n ss : '%d sekunder',\n m : 'ett minutt',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dager',\n M : 'en mÃ¥ned',\n MM : '%d mÃ¥neder',\n y : 'ett Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var ne = moment.defineLocale('ne', {\n months : 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split('_'),\n monthsShort : 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split('_'),\n monthsParseExact : true,\n weekdays : 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split('_'),\n weekdaysShort : 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin : 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'Aको h:mm बजे',\n LTS : 'Aको h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, Aको h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek : '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay : '[हिजो] LT',\n lastWeek : '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sमा',\n past : '%s अगाडि',\n s : 'केही कà¥à¤·à¤£',\n ss : '%d सेकेणà¥à¤¡',\n m : 'à¤à¤• मिनेट',\n mm : '%d मिनेट',\n h : 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh : '%d घणà¥à¤Ÿà¤¾',\n d : 'à¤à¤• दिन',\n dd : '%d दिन',\n M : 'à¤à¤• महिना',\n MM : '%d महिना',\n y : 'à¤à¤• बरà¥à¤·',\n yy : '%d बरà¥à¤·'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mÃ¥n_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_mÃ¥_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein mÃ¥nad',\n MM : '%d mÃ¥nader',\n y : 'eit Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': 'à©©',\n '4': '੪',\n '5': 'à©«',\n '6': '੬',\n '7': 'à©',\n '8': 'à©®',\n '9': '੯',\n '0': '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0'\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays : 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort : 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin : 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm ਵਜੇ',\n LTS : 'A h:mm:ss ਵਜੇ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar : {\n sameDay : '[ਅਜ] LT',\n nextDay : '[ਕਲ] LT',\n nextWeek : '[ਅਗਲਾ] dddd, LT',\n lastDay : '[ਕਲ] LT',\n lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ਵਿੱਚ',\n past : '%s ਪਿਛਲੇ',\n s : 'ਕà©à¨ ਸਕਿੰਟ',\n ss : '%d ਸਕਿੰਟ',\n m : 'ਇਕ ਮਿੰਟ',\n mm : '%d ਮਿੰਟ',\n h : 'ਇੱਕ ਘੰਟਾ',\n hh : '%d ਘੰਟੇ',\n d : 'ਇੱਕ ਦਿਨ',\n dd : '%d ਦਿਨ',\n M : 'ਇੱਕ ਮਹੀਨਾ',\n MM : '%d ਮਹੀਨੇ',\n y : 'ਇੱਕ ਸਾਲ',\n yy : '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split('_');\n function plural(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays : 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split('_'),\n weekdaysShort : 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin : 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W Å›rodÄ™ o] LT';\n\n case 6:\n return '[W sobotÄ™ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : '%s temu',\n s : 'kilka sekund',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : '1 dzieÅ„',\n dd : '%d dni',\n M : 'miesiÄ…c',\n MM : translate,\n y : 'rok',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ptBr = moment.defineLocale('pt-br', {\n months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm'\n },\n calendar : {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [à s] LT' : // Saturday + Sunday\n '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'poucos segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº'\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var pt = moment.defineLocale('pt', {\n months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [à s] LT' : // Saturday + Sunday\n '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural,\n m : 'un minut',\n mm : relativeTimeWithPlural,\n h : 'o oră',\n hh : relativeTimeWithPlural,\n d : 'o zi',\n dd : relativeTimeWithPlural,\n M : 'o lună',\n MM : relativeTimeWithPlural,\n y : 'un an',\n yy : relativeTimeWithPlural\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'чаÑ_чаÑа_чаÑов',\n 'dd': 'день_днÑ_дней',\n 'MM': 'меÑÑц_меÑÑца_меÑÑцев',\n 'yy': 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^Ñнв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йÑ]/i, /^июн/i, /^июл/i, /^авг/i, /^Ñен/i, /^окт/i, /^ноÑ/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months : {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split('_'),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_')\n },\n monthsShort : {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку ?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split('_'),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split('_')\n },\n weekdays : {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split('_'),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?\\] ?dddd/\n },\n weekdaysShort : 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin : 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n\n // Выражение, которое ÑоотвеÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., H:mm',\n LLLL : 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar : {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'через %s',\n past : '%s назад',\n s : 'неÑколько Ñекунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'чаÑ',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'меÑÑц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM : function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوري',\n 'Ùيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءÙ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n var sd = moment.defineLocale('sd', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[اڄ] LT',\n nextDay : '[سڀاڻي] LT',\n nextWeek : 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay : '[ڪالهه] LT',\n lastWeek : '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s پوء',\n past : '%s اڳ',\n s : 'چند سيڪنڊ',\n ss : '%d سيڪنڊ',\n m : 'Ù‡Úª منٽ',\n mm : '%d منٽ',\n h : 'Ù‡Úª ڪلاڪ',\n hh : '%d ڪلاڪ',\n d : 'Ù‡Úª Úينهن',\n dd : '%d Úينهن',\n M : 'Ù‡Úª مهينو',\n MM : '%d مهينا',\n y : 'Ù‡Úª سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var se = moment.defineLocale('se', {\n months : 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort : 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'),\n weekdays : 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort : 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'MMMM D. [b.] YYYY',\n LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar : {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s geažes',\n past : 'maÅ‹it %s',\n s : 'moadde sekunddat',\n ss: '%d sekunddat',\n m : 'okta minuhta',\n mm : '%d minuhtat',\n h : 'okta diimmu',\n hh : '%d diimmut',\n d : 'okta beaivi',\n dd : '%d beaivvit',\n M : 'okta mánnu',\n MM : '%d mánut',\n y : 'okta jahki',\n yy : '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months : 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split('_'),\n monthsShort : 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split('_'),\n weekdays : 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split('_'),\n weekdaysShort : 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin : 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'a h:mm',\n LTS : 'a h:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY MMMM D',\n LLL : 'YYYY MMMM D, a h:mm',\n LLLL : 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss'\n },\n calendar : {\n sameDay : '[අද] LT[ට]',\n nextDay : '[හෙට] LT[ට]',\n nextWeek : 'dddd LT[ට]',\n lastDay : '[ඊයේ] LT[ට]',\n lastWeek : '[පසුගිය] dddd LT[ට]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sකින්',\n past : '%sකට පෙර',\n s : 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss : 'à¶à¶à·Šà¶´à¶» %d',\n m : 'මිනිà¶à·Šà¶à·”à·€',\n mm : 'මිනිà¶à·Šà¶à·” %d',\n h : 'පà·à¶º',\n hh : 'පà·à¶º %d',\n d : 'දිනය',\n dd : 'දින %d',\n M : 'මà·à·ƒà¶º',\n MM : 'මà·à·ƒ %d',\n y : 'වසර',\n yy : 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal : function (number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse : /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM : function (input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n }\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months : months,\n monthsShort : monthsShort,\n weekdays : 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort : 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin : 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pred %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort : 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin : 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danes ob] LT',\n nextDay : '[jutri ob] LT',\n\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay : '[vÄeraj ob] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Äez %s',\n past : 'pred %s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sq = moment.defineLocale('sq', {\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem : function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : '%s më parë',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minutë',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [Ñреду] [у] LT';\n case 6:\n return '[у] [Ñуботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [Ñреде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [Ñуботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико Ñекунди',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'дан',\n dd : translator.translate,\n M : 'меÑец',\n MM : translator.translate,\n y : 'годину',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄe u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedelje] [u] LT',\n '[proÅ¡log] [ponedeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pre %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ss = moment.defineLocale('ss', {\n months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Namuhla nga] LT',\n nextDay : '[Kusasa nga] LT',\n nextWeek : 'dddd [nga] LT',\n lastDay : '[Itolo nga] LT',\n lastWeek : 'dddd [leliphelile] [nga] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'nga %s',\n past : 'wenteka nga %s',\n s : 'emizuzwana lomcane',\n ss : '%d mzuzwana',\n m : 'umzuzu',\n mm : '%d emizuzu',\n h : 'lihora',\n hh : '%d emahora',\n d : 'lilanga',\n dd : '%d emalanga',\n M : 'inyanga',\n MM : '%d tinyanga',\n y : 'umnyaka',\n yy : '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : '%d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'nÃ¥gra sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en mÃ¥nad',\n MM : '%d mÃ¥nader',\n y : 'ett Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sw = moment.defineLocale('sw', {\n months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[leo saa] LT',\n nextDay : '[kesho saa] LT',\n nextWeek : '[wiki ijayo] dddd [saat] LT',\n lastDay : '[jana] LT',\n lastWeek : '[wiki iliyopita] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s baadaye',\n past : 'tokea %s',\n s : 'hivi punde',\n ss : 'sekunde %d',\n m : 'dakika moja',\n mm : 'dakika %d',\n h : 'saa limoja',\n hh : 'masaa %d',\n d : 'siku moja',\n dd : 'masiku %d',\n M : 'mwezi mmoja',\n MM : 'miezi %d',\n y : 'mwaka mmoja',\n yy : 'miaka %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': 'à¯',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n var ta = moment.defineLocale('ta', {\n months : 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n monthsShort : 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n weekdays : 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split('_'),\n weekdaysShort : 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இனà¯à®±à¯] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேறà¯à®±à¯] LT',\n lastWeek : '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இலà¯',\n past : '%s à®®à¯à®©à¯',\n s : 'ஒர௠சில விநாடிகளà¯',\n ss : '%d விநாடிகளà¯',\n m : 'ஒர௠நிமிடமà¯',\n mm : '%d நிமிடஙà¯à®•à®³à¯',\n h : 'ஒர௠மணி நேரமà¯',\n hh : '%d மணி நேரமà¯',\n d : 'ஒர௠நாளà¯',\n dd : '%d நாடà¯à®•à®³à¯',\n M : 'ஒர௠மாதமà¯',\n MM : '%d மாதஙà¯à®•à®³à¯',\n y : 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy : '%d ஆணà¯à®Ÿà¯à®•à®³à¯'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal : function (number) {\n return number + 'வதà¯';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var te = moment.defineLocale('te', {\n months : 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split('_'),\n monthsShort : 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split('_'),\n weekdaysShort : 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin : 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[నేడà±] LT',\n nextDay : '[రేపà±] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[నినà±à°¨] LT',\n lastWeek : '[à°—à°¤] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s లో',\n past : '%s à°•à±à°°à°¿à°¤à°‚',\n s : 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss : '%d సెకనà±à°²à±',\n m : 'à°’à°• నిమిషం',\n mm : '%d నిమిషాలà±',\n h : 'à°’à°• à°—à°‚à°Ÿ',\n hh : '%d à°—à°‚à°Ÿà°²à±',\n d : 'à°’à°• రోజà±',\n dd : '%d రోజà±à°²à±',\n M : 'à°’à°• నెల',\n MM : '%d నెలలà±',\n y : 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy : '%d సంవతà±à°¸à°°à°¾à°²à±'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}à°µ/,\n ordinal : '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tet = moment.defineLocale('tet', {\n months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'iha %s',\n past : '%s liuba',\n s : 'minutu balun',\n ss : 'minutu %d',\n m : 'minutu ida',\n mm : 'minutu %d',\n h : 'oras ida',\n hh : 'oras %d',\n d : 'loron ida',\n dd : 'loron %d',\n M : 'fulan ida',\n MM : 'fulan %d',\n y : 'tinan ida',\n yy : 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n\n var tg = moment.defineLocale('tg', {\n months : 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_'),\n monthsShort : 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays : 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort : 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin : 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Имрӯз Ñоати] LT',\n nextDay : '[Пагоҳ Ñоати] LT',\n lastDay : '[Дирӯз Ñоати] LT',\n nextWeek : 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek : 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'баъди %s',\n past : '%s пеш',\n s : 'Ñкчанд ÑониÑ',\n m : 'Ñк дақиқа',\n mm : '%d дақиқа',\n h : 'Ñк Ñоат',\n hh : '%d Ñоат',\n d : 'Ñк рӯз',\n dd : '%d рӯз',\n M : 'Ñк моҳ',\n MM : '%d моҳ',\n y : 'Ñк Ñол',\n yy : '%d Ñол'\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var th = moment.defineLocale('th', {\n months : 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort : 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'à¸à¸µà¸ %s',\n past : '%sที่à¹à¸¥à¹‰à¸§',\n s : 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดืà¸à¸™',\n MM : '%d เดืà¸à¸™',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tlPh = moment.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'leS' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'waQ' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'nem' :\n time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'Hu’' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'wen' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'ben' :\n time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n }\n return (word === '') ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact : true,\n weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime : {\n future : translateFuture,\n past : translatePast,\n s : 'puS lup',\n ss : translate,\n m : 'wa’ tup',\n mm : translate,\n h : 'wa’ rep',\n hh : translate,\n d : 'wa’ jaj',\n dd : translate,\n M : 'wa’ jar',\n MM : translate,\n y : 'wa’ DIS',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlh;\n\n})));\n","\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM [dallas] YYYY',\n LLL : 'D. MMMM [dallas] YYYY HH.mm',\n LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM : function (input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar : {\n sameDay : '[oxhi à ] LT',\n nextDay : '[demà à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[ieiri à ] LT',\n lastWeek : '[sür el] dddd [lasteu à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'osprei %s',\n past : 'ja%s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n mÃut', '\\'iens mÃut'],\n 'mm': [number + ' mÃuts', '' + number + ' mÃuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuá¸',\n mm : '%d minuá¸',\n h : 'saÉ›a',\n hh : '%d tassaÉ›in',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzm = moment.defineLocale('tzm', {\n months : 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n monthsShort : 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n weekdays : 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past : 'ⵢⴰⵠ%s',\n s : 'ⵉⵎⵉⴽ',\n ss : '%d ⵉⵎⵉⴽ',\n m : 'ⵎⵉâµâµ“â´º',\n mm : '%d ⵎⵉâµâµ“â´º',\n h : 'ⵙⴰⵄⴰ',\n hh : '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d : 'ⴰⵙⵙ',\n dd : '%d oⵙⵙⴰâµ',\n M : 'â´°âµ¢oⵓⵔ',\n MM : '%d ⵉⵢⵢⵉⵔâµ',\n y : 'ⴰⵙⴳⴰⵙ',\n yy : '%d ⵉⵙⴳⴰⵙâµ'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzm;\n\n})));\n","//! moment.js language configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm'\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'міÑÑць_міÑÑці_міÑÑців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months : {\n 'format': 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split('_'),\n 'standalone': 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split('_')\n },\n monthsShort : 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY Ñ€.',\n LLL : 'D MMMM YYYY Ñ€., HH:mm',\n LLLL : 'dddd, D MMMM YYYY Ñ€., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька Ñекунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'міÑÑць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function (input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوری',\n 'Ùروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعÛ',\n 'ÛÙتÛ'\n ];\n\n var ur = moment.defineLocale('ur', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[آج بوقت] LT',\n nextDay : '[Ú©Ù„ بوقت] LT',\n nextWeek : 'dddd [بوقت] LT',\n lastDay : '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek : '[گذشتÛ] dddd [بوقت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s بعد',\n past : '%s قبل',\n s : 'چند سیکنڈ',\n ss : '%d سیکنڈ',\n m : 'ایک منٹ',\n mm : '%d منٹ',\n h : 'ایک گھنٹÛ',\n hh : '%d گھنٹے',\n d : 'ایک دن',\n dd : '%d دن',\n M : 'ایک ماÛ',\n MM : '%d ماÛ',\n y : 'ایک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uz = moment.defineLocale('uz', {\n months : 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_'),\n monthsShort : 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Бугун Ñоат] LT [да]',\n nextDay : '[Ðртага] LT [да]',\n nextWeek : 'dddd [куни Ñоат] LT [да]',\n lastDay : '[Кеча Ñоат] LT [да]',\n lastWeek : '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Якин %s ичида',\n past : 'Бир неча %s олдин',\n s : 'фурÑат',\n ss : '%d фурÑат',\n m : 'бир дакика',\n mm : '%d дакика',\n h : 'бир Ñоат',\n hh : '%d Ñоат',\n d : 'бир кун',\n dd : '%d кун',\n M : 'бир ой',\n MM : '%d ой',\n y : 'бир йил',\n yy : '%d йил'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var vi = moment.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (input) {\n return /^ch$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tá»›i',\n past : '%s trÆ°á»›c',\n s : 'và i giây',\n ss : '%d giây' ,\n m : 'má»™t phút',\n mm : '%d phút',\n h : 'má»™t giá»',\n hh : '%d giá»',\n d : 'má»™t ngà y',\n dd : '%d ngà y',\n M : 'má»™t tháng',\n MM : '%d tháng',\n y : 'má»™t năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort : 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact : true,\n weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[T~ódá~ý át] LT',\n nextDay : '[T~ómó~rró~w át] LT',\n nextWeek : 'dddd [át] LT',\n lastDay : '[Ã~ést~érdá~ý át] LT',\n lastWeek : '[L~ást] dddd [át] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Ã~ñ %s',\n past : '%s á~gó',\n s : 'á ~féw ~sécó~ñds',\n ss : '%d s~écóñ~ds',\n m : 'á ~mÃñ~úté',\n mm : '%d m~Ãñú~tés',\n h : 'á~ñ hó~úr',\n hh : '%d h~óúrs',\n d : 'á ~dáý',\n dd : '%d d~áýs',\n M : 'á ~móñ~th',\n MM : '%d m~óñt~hs',\n y : 'á ~ýéár',\n yy : '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var yo = moment.defineLocale('yo', {\n months : 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split('_'),\n monthsShort : 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays : 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort : 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin : 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[OÌ€niÌ€ ni] LT',\n nextDay : '[Ọ̀la ni] LT',\n nextWeek : 'dddd [Ọsẹ̀ toÌn\\'bá»] [ni] LT',\n lastDay : '[AÌ€na ni] LT',\n lastWeek : 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'niÌ %s',\n past : '%s ká»jaÌ',\n s : 'iÌ€sẹjuÌ aayaÌ die',\n ss :'aayaÌ %d',\n m : 'iÌ€sẹjuÌ kan',\n mm : 'iÌ€sẹjuÌ %d',\n h : 'waÌkati kan',\n hh : 'waÌkati %d',\n d : 'á»já»Ì kan',\n dd : 'á»já»Ì %d',\n M : 'osuÌ€ kan',\n MM : 'osuÌ€ %d',\n y : 'á»duÌn kan',\n yy : 'á»duÌn %d'\n },\n dayOfMonthOrdinalParse : /á»já»Ì\\s\\d{1,2}/,\n ordinal : 'á»já»Ì %d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhCn = moment.defineLocale('zh-cn', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort : '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin : 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL : 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l : 'YYYY/M/D',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s内',\n past : '%så‰',\n s : 'å‡ ç§’',\n ss : '%d 秒',\n m : '1 分钟',\n mm : '%d 分钟',\n h : '1 å°æ—¶',\n hh : '%d å°æ—¶',\n d : '1 天',\n dd : '%d 天',\n M : '1 个月',\n MM : '%d 个月',\n y : '1 å¹´',\n yy : '%d å¹´'\n },\n week : {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhHk = moment.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin : 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL : 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + 'æ—¥';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%så…§',\n past : '%så‰',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分é˜',\n mm : '%d 分é˜',\n h : '1 å°æ™‚',\n hh : '%d å°æ™‚',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 å¹´',\n yy : '%d å¹´'\n }\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhTw = moment.defineLocale('zh-tw', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin : 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL : 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天] LT',\n nextDay : '[明天] LT',\n nextWeek : '[下]dddd LT',\n lastDay : '[昨天] LT',\n lastWeek : '[上]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + 'æ—¥';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%så…§',\n past : '%så‰',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分é˜',\n mm : '%d 分é˜',\n h : '1 å°æ™‚',\n hh : '%d å°æ™‚',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 å¹´',\n yy : '%d å¹´'\n }\n });\n\n return zhTw;\n\n})));\n","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","export var DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0,\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1,\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2,\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3,\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4,\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5,\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6,\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7,\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8,\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9,\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10,\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11,\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12,\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","import { mergeStyles } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var getClassNames = memoizeFunction(function (styles, className, activityPersonas, isCompact) {\n return {\n root: mergeStyles('ms-ActivityItem', className, styles.root, isCompact && styles.isCompactRoot),\n pulsingBeacon: mergeStyles('ms-ActivityItem-pulsingBeacon', styles.pulsingBeacon),\n personaContainer: mergeStyles('ms-ActivityItem-personaContainer', styles.personaContainer, isCompact && styles.isCompactPersonaContainer),\n activityPersona: mergeStyles('ms-ActivityItem-activityPersona', styles.activityPersona, isCompact && styles.isCompactPersona, !isCompact && activityPersonas && activityPersonas.length === 2 && styles.doublePersona),\n activityTypeIcon: mergeStyles('ms-ActivityItem-activityTypeIcon', styles.activityTypeIcon, isCompact && styles.isCompactIcon),\n activityContent: mergeStyles('ms-ActivityItem-activityContent', styles.activityContent, isCompact && styles.isCompactContent),\n activityText: mergeStyles('ms-ActivityItem-activityText', styles.activityText),\n commentText: mergeStyles('ms-ActivityItem-commentText', styles.commentText),\n timeStamp: mergeStyles('ms-ActivityItem-timeStamp', styles.timeStamp, isCompact && styles.isCompactTimeStamp),\n };\n});\n//# sourceMappingURL=ActivityItem.classNames.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './ActivityItem.classNames';\nimport { getStyles } from './ActivityItem.styles';\nimport { PersonaSize, PersonaCoin } from '../../Persona';\n/**\n * {@docCategory ActivityItem}\n */\nvar ActivityItem = /** @class */ (function (_super) {\n __extends(ActivityItem, _super);\n function ActivityItem(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderIcon = function (props) {\n if (props.activityPersonas) {\n return _this._onRenderPersonaArray(props);\n }\n else {\n return _this.props.activityIcon;\n }\n };\n _this._onRenderActivityDescription = function (props) {\n var classNames = _this._getClassNames(props);\n // eslint-disable-next-line deprecation/deprecation\n var activityDescription = props.activityDescription || props.activityDescriptionText;\n if (activityDescription) {\n return React.createElement(\"span\", { className: classNames.activityText }, activityDescription);\n }\n return null;\n };\n _this._onRenderComments = function (props) {\n var classNames = _this._getClassNames(props);\n // eslint-disable-next-line deprecation/deprecation\n var comments = props.comments || props.commentText;\n if (!props.isCompact && comments) {\n return React.createElement(\"div\", { className: classNames.commentText }, comments);\n }\n return null;\n };\n _this._onRenderTimeStamp = function (props) {\n var classNames = _this._getClassNames(props);\n if (!props.isCompact && props.timeStamp) {\n return React.createElement(\"div\", { className: classNames.timeStamp }, props.timeStamp);\n }\n return null;\n };\n // If activityPersonas is an array of persona props, build the persona cluster element.\n _this._onRenderPersonaArray = function (props) {\n var classNames = _this._getClassNames(props);\n var personaElement = null;\n var activityPersonas = props.activityPersonas;\n if (activityPersonas[0].imageUrl || activityPersonas[0].imageInitials) {\n var personaList_1 = [];\n var showSize16Personas_1 = activityPersonas.length > 1 || props.isCompact;\n var personaLimit_1 = props.isCompact ? 3 : 4;\n var style_1 = undefined;\n if (props.isCompact) {\n style_1 = {\n display: 'inline-block',\n width: '10px',\n minWidth: '10px',\n overflow: 'visible',\n };\n }\n activityPersonas\n .filter(function (person, index) { return index < personaLimit_1; })\n .forEach(function (person, index) {\n personaList_1.push(React.createElement(PersonaCoin, __assign({}, person, { key: person.key || index, className: classNames.activityPersona, \n // eslint-disable-next-line deprecation/deprecation\n size: showSize16Personas_1 ? PersonaSize.size16 : PersonaSize.size32, style: style_1 })));\n });\n personaElement = React.createElement(\"div\", { className: classNames.personaContainer }, personaList_1);\n }\n return personaElement;\n };\n return _this;\n }\n ActivityItem.prototype.render = function () {\n var _a = this.props, _b = _a.onRenderIcon, onRenderIcon = _b === void 0 ? this._onRenderIcon : _b, _c = _a.onRenderActivityDescription, onRenderActivityDescription = _c === void 0 ? this._onRenderActivityDescription : _c, _d = _a.onRenderComments, onRenderComments = _d === void 0 ? this._onRenderComments : _d, _e = _a.onRenderTimeStamp, onRenderTimeStamp = _e === void 0 ? this._onRenderTimeStamp : _e, animateBeaconSignal = _a.animateBeaconSignal, isCompact = _a.isCompact;\n var classNames = this._getClassNames(this.props);\n return (React.createElement(\"div\", { className: classNames.root, style: this.props.style },\n (this.props.activityPersonas || this.props.activityIcon || this.props.onRenderIcon) && (React.createElement(\"div\", { className: classNames.activityTypeIcon },\n animateBeaconSignal && isCompact && React.createElement(\"div\", { className: classNames.pulsingBeacon }),\n onRenderIcon(this.props))),\n React.createElement(\"div\", { className: classNames.activityContent },\n onRenderActivityDescription(this.props, this._onRenderActivityDescription),\n onRenderComments(this.props, this._onRenderComments),\n onRenderTimeStamp(this.props, this._onRenderTimeStamp))));\n };\n ActivityItem.prototype._getClassNames = function (props) {\n return getClassNames(getStyles(undefined, props.styles, props.animateBeaconSignal, props.beaconColorOne, props.beaconColorTwo, props.isCompact), props.className, props.activityPersonas, props.isCompact);\n };\n return ActivityItem;\n}(React.Component));\nexport { ActivityItem };\n//# sourceMappingURL=ActivityItem.js.map","import { concatStyleSets, getTheme, HighContrastSelector, keyframes, PulsingBeaconAnimationStyles, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar DEFAULT_PERSONA_SIZE = '32px';\nvar COMPACT_PERSONA_SIZE = '16px';\nvar DEFAULT_ICON_SIZE = '16px';\nvar COMPACT_ICON_SIZE = '13px';\nvar ANIMATION_INNER_DIMENSION = '4px';\nvar ANIMATION_OUTER_DIMENSION = '28px';\nvar ANIMATION_BORDER_WIDTH = '4px';\nvar fadeIn = memoizeFunction(function () {\n return keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n });\n});\nvar slideIn = memoizeFunction(function () {\n return keyframes({\n from: { transform: 'translateX(-10px)' },\n to: { transform: 'translateX(0)' },\n });\n});\nexport var getStyles = memoizeFunction(function (theme, customStyles, animateBeaconSignal, beaconColorOne, beaconColorTwo, isCompact) {\n var _a;\n if (theme === void 0) { theme = getTheme(); }\n var continuousPulse = PulsingBeaconAnimationStyles.continuousPulseAnimationSingle(beaconColorOne ? beaconColorOne : theme.palette.themePrimary, beaconColorTwo ? beaconColorTwo : theme.palette.themeTertiary, ANIMATION_INNER_DIMENSION, ANIMATION_OUTER_DIMENSION, ANIMATION_BORDER_WIDTH);\n var continuousPulseAnimation = {\n animationName: continuousPulse,\n animationIterationCount: '1',\n animationDuration: '.8s',\n zIndex: 1,\n };\n var slideInAnimation = {\n animationName: slideIn(),\n animationIterationCount: '1',\n animationDuration: '.5s',\n };\n var fadeInAnimation = {\n animationName: fadeIn(),\n animationIterationCount: '1',\n animationDuration: '.5s',\n };\n var ActivityItemStyles = {\n root: [\n theme.fonts.small,\n {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n color: theme.palette.neutralSecondary,\n },\n isCompact && animateBeaconSignal && fadeInAnimation,\n ],\n pulsingBeacon: [\n {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '0px',\n height: '0px',\n borderRadius: '225px',\n borderStyle: 'solid',\n opacity: 0,\n },\n isCompact && animateBeaconSignal && continuousPulseAnimation,\n ],\n isCompactRoot: {\n alignItems: 'center',\n },\n personaContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n minWidth: DEFAULT_PERSONA_SIZE,\n width: DEFAULT_PERSONA_SIZE,\n height: DEFAULT_PERSONA_SIZE,\n },\n isCompactPersonaContainer: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n flexBasis: 'auto',\n height: COMPACT_PERSONA_SIZE,\n width: 'auto',\n minWidth: '0',\n paddingRight: '6px',\n },\n activityTypeIcon: {\n height: DEFAULT_PERSONA_SIZE,\n fontSize: DEFAULT_ICON_SIZE,\n lineHeight: DEFAULT_ICON_SIZE,\n marginTop: '3px',\n },\n isCompactIcon: {\n height: COMPACT_PERSONA_SIZE,\n minWidth: COMPACT_PERSONA_SIZE,\n fontSize: COMPACT_ICON_SIZE,\n lineHeight: COMPACT_ICON_SIZE,\n color: theme.palette.themePrimary,\n marginTop: '1px',\n position: 'relative',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n selectors: {\n '.ms-Persona-imageArea': {\n margin: '-2px 0 0 -2px',\n border: '2px solid' + theme.palette.white,\n borderRadius: '50%',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 'none',\n margin: '0',\n },\n _a),\n },\n },\n },\n activityPersona: {\n display: 'block',\n },\n doublePersona: {\n selectors: {\n ':first-child': {\n alignSelf: 'flex-end',\n },\n },\n },\n isCompactPersona: {\n display: 'inline-block',\n width: '8px',\n minWidth: '8px',\n overflow: 'visible',\n },\n activityContent: [\n {\n padding: '0 8px',\n },\n isCompact && animateBeaconSignal && slideInAnimation,\n ],\n activityText: {\n display: 'inline',\n },\n isCompactContent: {\n flex: '1',\n padding: '0 4px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflowX: 'hidden',\n },\n commentText: {\n color: theme.palette.neutralPrimary,\n },\n timeStamp: [\n theme.fonts.tiny,\n {\n fontWeight: 400,\n color: theme.palette.neutralSecondary,\n },\n ],\n isCompactTimeStamp: {\n display: 'inline-block',\n paddingLeft: '0.3em',\n fontSize: '1em',\n },\n };\n return concatStyleSets(ActivityItemStyles, customStyles);\n});\n//# sourceMappingURL=ActivityItem.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Announced}\n */\nvar AnnouncedBase = /** @class */ (function (_super) {\n __extends(AnnouncedBase, _super);\n function AnnouncedBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnnouncedBase.prototype.render = function () {\n var _a = this.props, message = _a.message, styles = _a.styles, _b = _a.as, Root = _b === void 0 ? 'div' : _b, className = _a.className;\n var classNames = getClassNames(styles, { className: className });\n return (React.createElement(Root, __assign({ role: \"status\", className: classNames.root }, getNativeProps(this.props, divProperties, ['className'])),\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, message))));\n };\n AnnouncedBase.defaultProps = {\n 'aria-live': 'polite',\n };\n return AnnouncedBase;\n}(React.Component));\nexport { AnnouncedBase };\n//# sourceMappingURL=Announced.base.js.map","import { styled } from '../../Utilities';\nimport { AnnouncedBase } from './Announced.base';\nimport { getStyles } from './Announced.styles';\nexport var Announced = styled(AnnouncedBase, getStyles);\n//# sourceMappingURL=Announced.js.map","import { hiddenContentStyle } from '../../Styling';\nexport var getStyles = function (props) {\n return {\n root: props.className,\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Announced.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, getNativeProps, inputProperties, isIE11, Async, initializeComponentRef } from '../../Utilities';\nvar SELECTION_FORWARD = 'forward';\nvar SELECTION_BACKWARD = 'backward';\n/**\n * {@docCategory Autofill}\n */\nvar Autofill = /** @class */ (function (_super) {\n __extends(Autofill, _super);\n function Autofill(props) {\n var _this = _super.call(this, props) || this;\n _this._inputElement = React.createRef();\n _this._autoFillEnabled = true;\n _this._isComposing = false;\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and langauges like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionStart = function (ev) {\n _this._isComposing = true;\n _this._autoFillEnabled = false;\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionUpdate = function () {\n if (isIE11()) {\n _this._updateValue(_this._getCurrentInputValue(), true);\n }\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and langauges like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionEnd = function (ev) {\n var inputValue = _this._getCurrentInputValue();\n _this._tryEnableAutofill(inputValue, _this.value, false, true);\n _this._isComposing = false;\n // Due to timing, this needs to be async, otherwise no text will be selected.\n _this._async.setTimeout(function () {\n // it's technically possible that the value of _isComposing is reset during this timeout,\n // so explicitly trigger this with composing=true here, since it is supposed to be the\n // update for composition end\n _this._updateValue(_this._getCurrentInputValue(), false);\n }, 0);\n };\n _this._onClick = function () {\n if (_this._value && _this._value !== '' && _this._autoFillEnabled) {\n _this._autoFillEnabled = false;\n }\n };\n _this._onKeyDown = function (ev) {\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the event is actively being composed, then don't alert autofill.\n // Right now typing does not have isComposing, once that has been fixed any should be removed.\n if (!ev.nativeEvent.isComposing) {\n switch (ev.which) {\n case KeyCodes.backspace:\n _this._autoFillEnabled = false;\n break;\n case KeyCodes.left:\n case KeyCodes.right:\n if (_this._autoFillEnabled) {\n _this._value = _this.state.displayValue;\n _this._autoFillEnabled = false;\n }\n break;\n default:\n if (!_this._autoFillEnabled) {\n if (_this.props.enableAutofillOnKeyPress.indexOf(ev.which) !== -1) {\n _this._autoFillEnabled = true;\n }\n }\n break;\n }\n }\n };\n _this._onInputChanged = function (ev) {\n var value = _this._getCurrentInputValue(ev);\n if (!_this._isComposing) {\n _this._tryEnableAutofill(value, _this._value, ev.nativeEvent.isComposing);\n }\n // If it is not IE11 and currently composing, update the value\n if (!(isIE11() && _this._isComposing)) {\n var nativeEventComposing = ev.nativeEvent.isComposing;\n var isComposing = nativeEventComposing === undefined ? _this._isComposing : nativeEventComposing;\n _this._updateValue(value, isComposing);\n }\n };\n _this._onChanged = function () {\n // Swallow this event, we don't care about it\n // We must provide it because React PropTypes marks it as required, but onInput serves the correct purpose\n return;\n };\n /**\n * Updates the current input value as well as getting a new display value.\n * @param newValue - The new value from the input\n */\n _this._updateValue = function (newValue, composing) {\n // Only proceed if the value is nonempty and is different from the old value\n // This is to work around the fact that, in IE 11, inputs with a placeholder fire an onInput event on focus\n if (!newValue && newValue === _this._value) {\n return;\n }\n _this._value = _this.props.onInputChange ? _this.props.onInputChange(newValue, composing) : newValue;\n _this.setState({\n displayValue: _this._getDisplayValue(_this._value, _this.props.suggestedDisplayValue),\n }, function () { return _this._notifyInputChange(_this._value, composing); });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._value = props.defaultVisibleValue || '';\n _this.state = {\n displayValue: props.defaultVisibleValue || '',\n };\n return _this;\n }\n Object.defineProperty(Autofill.prototype, \"cursorLocation\", {\n get: function () {\n if (this._inputElement.current) {\n var inputElement = this._inputElement.current;\n if (inputElement.selectionDirection !== SELECTION_FORWARD) {\n return inputElement.selectionEnd;\n }\n else {\n return inputElement.selectionStart;\n }\n }\n else {\n return -1;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"isValueSelected\", {\n get: function () {\n return Boolean(this.inputElement && this.inputElement.selectionStart !== this.inputElement.selectionEnd);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionStart\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionStart : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionEnd\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionEnd : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement.current;\n },\n enumerable: true,\n configurable: true\n });\n Autofill.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n if (this.props.updateValueInWillReceiveProps) {\n var updatedInputValue = this.props.updateValueInWillReceiveProps();\n // Don't update if we have a null value or the value isn't changing\n // the value should still update if an empty string is passed in\n if (updatedInputValue !== null && updatedInputValue !== this._value) {\n this._value = updatedInputValue;\n }\n }\n var newDisplayValue = this._getDisplayValue(this._value, nextProps.suggestedDisplayValue);\n if (typeof newDisplayValue === 'string') {\n this.setState({ displayValue: newDisplayValue });\n }\n };\n Autofill.prototype.componentDidUpdate = function () {\n var value = this._value;\n var _a = this.props, suggestedDisplayValue = _a.suggestedDisplayValue, shouldSelectFullInputValueInComponentDidUpdate = _a.shouldSelectFullInputValueInComponentDidUpdate, preventValueSelection = _a.preventValueSelection;\n var differenceIndex = 0;\n if (preventValueSelection) {\n return;\n }\n var isFocused = this._inputElement.current && this._inputElement.current === document.activeElement;\n if (isFocused &&\n this._autoFillEnabled &&\n value &&\n suggestedDisplayValue &&\n this._doesTextStartWith(suggestedDisplayValue, value)) {\n var shouldSelectFullRange = false;\n if (shouldSelectFullInputValueInComponentDidUpdate) {\n shouldSelectFullRange = shouldSelectFullInputValueInComponentDidUpdate();\n }\n if (shouldSelectFullRange) {\n this._inputElement.current.setSelectionRange(0, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n else {\n while (differenceIndex < value.length &&\n value[differenceIndex].toLocaleLowerCase() === suggestedDisplayValue[differenceIndex].toLocaleLowerCase()) {\n differenceIndex++;\n }\n if (differenceIndex > 0) {\n this._inputElement.current.setSelectionRange(differenceIndex, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n }\n }\n };\n Autofill.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n Autofill.prototype.render = function () {\n var displayValue = this.state.displayValue;\n var nativeProps = getNativeProps(this.props, inputProperties);\n return (React.createElement(\"input\", __assign({ autoCapitalize: \"off\", autoComplete: \"off\", \"aria-autocomplete\": 'both' }, nativeProps, { ref: this._inputElement, value: displayValue, onCompositionStart: this._onCompositionStart, onCompositionUpdate: this._onCompositionUpdate, onCompositionEnd: this._onCompositionEnd, \n // TODO (Fabric 8?) - switch to calling only onChange. See notes in TextField._onInputChange.\n onChange: this._onChanged, onInput: this._onInputChanged, onKeyDown: this._onKeyDown, onClick: this.props.onClick ? this.props.onClick : this._onClick, \"data-lpignore\": true })));\n };\n Autofill.prototype.focus = function () {\n this._inputElement.current && this._inputElement.current.focus();\n };\n Autofill.prototype.clear = function () {\n this._autoFillEnabled = true;\n this._updateValue('', false);\n this._inputElement.current && this._inputElement.current.setSelectionRange(0, 0);\n };\n Autofill.prototype._getCurrentInputValue = function (ev) {\n if (ev && ev.target && ev.target.value) {\n return ev.target.value;\n }\n else if (this.inputElement && this.inputElement.value) {\n return this.inputElement.value;\n }\n else {\n return '';\n }\n };\n /**\n * Attempts to enable autofill. Whether or not autofill is enabled depends on the input value,\n * whether or not any text is selected, and only if the new input value is longer than the old input value.\n * Autofill should never be set to true if the value is composing. Once compositionEnd is called, then\n * it should be completed.\n * See https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent for more information on composition.\n * @param newValue - new input value\n * @param oldValue - old input value\n * @param isComposing - if true then the text is actively being composed and it has not completed.\n * @param isComposed - if the text is a composed text value.\n */\n Autofill.prototype._tryEnableAutofill = function (newValue, oldValue, isComposing, isComposed) {\n if (!isComposing &&\n newValue &&\n this._inputElement.current &&\n this._inputElement.current.selectionStart === newValue.length &&\n !this._autoFillEnabled &&\n (newValue.length > oldValue.length || isComposed)) {\n this._autoFillEnabled = true;\n }\n };\n Autofill.prototype._notifyInputChange = function (newValue, composing) {\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(newValue, composing);\n }\n };\n /**\n * Returns a string that should be used as the display value.\n * It evaluates this based on whether or not the suggested value starts with the input value\n * and whether or not autofill is enabled.\n * @param inputValue - the value that the input currently has.\n * @param suggestedDisplayValue - the possible full value\n */\n Autofill.prototype._getDisplayValue = function (inputValue, suggestedDisplayValue) {\n var displayValue = inputValue;\n if (suggestedDisplayValue &&\n inputValue &&\n this._doesTextStartWith(suggestedDisplayValue, displayValue) &&\n this._autoFillEnabled) {\n displayValue = suggestedDisplayValue;\n }\n return displayValue;\n };\n Autofill.prototype._doesTextStartWith = function (text, startWith) {\n if (!text || !startWith) {\n return false;\n }\n return text.toLocaleLowerCase().indexOf(startWith.toLocaleLowerCase()) === 0;\n };\n Autofill.defaultProps = {\n enableAutofillOnKeyPress: [KeyCodes.down, KeyCodes.up],\n };\n return Autofill;\n}(React.Component));\nexport { Autofill };\n/**\n * @deprecated do not use.\n * {@docCategory Autofill}\n */\nvar BaseAutoFill = /** @class */ (function (_super) {\n __extends(BaseAutoFill, _super);\n function BaseAutoFill() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BaseAutoFill;\n}(Autofill));\nexport { BaseAutoFill };\n//# sourceMappingURL=Autofill.js.map","import { __assign, __extends, __rest, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, getRTL, classNamesFunction, getNativeProps, htmlElementProperties, } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Link } from '../../Link';\nimport { Icon } from '../../Icon';\nimport { IconButton } from '../../Button';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { composeRenderFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OVERFLOW_KEY = 'overflow';\nvar nullFunction = function () { return null; };\nvar nonActionableItemProps = {\n styles: function (props) {\n var theme = props.theme;\n return {\n root: {\n selectors: {\n '&.is-disabled': {\n color: theme.semanticColors.bodyText,\n },\n },\n },\n };\n },\n};\n/**\n * {@docCategory Breadcrumb}\n */\nvar BreadcrumbBase = /** @class */ (function (_super) {\n __extends(BreadcrumbBase, _super);\n function BreadcrumbBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n /**\n * Remove the first rendered item past the overlow point and put it and the end the overflow set.\n */\n _this._onReduceData = function (data) {\n var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n var overflowIndex = data.props.overflowIndex;\n var movedItem = renderedItems[overflowIndex];\n if (!movedItem) {\n return undefined;\n }\n renderedItems = __spreadArrays(renderedItems);\n renderedItems.splice(overflowIndex, 1);\n renderedOverflowItems = __spreadArrays(renderedOverflowItems, [movedItem]);\n return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n };\n /**\n * Remove the last item of the overflow set and insert the item as the start of the rendered set past the overflow\n * point.\n */\n _this._onGrowData = function (data) {\n var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n var _a = data.props, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems;\n renderedOverflowItems = __spreadArrays(renderedOverflowItems);\n var movedItem = renderedOverflowItems.pop();\n if (!movedItem || renderedItems.length >= maxDisplayedItems) {\n return undefined;\n }\n renderedItems = __spreadArrays(renderedItems);\n renderedItems.splice(overflowIndex, 0, movedItem);\n return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n };\n _this._onRenderBreadcrumb = function (data) {\n var _a = data.props, ariaLabel = _a.ariaLabel, _b = _a.dividerAs, DividerType = _b === void 0 ? Icon : _b, onRenderItem = _a.onRenderItem, overflowAriaLabel = _a.overflowAriaLabel, overflowIndex = _a.overflowIndex, onRenderOverflowIcon = _a.onRenderOverflowIcon, overflowButtonAs = _a.overflowButtonAs;\n var renderedOverflowItems = data.renderedOverflowItems, renderedItems = data.renderedItems;\n var contextualItems = renderedOverflowItems.map(function (item) {\n var isActionable = !!(item.onClick || item.href);\n return {\n text: item.text,\n name: item.text,\n key: item.key,\n onClick: item.onClick ? _this._onBreadcrumbClicked.bind(_this, item) : null,\n href: item.href,\n disabled: !isActionable,\n itemProps: isActionable ? undefined : nonActionableItemProps,\n };\n });\n // Find index of last rendered item so the divider icon\n // knows not to render on that item\n var lastItemIndex = renderedItems.length - 1;\n var hasOverflowItems = renderedOverflowItems && renderedOverflowItems.length !== 0;\n var itemElements = renderedItems.map(function (item, index) {\n var finalOnRenderItem = _this._onRenderItem;\n if (item.onRender) {\n finalOnRenderItem = composeRenderFunction(item.onRender, finalOnRenderItem);\n }\n if (onRenderItem) {\n finalOnRenderItem = composeRenderFunction(onRenderItem, finalOnRenderItem);\n }\n return (React.createElement(\"li\", { className: _this._classNames.listItem, key: item.key || String(index) },\n finalOnRenderItem(item),\n (index !== lastItemIndex || (hasOverflowItems && index === overflowIndex - 1)) && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: item }))));\n });\n if (hasOverflowItems) {\n var iconProps = !onRenderOverflowIcon ? { iconName: 'More' } : {};\n var onRenderMenuIcon = onRenderOverflowIcon ? onRenderOverflowIcon : nullFunction;\n var OverflowButton = overflowButtonAs ? overflowButtonAs : IconButton;\n itemElements.splice(overflowIndex, 0, React.createElement(\"li\", { className: _this._classNames.overflow, key: OVERFLOW_KEY },\n React.createElement(OverflowButton, { className: _this._classNames.overflowButton, iconProps: iconProps, role: \"button\", \"aria-haspopup\": \"true\", ariaLabel: overflowAriaLabel, onRenderMenuIcon: onRenderMenuIcon, menuProps: {\n items: contextualItems,\n directionalHint: DirectionalHint.bottomLeftEdge,\n } }),\n overflowIndex !== lastItemIndex + 1 && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: renderedOverflowItems[renderedOverflowItems.length - 1] }))));\n }\n var nativeProps = getNativeProps(_this.props, htmlElementProperties, [\n 'className',\n ]);\n return (React.createElement(\"div\", __assign({ className: _this._classNames.root, role: \"navigation\", \"aria-label\": ariaLabel }, nativeProps),\n React.createElement(FocusZone, __assign({ componentRef: _this._focusZone, direction: FocusZoneDirection.horizontal }, _this.props.focusZoneProps),\n React.createElement(\"ol\", { className: _this._classNames.list }, itemElements))));\n };\n _this._onRenderItem = function (item) {\n if (!item) {\n return null;\n }\n var as = item.as, href = item.href, onClick = item.onClick, isCurrentItem = item.isCurrentItem, text = item.text, onRenderContent = item.onRenderContent, additionalProps = __rest(item, [\"as\", \"href\", \"onClick\", \"isCurrentItem\", \"text\", \"onRenderContent\"]);\n var finalOnRenderContent = defaultOnRenderCrumbContent;\n if (onRenderContent) {\n finalOnRenderContent = composeRenderFunction(onRenderContent, finalOnRenderContent);\n }\n if (_this.props.onRenderItemContent) {\n finalOnRenderContent = composeRenderFunction(_this.props.onRenderItemContent, finalOnRenderContent);\n }\n if (onClick || href) {\n return (React.createElement(Link, __assign({}, additionalProps, { as: as, className: _this._classNames.itemLink, href: href, \"aria-current\": isCurrentItem ? 'page' : undefined, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: _this._onBreadcrumbClicked.bind(_this, item) }),\n React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n }\n else {\n var Tag = as || 'span';\n return (React.createElement(Tag, __assign({}, additionalProps, { className: _this._classNames.item }),\n React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n }\n };\n _this._onBreadcrumbClicked = function (item, ev) {\n if (item.onClick) {\n item.onClick(ev, item);\n }\n };\n initializeComponentRef(_this);\n _this._validateProps(props);\n return _this;\n }\n /**\n * Sets focus to the first breadcrumb link.\n */\n BreadcrumbBase.prototype.focus = function () {\n if (this._focusZone.current) {\n this._focusZone.current.focus();\n }\n };\n BreadcrumbBase.prototype.render = function () {\n this._validateProps(this.props);\n var _a = this.props, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems, items = _a.items, className = _a.className, theme = _a.theme, styles = _a.styles;\n var renderedItems = __spreadArrays(items);\n var renderedOverflowItems = renderedItems.splice(overflowIndex, renderedItems.length - maxDisplayedItems);\n var breadcrumbData = {\n props: this.props,\n renderedItems: renderedItems,\n renderedOverflowItems: renderedOverflowItems,\n };\n this._classNames = getClassNames(styles, {\n className: className,\n theme: theme,\n });\n return (React.createElement(ResizeGroup, { onRenderData: this._onRenderBreadcrumb, onReduceData: onReduceData, onGrowData: onGrowData, data: breadcrumbData }));\n };\n /**\n * Validate incoming props\n * @param props - Props to validate\n */\n BreadcrumbBase.prototype._validateProps = function (props) {\n var maxDisplayedItems = props.maxDisplayedItems, overflowIndex = props.overflowIndex, items = props.items;\n if (overflowIndex < 0 ||\n (maxDisplayedItems > 1 && overflowIndex > maxDisplayedItems - 1) ||\n (items.length > 0 && overflowIndex > items.length - 1)) {\n throw new Error('Breadcrumb: overflowIndex out of range');\n }\n };\n BreadcrumbBase.defaultProps = {\n items: [],\n maxDisplayedItems: 999,\n overflowIndex: 0,\n };\n return BreadcrumbBase;\n}(React.Component));\nexport { BreadcrumbBase };\nfunction defaultOnRenderCrumbContent(item) {\n return item ? React.createElement(React.Fragment, null, item.text) : null;\n}\n//# sourceMappingURL=Breadcrumb.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, ScreenWidthMaxMedium, ScreenWidthMaxSmall, ScreenWidthMinMedium, getFocusStyle, getScreenSelector, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Breadcrumb',\n list: 'ms-Breadcrumb-list',\n listItem: 'ms-Breadcrumb-listItem',\n chevron: 'ms-Breadcrumb-chevron',\n overflow: 'ms-Breadcrumb-overflow',\n overflowButton: 'ms-Breadcrumb-overflowButton',\n itemLink: 'ms-Breadcrumb-itemLink',\n item: 'ms-Breadcrumb-item',\n};\nvar SingleLineTextStyle = {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n};\nvar overflowButtonFontSize = 16;\nvar chevronSmallFontSize = 8;\nvar itemLineHeight = 36;\nvar itemFontSize = 18;\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\nvar MediumScreenSelector = getScreenSelector(ScreenWidthMinMedium, ScreenWidthMaxMedium);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var className = props.className, theme = props.theme;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Tokens\n var itemBackgroundHoveredColor = semanticColors.menuItemBackgroundHovered;\n var itemBackgroundPressedColor = semanticColors.menuItemBackgroundPressed;\n var itemTextColor = palette.neutralSecondary;\n var itemTextFontWeight = FontWeights.regular;\n var itemTextHoveredOrPressedColor = palette.neutralPrimary;\n var itemLastChildTextColor = palette.neutralPrimary;\n var itemLastChildTextFontWeight = FontWeights.semibold;\n var chevronButtonColor = palette.neutralSecondary;\n var overflowButtonColor = palette.neutralSecondary;\n var lastChildItemStyles = {\n fontWeight: itemLastChildTextFontWeight,\n color: itemLastChildTextColor,\n };\n var itemStateSelectors = {\n ':hover': {\n color: itemTextHoveredOrPressedColor,\n backgroundColor: itemBackgroundHoveredColor,\n cursor: 'pointer',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'Highlight',\n },\n _a),\n },\n ':active': {\n backgroundColor: itemBackgroundPressedColor,\n color: itemTextHoveredOrPressedColor,\n },\n '&:active:hover': {\n color: itemTextHoveredOrPressedColor,\n backgroundColor: itemBackgroundPressedColor,\n },\n '&:active, &:hover, &:active:hover': {\n textDecoration: 'none',\n },\n };\n var commonItemStyles = {\n color: itemTextColor,\n padding: '0 8px',\n lineHeight: itemLineHeight,\n fontSize: itemFontSize,\n fontWeight: itemTextFontWeight,\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n margin: '11px 0 1px',\n },\n className,\n ],\n list: [\n classNames.list,\n {\n whiteSpace: 'nowrap',\n padding: 0,\n margin: 0,\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n listItem: [\n classNames.listItem,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n selectors: {\n '&:last-child .ms-Breadcrumb-itemLink': lastChildItemStyles,\n '&:last-child .ms-Breadcrumb-item': lastChildItemStyles,\n },\n },\n ],\n chevron: [\n classNames.chevron,\n {\n color: chevronButtonColor,\n fontSize: fonts.small.fontSize,\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ color: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _b[MediumScreenSelector] = {\n fontSize: chevronSmallFontSize,\n },\n _b[MinimumScreenSelector] = {\n fontSize: chevronSmallFontSize,\n },\n _b),\n },\n ],\n overflow: [\n classNames.overflow,\n {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n },\n ],\n overflowButton: [\n classNames.overflowButton,\n getFocusStyle(theme),\n SingleLineTextStyle,\n {\n fontSize: overflowButtonFontSize,\n color: overflowButtonColor,\n height: '100%',\n cursor: 'pointer',\n selectors: __assign(__assign({}, itemStateSelectors), (_c = {}, _c[MinimumScreenSelector] = {\n padding: '4px 6px',\n }, _c[MediumScreenSelector] = {\n fontSize: fonts.mediumPlus.fontSize,\n }, _c)),\n },\n ],\n itemLink: [\n classNames.itemLink,\n getFocusStyle(theme),\n SingleLineTextStyle,\n __assign(__assign({}, commonItemStyles), { selectors: __assign((_d = { ':focus': {\n color: palette.neutralDark,\n } }, _d[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n outline: \"none\",\n }, _d), itemStateSelectors) }),\n ],\n item: [\n classNames.item,\n __assign(__assign({}, commonItemStyles), { selectors: {\n ':hover': {\n cursor: 'default',\n },\n } }),\n ],\n };\n};\n//# sourceMappingURL=Breadcrumb.styles.js.map","import { styled } from '../../Utilities';\nimport { BreadcrumbBase } from './Breadcrumb.base';\nimport { getStyles } from './Breadcrumb.styles';\nexport var Breadcrumb = styled(BreadcrumbBase, getStyles, undefined, { scope: 'Breadcrumb' });\n//# sourceMappingURL=Breadcrumb.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n __extends(ActionButton, _super);\n function ActionButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ActionButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n ActionButton = __decorate([\n customizable('ActionButton', ['theme', 'styles'], true)\n ], ActionButton);\n return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var actionButtonStyles = {\n root: {\n padding: DEFAULT_PADDING,\n height: DEFAULT_BUTTON_HEIGHT,\n color: theme.palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: '1px solid transparent',\n },\n rootHovered: {\n color: theme.palette.themePrimary,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.palette.black,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n },\n iconPressed: {\n color: theme.palette.themeDarker,\n },\n rootDisabled: {\n color: theme.palette.neutralTertiary,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n },\n rootChecked: {\n color: theme.palette.black,\n },\n iconChecked: {\n color: theme.palette.themeDarker,\n },\n flexContainer: {\n justifyContent: 'flex-start',\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n iconDisabled: {\n color: 'inherit',\n },\n menuIcon: {\n color: theme.palette.neutralSecondary,\n },\n textContainer: {\n flexGrow: 0,\n },\n };\n return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\nimport { getGlobalClassNames } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n var _a, _b;\n var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n var isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: (_a = {},\n _a[\":hover .\" + classNames.msButtonIcon] = styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n _a[\":hover .\" + classNames.msButtonMenuIcon] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n _a[':hover'] = styles.rootExpandedHovered,\n _a),\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n _b[\":hover .\" + classNames.msButtonLabel] = styles.labelHovered,\n _b[\":hover .\" + classNames.msButtonIcon] = styles.iconHovered,\n _b[\":hover .\" + classNames.msButtonDescription] = styles.descriptionHovered,\n _b[\":hover .\" + classNames.msButtonMenuIcon] = styles.menuIconHovered,\n _b[':focus'] = styles.rootFocused,\n _b[':active'] = styles.rootPressed,\n _b[\":active .\" + classNames.msButtonIcon] = styles.iconPressed,\n _b[\":active .\" + classNames.msButtonDescription] = styles.descriptionPressed,\n _b[\":active .\" + classNames.msButtonMenuIcon] = styles.menuIconPressed,\n _b),\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames, } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n __extends(BaseButton, _super);\n function BaseButton(props) {\n var _this = _super.call(this, props) || this;\n _this._buttonElement = React.createRef();\n _this._splitButtonContainer = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._renderedVisibleMenu = false;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onRenderIcon = function (buttonProps, defaultRender) {\n var iconProps = _this.props.iconProps;\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n if (iconProps.iconName) {\n return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n }\n if (imageProps) {\n return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n }\n return null;\n };\n _this._onRenderTextContents = function () {\n var _a = _this.props, text = _a.text, children = _a.children, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n if (text || typeof children === 'string' || secondaryText) {\n return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n onRenderText(_this.props, _this._onRenderText),\n onRenderDescription(_this.props, _this._onRenderDescription)));\n }\n return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n };\n _this._onRenderText = function () {\n var text = _this.props.text;\n var children = _this.props.children;\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n if (_this._hasText()) {\n return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n }\n return null;\n };\n _this._onRenderChildren = function () {\n var children = _this.props.children;\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n return children;\n };\n _this._onRenderDescription = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n };\n _this._onRenderAriaDescription = function () {\n var ariaDescription = _this.props.ariaDescription;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n };\n _this._onRenderMenuIcon = function (props) {\n var menuIconProps = _this.props.menuIconProps;\n return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n };\n _this._onRenderMenu = function (menuProps) {\n var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n return React.createElement(MenuType, __assign({}, menuProps));\n };\n _this._onDismissMenu = function (ev) {\n var menuProps = _this.props.menuProps;\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n _this._dismissMenu();\n }\n };\n _this._dismissMenu = function () {\n _this._menuShouldFocusOnMount = undefined;\n _this._menuShouldFocusOnContainer = undefined;\n _this.setState({ menuHidden: true });\n };\n _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n if (_this.props.menuProps) {\n _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n _this._menuShouldFocusOnMount = shouldFocusOnMount;\n _this._renderedVisibleMenu = true;\n _this.setState({ menuHidden: false });\n }\n };\n _this._onToggleMenu = function (shouldFocusOnContainer) {\n var shouldFocusOnMount = true;\n if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n };\n _this._onSplitContainerFocusCapture = function (ev) {\n var container = _this._splitButtonContainer.current;\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n _this._onSplitButtonPrimaryClick = function (ev) {\n if (!_this.state.menuHidden) {\n _this._dismissMenu();\n }\n if (!_this._processingTouch && _this.props.onClick) {\n _this.props.onClick(ev);\n }\n else if (_this._processingTouch) {\n _this._onMenuClick(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n // explicity cancelling event so click won't fire after this\n if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuKeyDown(ev);\n }\n else if (_this.props.onKeyDown !== undefined) {\n _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onKeyUp = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onKeyPress = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseUp = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseDown = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onClick = function (ev) {\n if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuClick(ev);\n }\n else if (_this.props.onClick !== undefined) {\n _this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onSplitButtonContainerKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (_this._buttonElement.current) {\n _this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n _this._onMenuKeyDown(ev);\n }\n };\n _this._onMenuKeyDown = function (ev) {\n if (_this.props.disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n var isUp = ev.which === KeyCodes.up;\n var isDown = ev.which === KeyCodes.down;\n if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n _this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target);\n }\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n if (!_this.state.menuHidden && _this.props.menuProps) {\n var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n ? _this._menuShouldFocusOnMount\n : _this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._menuShouldFocusOnMount = true;\n _this.forceUpdate();\n }\n }\n }\n };\n _this._onTouchStart = function () {\n if (_this._isSplitButton &&\n _this._splitButtonContainer.current &&\n !('onpointerdown' in _this._splitButtonContainer.current)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onMenuClick = function (ev) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n if (!ev.defaultPrevented) {\n // When Edge + Narrator are used together (regardless of if the button is in a form or not), pressing\n // \"Enter\" fires this method and not _onMenuKeyDown. Checking ev.nativeEvent.detail differentiates\n // between a real click event and a keypress event (detail should be the number of mouse clicks).\n // ...Plot twist! For a real click event in IE 11, detail is always 0 (Edge sets it properly to 1).\n // So we also check the pointerType property, which both Edge and IE set to \"mouse\" for real clicks\n // and \"\" for pressing \"Enter\" with Narrator on.\n var shouldFocusOnContainer = ev.nativeEvent.detail !== 0 || ev.nativeEvent.pointerType === 'mouse';\n _this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n _this._labelId = getId();\n _this._descriptionId = getId();\n _this._ariaDescriptionId = getId();\n _this.state = {\n menuHidden: true,\n };\n return _this;\n }\n Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n get: function () {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n },\n enumerable: true,\n configurable: true\n });\n BaseButton.prototype.render = function () {\n var _a;\n var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n // eslint-disable-next-line deprecation/deprecation\n _c = _b.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n var menuHidden = this.state.menuHidden;\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n var isPrimaryButtonDisabled = disabled || primaryDisabled;\n this._classNames = getClassNames\n ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n var tag = renderAsAnchor ? 'a' : 'button';\n var nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n 'disabled',\n ]);\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n var ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n }\n else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n }\n else if (nativeProps['aria-describedby']) {\n ariaDescribedBy = nativeProps['aria-describedby'];\n }\n // If an explicit ariaLabel is given, use that as the label and we're done.\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute),\n // set the labelledby element. Otherwise, the button is labeled implicitly by the descendent\n // text on the button (if it exists). Never set both aria-label and aria-labelledby.\n var ariaLabelledBy = undefined;\n if (!resolvedAriaLabel) {\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n }\n var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n var buttonProps = assign(nativeProps, (_a = {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable\n },\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n _a));\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n }\n else if (this.props.menuProps) {\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-owns': !menuHidden ? this._labelId + '-menu' : null,\n 'aria-haspopup': true,\n });\n }\n return this._onRenderContent(tag, buttonProps);\n };\n BaseButton.prototype.componentDidMount = function () {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n };\n BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n };\n BaseButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n BaseButton.prototype.focus = function () {\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true);\n this._splitButtonContainer.current.focus();\n }\n else if (this._buttonElement.current) {\n setFocusVisibility(true);\n this._buttonElement.current.focus();\n }\n };\n BaseButton.prototype.dismissMenu = function () {\n this._dismissMenu();\n };\n BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n };\n BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n var _this = this;\n var props = this.props;\n var Tag = tag;\n var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n // eslint-disable-next-line deprecation/deprecation\n _d = props.onRenderMenu, \n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n var keytipProps = props.keytipProps;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n onRenderIcon(props, _this._onRenderIcon),\n _this._onRenderTextContents(),\n onRenderAriaDescription(props, _this._onRenderAriaDescription),\n onRenderChildren(props, _this._onRenderChildren),\n !_this._isSplitButton &&\n (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n menuProps &&\n !menuProps.doNotLayer &&\n _this._shouldRenderMenu() &&\n onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n var Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n if (menuProps && menuProps.doNotLayer) {\n return (React.createElement(\"span\", { style: { display: 'inline-block' } },\n Content,\n this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n }\n return (React.createElement(React.Fragment, null,\n Content,\n React.createElement(FocusRects, null)));\n };\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n BaseButton.prototype._shouldRenderMenu = function () {\n var menuHidden = this.state.menuHidden;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n }\n else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n return false;\n };\n BaseButton.prototype._hasText = function () {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n };\n BaseButton.prototype._getMenuProps = function (menuProps) {\n var persistMenu = this.props.persistMenu;\n var menuHidden = this.state.menuHidden;\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n }\n return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n };\n BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n var _this = this;\n var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n var keytipProps = this.props.keytipProps;\n var menuHidden = this.state.menuHidden;\n var classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n React.createElement(\"span\", { style: { display: 'flex' } },\n _this._onRenderContent(tag, buttonProps),\n _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n _this._onRenderSplitButtonDivider(classNames)))); };\n return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n };\n BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n if (classNames && classNames.divider) {\n var onClick = function (ev) {\n ev.stopPropagation();\n };\n return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n }\n return null;\n };\n BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n var menuHidden = this.state.menuHidden;\n var menuIconProps = this.props.menuIconProps;\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n };\n BaseButton.prototype._onPointerDown = function (ev) {\n var onPointerDown = this.props.onPointerDown;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n BaseButton.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n _this.focus();\n }, TouchIdleDelay);\n };\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n if (this.props.menuTriggerKeyCode) {\n return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n };\n BaseButton.defaultProps = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n outline: 0,\n};\nvar iconStyle = function (fontSize) {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n var _a, _b;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var border = semanticColors.buttonBorder;\n var disabledBackground = semanticColors.disabledBackground;\n var disabledText = semanticColors.disabledText;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n boxSizing: 'border-box',\n border: '1px solid ' + border,\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n padding: '0 16px',\n borderRadius: effects.roundedCorner2,\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n iconDisabled: {\n color: disabledText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n menuIconDisabled: {\n color: disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n icon: iconStyle(fonts.mediumPlus.fontSize),\n menuIcon: iconStyle(fonts.small.fontSize),\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warn } from '../../Utilities';\nimport { ButtonType } from './Button.types';\nimport { DefaultButton } from './DefaultButton/DefaultButton';\nimport { ActionButton } from './ActionButton/ActionButton';\nimport { CompoundButton } from './CompoundButton/CompoundButton';\nimport { IconButton } from './IconButton/IconButton';\nimport { PrimaryButton } from './PrimaryButton/PrimaryButton';\n/**\n * This class is deprecated. Use the individual *Button components instead.\n * @deprecated Use the individual *Button components instead.\n * {@docCategory Button}\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button(props) {\n var _this = _super.call(this, props) || this;\n warn(\"The Button component has been deprecated. Use specific variants instead. \" +\n \"(PrimaryButton, DefaultButton, IconButton, ActionButton, etc.)\");\n return _this;\n }\n Button.prototype.render = function () {\n var props = this.props;\n // eslint-disable-next-line deprecation/deprecation\n switch (props.buttonType) {\n case ButtonType.command:\n return React.createElement(ActionButton, __assign({}, props));\n case ButtonType.compound:\n return React.createElement(CompoundButton, __assign({}, props));\n case ButtonType.icon:\n return React.createElement(IconButton, __assign({}, props));\n case ButtonType.primary:\n return React.createElement(PrimaryButton, __assign({}, props));\n default:\n return React.createElement(DefaultButton, __assign({}, props));\n }\n };\n return Button;\n}(React.Component));\nexport { Button };\n//# sourceMappingURL=Button.js.map","/**\n * {@docCategory Button}\n */\nexport var ElementType;\n(function (ElementType) {\n /** <button> element. */\n ElementType[ElementType[\"button\"] = 0] = \"button\";\n /** <a> element. */\n ElementType[ElementType[\"anchor\"] = 1] = \"anchor\";\n})(ElementType || (ElementType = {}));\n/**\n * {@docCategory Button}\n */\nexport var ButtonType;\n(function (ButtonType) {\n ButtonType[ButtonType[\"normal\"] = 0] = \"normal\";\n ButtonType[ButtonType[\"primary\"] = 1] = \"primary\";\n ButtonType[ButtonType[\"hero\"] = 2] = \"hero\";\n ButtonType[ButtonType[\"compound\"] = 3] = \"compound\";\n ButtonType[ButtonType[\"command\"] = 4] = \"command\";\n ButtonType[ButtonType[\"icon\"] = 5] = \"icon\";\n ButtonType[ButtonType[\"default\"] = 6] = \"default\";\n})(ButtonType || (ButtonType = {}));\n//# sourceMappingURL=Button.types.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n return {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n};\nexport function standardStyles(theme) {\n var _a, _b, _c, _d, _e;\n var s = theme.semanticColors, p = theme.palette;\n var buttonBackground = s.buttonBackground;\n var buttonBackgroundPressed = s.buttonBackgroundPressed;\n var buttonBackgroundHovered = s.buttonBackgroundHovered;\n var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n var buttonText = s.buttonText;\n var buttonTextHovered = s.buttonTextHovered;\n var buttonTextDisabled = s.buttonTextDisabled;\n var buttonTextChecked = s.buttonTextChecked;\n var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n return {\n root: {\n backgroundColor: buttonBackground,\n color: buttonText,\n },\n rootHovered: {\n backgroundColor: buttonBackgroundHovered,\n color: buttonTextHovered,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootPressed: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootExpanded: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootChecked: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootCheckedHovered: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextCheckedHovered,\n },\n rootDisabled: {\n color: buttonTextDisabled,\n backgroundColor: buttonBackgroundDisabled,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _b),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n border: 'none',\n },\n _c),\n },\n splitButtonMenuButton: {\n color: p.white,\n backgroundColor: 'transparent',\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLight,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.buttonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.buttonBackgroundDisabled,\n },\n },\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.neutralTertiaryAlt, selectors: (_e = {},\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _e) }),\n splitButtonDividerDisabled: {\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.buttonText,\n },\n splitButtonMenuIconDisabled: {\n color: s.buttonTextDisabled,\n },\n };\n}\nexport function primaryStyles(theme) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var p = theme.palette, s = theme.semanticColors;\n return {\n root: {\n backgroundColor: s.primaryButtonBackground,\n border: \"1px solid \" + s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n selectors: {\n ':after': {\n border: \"none\",\n outlineColor: p.white,\n },\n },\n },\n _a),\n },\n rootHovered: {\n backgroundColor: s.primaryButtonBackgroundHovered,\n border: \"1px solid \" + s.primaryButtonBackgroundHovered,\n color: s.primaryButtonTextHovered,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n },\n _b),\n },\n rootPressed: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n border: \"1px solid \" + s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n rootExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootCheckedHovered: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootDisabled: {\n color: s.primaryButtonTextDisabled,\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n },\n _e),\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.white, selectors: (_f = {},\n _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _f) }),\n splitButtonMenuButton: {\n backgroundColor: s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _g[':hover'] = {\n backgroundColor: s.primaryButtonBackgroundHovered,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n color: 'Highlight',\n },\n _h),\n },\n _g),\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n },\n },\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.primaryButtonText,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n color: 'GrayText',\n },\n _j),\n },\n };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { ButtonGlobalClassNames } from '../BaseButton.classNames';\nexport var getStyles = memoizeFunction(function (theme, customStyles, focusInset, focusColor) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var baseSplitButtonStyles = getSplitButtonStyles(theme);\n var p = theme.palette, semanticColors = theme.semanticColors;\n var commandButtonHighContrastFocus = {\n left: 4,\n top: 4,\n bottom: 4,\n right: 4,\n border: 'none',\n };\n var commandButtonStyles = {\n root: [\n getFocusStyle(theme, {\n inset: 2,\n highContrastStyle: commandButtonHighContrastFocus,\n borderColor: 'transparent',\n }),\n theme.fonts.medium,\n {\n minWidth: '40px',\n backgroundColor: p.white,\n color: p.neutralPrimary,\n padding: '0 4px',\n border: 'none',\n borderRadius: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 'none',\n },\n _a),\n },\n ],\n rootHovered: {\n backgroundColor: p.neutralLighter,\n color: p.neutralDark,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.themeDarkAlt,\n },\n _b[\".\" + ButtonGlobalClassNames.msButtonMenuIcon] = {\n color: p.neutralPrimary,\n },\n _b),\n },\n rootPressed: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: (_c = {},\n _c[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.themeDark,\n },\n _c[\".\" + ButtonGlobalClassNames.msButtonMenuIcon] = {\n color: p.neutralPrimary,\n },\n _c),\n },\n rootChecked: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: (_d = {},\n _d[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.themeDark,\n },\n _d[\".\" + ButtonGlobalClassNames.msButtonMenuIcon] = {\n color: p.neutralPrimary,\n },\n _d),\n },\n rootCheckedHovered: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: (_e = {},\n _e[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.themeDark,\n },\n _e[\".\" + ButtonGlobalClassNames.msButtonMenuIcon] = {\n color: p.neutralPrimary,\n },\n _e),\n },\n rootExpanded: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: (_f = {},\n _f[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.themeDark,\n },\n _f[\".\" + ButtonGlobalClassNames.msButtonMenuIcon] = {\n color: p.neutralPrimary,\n },\n _f),\n },\n rootExpandedHovered: {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n rootDisabled: {\n backgroundColor: p.white,\n selectors: (_g = {},\n _g[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: semanticColors.disabledBodySubtext,\n selectors: (_h = {},\n _h[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n _g[HighContrastSelector] = __assign({ color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _g),\n },\n // Split button styles\n splitButtonContainer: {\n height: '100%',\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n border: 'none',\n },\n _j),\n },\n splitButtonDividerDisabled: {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonDivider: {\n backgroundColor: p.neutralTertiaryAlt,\n },\n splitButtonMenuButton: {\n backgroundColor: p.white,\n border: 'none',\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n color: p.neutralSecondary,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLighter,\n color: p.neutralDark,\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'Highlight',\n },\n _l[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.neutralPrimary,\n },\n _l),\n },\n ':active': {\n backgroundColor: p.neutralLight,\n selectors: (_m = {},\n _m[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: p.neutralPrimary,\n },\n _m),\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: p.white,\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', border: 'none', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralLight,\n color: p.black,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuIcon: {\n color: p.neutralPrimary,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n },\n label: {\n fontWeight: 'normal',\n },\n icon: {\n color: p.themePrimary,\n },\n menuIcon: (_p = {\n color: p.neutralSecondary\n },\n _p[HighContrastSelector] = {\n color: 'GrayText',\n },\n _p),\n };\n return concatStyleSets(baseButtonStyles, baseSplitButtonStyles, commandButtonStyles, customStyles);\n});\n//# sourceMappingURL=CommandBarButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './CommandBarButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CommandBarButton = /** @class */ (function (_super) {\n __extends(CommandBarButton, _super);\n function CommandBarButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommandBarButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--commandBar\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n CommandBarButton = __decorate([\n customizable('CommandBarButton', ['theme', 'styles'], true)\n ], CommandBarButton);\n return CommandBarButton;\n}(React.Component));\nexport { CommandBarButton };\n//# sourceMappingURL=CommandBarButton.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, FontWeights, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var _a, _b, _c, _d, _e;\n var fonts = theme.fonts, palette = theme.palette;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var compoundButtonStyles = {\n root: {\n maxWidth: '280px',\n minHeight: '72px',\n height: 'auto',\n padding: '16px 12px',\n },\n flexContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n minWidth: '100%',\n margin: '',\n },\n textContainer: {\n textAlign: 'left',\n },\n icon: {\n fontSize: '2em',\n lineHeight: '1em',\n height: '1em',\n margin: '0px 8px 0px 0px',\n flexBasis: '1em',\n flexShrink: '0',\n },\n label: {\n margin: '0 0 5px',\n lineHeight: '100%',\n fontWeight: FontWeights.semibold,\n },\n description: [\n fonts.small,\n {\n lineHeight: '100%',\n },\n ],\n };\n var standardCompoundTheme = {\n description: {\n color: palette.neutralSecondary,\n },\n descriptionHovered: {\n color: palette.neutralDark,\n },\n descriptionPressed: {\n color: 'inherit',\n },\n descriptionChecked: {\n color: 'inherit',\n },\n descriptionDisabled: {\n color: 'inherit',\n },\n };\n var primaryCompoundTheme = {\n description: {\n color: palette.white,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n descriptionHovered: {\n color: palette.white,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'Window',\n },\n _b),\n },\n descriptionPressed: {\n color: 'inherit',\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n descriptionChecked: {\n color: 'inherit',\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n descriptionDisabled: {\n color: 'inherit',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'inherit',\n },\n _e),\n },\n };\n return concatStyleSets(baseButtonStyles, compoundButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), primary ? primaryCompoundTheme : standardCompoundTheme, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=CompoundButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable } from '../../../Utilities';\nimport { getStyles } from './CompoundButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CompoundButton = /** @class */ (function (_super) {\n __extends(CompoundButton, _super);\n function CompoundButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CompoundButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--compoundPrimary' : 'ms-Button--compound', styles: getStyles(theme, styles, primary) })));\n };\n CompoundButton = __decorate([\n customizable('CompoundButton', ['theme', 'styles'], true)\n ], CompoundButton);\n return CompoundButton;\n}(React.Component));\nexport { CompoundButton };\n//# sourceMappingURL=CompoundButton.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var defaultButtonStyles = {\n root: {\n minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n height: DEFAULT_BUTTON_HEIGHT,\n },\n label: {\n fontWeight: FontWeights.semibold,\n },\n };\n return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n __extends(DefaultButton, _super);\n function DefaultButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n };\n DefaultButton = __decorate([\n customizable('DefaultButton', ['theme', 'styles'], true)\n ], DefaultButton);\n return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var iconButtonStyles = {\n root: {\n padding: '0 4px',\n width: '32px',\n height: '32px',\n backgroundColor: 'transparent',\n border: 'none',\n color: semanticColors.link,\n },\n rootHovered: {\n color: palette.themeDarkAlt,\n backgroundColor: palette.neutralLighter,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootHasMenu: {\n width: 'auto',\n },\n rootPressed: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootExpanded: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootChecked: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootCheckedHovered: {\n color: palette.themeDark,\n backgroundColor: palette.neutralQuaternaryAlt,\n },\n rootDisabled: {\n color: palette.neutralTertiaryAlt,\n },\n };\n return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n __extends(IconButton, _super);\n function IconButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IconButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n };\n IconButton = __decorate([\n customizable('IconButton', ['theme', 'styles'], true)\n ], IconButton);\n return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { concatStyleSets, getFocusStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n return concatStyleSets({\n root: [\n getFocusStyle(theme, {\n inset: 1,\n highContrastStyle: {\n outlineOffset: '-4px',\n outline: '1px solid Window',\n },\n borderColor: 'transparent',\n }),\n {\n height: 24,\n },\n ],\n }, customStyles);\n});\n//# sourceMappingURL=MessageBarButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './MessageBarButton.styles';\n/**\n * {@docCategory MessageBar}\n */\nvar MessageBarButton = /** @class */ (function (_super) {\n __extends(MessageBarButton, _super);\n function MessageBarButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MessageBarButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return React.createElement(DefaultButton, __assign({}, this.props, { styles: getStyles(theme, styles), onRenderDescription: nullRender }));\n };\n MessageBarButton = __decorate([\n customizable('MessageBarButton', ['theme', 'styles'], true)\n ], MessageBarButton);\n return MessageBarButton;\n}(React.Component));\nexport { MessageBarButton };\n//# sourceMappingURL=MessageBarButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\n/**\n * {@docCategory Button}\n */\nvar PrimaryButton = /** @class */ (function (_super) {\n __extends(PrimaryButton, _super);\n function PrimaryButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrimaryButton.prototype.render = function () {\n return React.createElement(DefaultButton, __assign({}, this.props, { primary: true, onRenderDescription: nullRender }));\n };\n PrimaryButton = __decorate([\n customizable('PrimaryButton', ['theme', 'styles'], true)\n ], PrimaryButton);\n return PrimaryButton;\n}(React.Component));\nexport { PrimaryButton };\n//# sourceMappingURL=PrimaryButton.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n return {\n root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ]),\n splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ], !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ], disabled && styles.splitButtonContainerDisabled),\n icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n divider: mergeStyles(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle, } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n var splitButtonDividerBaseStyles = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n var splitButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 }),\n {\n display: 'inline-flex',\n selectors: {\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n },\n '.ms-Button--primary': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n '.ms-Button--primary + .ms-Button': {\n border: 'none',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n },\n _b),\n },\n },\n },\n ],\n splitButtonContainerHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n },\n _c),\n },\n '.ms-Button.is-disabled': {\n color: semanticColors.buttonTextDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n },\n },\n splitButtonContainerChecked: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n splitButtonContainerCheckedHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: (_g = {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: \"1px solid \" + palette.neutralSecondaryAlt,\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n },\n _g[HighContrastSelector] = {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n _g),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h) }),\n splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _j) }),\n splitButtonMenuButtonDisabled: {\n pointerEvents: 'none',\n border: 'none',\n selectors: (_k = {\n ':hover': {\n cursor: 'default',\n },\n '.ms-Button--primary': {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _l),\n },\n '.ms-Button-menuIcon': {\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n color: 'GrayText',\n },\n _m),\n }\n },\n _k[HighContrastSelector] = {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n splitButtonContainerDisabled: {\n outline: 'none',\n border: 'none',\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n };\n return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".root_daee6904{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:0}.root_daee6904 *{overflow:visible}.root_daee6904 ::-moz-focus-inner{border:0}.root_daee6904 *{outline:transparent}.root_daee6904 *{position:relative}.ms-Fabric--isFocusVisible .root_daee6904 :focus:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:1px solid \" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.picker_daee6904{color:\" }, { \"theme\": \"black\", \"defaultValue\": \"#000000\" }, { \"rawString\": \";font-size:14px;position:relative}html[dir=ltr] .picker_daee6904{text-align:left}html[dir=rtl] .picker_daee6904{text-align:right}.holder_daee6904{-webkit-overflow-scrolling:touch;-webkit-box-sizing:border-box;box-sizing:border-box;display:none}.picker_daee6904.pickerIsOpened_daee6904 .holder_daee6904{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block}.pickerIsOpened_daee6904{position:relative}.frame_daee6904{position:relative}.wrap_daee6904{min-height:212px;padding:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:content-box;box-sizing:content-box}.wrap_daee6904.goTodaySpacing_daee6904{min-height:228px}.dayPicker_daee6904{display:block}.header_daee6904{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:28px;line-height:44px;width:100%}.divider_daee6904{top:0;margin-top:-12px;margin-bottom:-12px}html[dir=ltr] .divider_daee6904{border-right:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}html[dir=rtl] .divider_daee6904{border-left:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.decade_daee6904,.monthAndYear_daee6904,.year_daee6904{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:14px;font-weight:400;font-weight:600;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \";padding:0 5px}.currentDecade_daee6904:hover,.currentYear_daee6904:hover,.monthAndYear_daee6904:hover{cursor:default}.table_daee6904{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;margin-top:4px;width:197px}.table_daee6904 td{margin:0;padding:0}.dayWrapper_daee6904,.weekday_daee6904{width:28px;height:28px;padding:0;line-height:28px;font-size:12px;font-size:15px;font-weight:400;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \";-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:default}.dayWrapper_daee6904 ::-moz-focus-inner,.weekday_daee6904 ::-moz-focus-inner{border:0}.dayWrapper_daee6904 *,.weekday_daee6904 *{outline:transparent}.dayWrapper_daee6904 *,.weekday_daee6904 *{position:relative}.ms-Fabric--isFocusVisible .dayWrapper_daee6904 :focus:after,.ms-Fabric--isFocusVisible .weekday_daee6904 :focus:after{content:'';position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;pointer-events:none;border:1px solid \" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.day_daee6904{width:24px;height:24px;border-radius:2px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border:none;padding:0;background-color:transparent;line-height:100%;color:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.daySelection_daee6904 .day_daee6904:active,.daySelection_daee6904 .day_daee6904:hover{outline:1px solid Highlight;-ms-high-contrast-adjust:none}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.daySelection_daee6904 .day_daee6904:active{color:Highlight;-ms-high-contrast-adjust:none}}.dayIsToday_daee6904{border-radius:100%}.dayIsToday_daee6904,.dayIsToday_daee6904:hover{position:relative;background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.dayIsToday_daee6904,.dayIsToday_daee6904:hover{background-color:Highlight;-ms-high-contrast-adjust:none}}.dayIsToday_daee6904:hover,.dayIsToday_daee6904:hover:hover{border-radius:100%}.dayIsDisabled_daee6904:before{border-top-color:\" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \"}.dayIsUnfocused_daee6904{color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \";font-weight:400}.dayIsFocused_daee6904:hover,.dayIsUnfocused_daee6904:hover{cursor:pointer;background:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.daySelection_daee6904.dayIsHighlighted_daee6904:hover,.pickerIsFocused_daee6904 .dayIsHighlighted_daee6904.daySelection_daee6904{cursor:pointer;background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";border-radius:2px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.daySelection_daee6904.dayIsHighlighted_daee6904:hover,.pickerIsFocused_daee6904 .dayIsHighlighted_daee6904.daySelection_daee6904{outline:2px solid Highlight}.daySelection_daee6904.dayIsHighlighted_daee6904:hover :not(.dayIsToday_daee6904) span,.pickerIsFocused_daee6904 .dayIsHighlighted_daee6904.daySelection_daee6904 :not(.dayIsToday_daee6904) span{color:Highlight;-ms-high-contrast-adjust:none}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.dayIsHighlighted_daee6904 button.dayIsToday_daee6904{border-radius:100%}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.dayIsHighlighted_daee6904 button.dayIsToday_daee6904 span{color:Window;-ms-high-contrast-adjust:none}}.dayIsFocused_daee6904:active,.dayIsHighlighted_daee6904{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.dayIsFocused_daee6904:active.day_daee6904,.dayIsHighlighted_daee6904.day_daee6904{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.dayIsHighlighted_daee6904.dayDisabled_daee6904,.dayIsHighlighted_daee6904.dayDisabled_daee6904:hover{background:\" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \"}.dayBackground_daee6904,.dayBackground_daee6904:active,.dayBackground_daee6904:hover{border-radius:2px}.dayHover_daee6904,.dayHover_daee6904:hover{cursor:pointer;background:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.dayPress_daee6904,.dayPress_daee6904:hover{cursor:pointer;color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.dayPress_daee6904 .dayIsToday_daee6904,.dayPress_daee6904:hover .dayIsToday_daee6904{background:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";border-radius:100%}.dayIsFocused_daee6904:active,.dayIsHighlighted_daee6904,.dayIsHighlighted_daee6904:active,.dayIsHighlighted_daee6904:hover,.dayIsUnfocused_daee6904:active,.weekBackground_daee6904,.weekBackground_daee6904:active,.weekBackground_daee6904:hover{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.dayIsToday_daee6904,.dayIsToday_daee6904.day_daee6904:active,.pickerIsFocused_daee6904 .dayIsToday_daee6904{position:relative;color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \";font-weight:600;background:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";border-radius:100%}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.dayIsToday_daee6904,.dayIsToday_daee6904.day_daee6904:active,.pickerIsFocused_daee6904 .dayIsToday_daee6904{background-color:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.showWeekNumbers_daee6904 .weekNumbers_daee6904{border-right:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";-webkit-box-sizing:border-box;box-sizing:border-box;width:28px;padding:0}.showWeekNumbers_daee6904 .weekNumbers_daee6904 .dayWrapper_daee6904{color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.showWeekNumbers_daee6904 .weekNumbers_daee6904 .dayWrapper_daee6904.weekIsHighlighted_daee6904{color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.showWeekNumbers_daee6904 .table_daee6904{width:225px}.showWeekNumbers_daee6904 .table_daee6904 .dayWrapper_daee6904,.showWeekNumbers_daee6904 .table_daee6904 .weekday_daee6904{width:30px}.showWeekNumbersRTL_daee6904 .weekNumbers_daee6904{border-left:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";-webkit-box-sizing:border-box;box-sizing:border-box}.showWeekNumbersRTL_daee6904 .weekNumbers_daee6904 .dayWrapper_daee6904{color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.showWeekNumbersRTL_daee6904 .weekNumbers_daee6904 .dayWrapper_daee6904.weekIsHighlighted_daee6904{color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.showWeekNumbersRTL_daee6904 .table_daee6904{width:225px}.showWeekNumbersRTL_daee6904 .table_daee6904 .dayWrapper_daee6904,.showWeekNumbersRTL_daee6904 .table_daee6904 .weekday_daee6904{width:30px}.decadeComponents_daee6904,.monthComponents_daee6904,.yearComponents_daee6904{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-item-align:end;align-self:flex-end}.closeButton_daee6904,.nextDecade_daee6904,.nextMonth_daee6904,.nextYear_daee6904,.prevDecade_daee6904,.prevMonth_daee6904,.prevYear_daee6904{font-family:inherit;width:28px;height:28px;display:block;text-align:center;line-height:28px;text-align:center;font-size:12px;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \";border-radius:2px;position:relative;background-color:transparent;border:none;padding:0}.closeButton_daee6904:hover,.nextDecade_daee6904:hover,.nextMonth_daee6904:hover,.nextYear_daee6904:hover,.prevDecade_daee6904:hover,.prevMonth_daee6904:hover,.prevYear_daee6904:hover{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \";cursor:pointer;outline:1px solid transparent}.nextDecadeIsDisabled_daee6904,.nextMonthIsDisabled_daee6904,.nextYearIsDisabled_daee6904,.prevDecadeIsDisabled_daee6904,.prevMonthIsDisabled_daee6904,.prevYearIsDisabled_daee6904{color:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";pointer-events:none}.headerToggleView_daee6904{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:4px 8px}.headerToggleView_daee6904:hover{color:\" }, { \"theme\": \"black\", \"defaultValue\": \"#000000\" }, { \"rawString\": \";cursor:pointer}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.headerToggleView_daee6904:hover{outline:1px solid highlight}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.headerToggleView_daee6904:hover:active{color:highlight}}.currentDecade_daee6904,.currentYear_daee6904{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 5px;font-size:14px;font-weight:400;font-weight:600;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \";height:28px;line-height:28px}html[dir=ltr] .currentDecade_daee6904,html[dir=ltr] .currentYear_daee6904{margin-left:5px}html[dir=rtl] .currentDecade_daee6904,html[dir=rtl] .currentYear_daee6904{margin-right:5px}.optionGrid_daee6904{position:relative;height:210px;width:196px;margin:4px 0 0 0}html[dir=rtl] .optionGrid_daee6904{margin:4px 0 0 0}.monthOption_daee6904,.yearOption_daee6904{width:60px;height:60px;line-height:100%;cursor:pointer;margin:0 10px 10px 0;font-size:13px;font-weight:400;font-family:inherit;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \";text-align:center;border:none;padding:0;background-color:transparent;border-radius:2px}html[dir=ltr] .monthOption_daee6904,html[dir=ltr] .yearOption_daee6904{float:left}html[dir=rtl] .monthOption_daee6904,html[dir=rtl] .yearOption_daee6904{float:right}html[dir=rtl] .monthOption_daee6904,html[dir=rtl] .yearOption_daee6904{margin:0 0 10px 10px}.monthOption_daee6904:hover,.yearOption_daee6904:hover{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \";outline:1px solid transparent}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.monthOption_daee6904:hover,.yearOption_daee6904:hover{outline-color:highlight}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.monthOption_daee6904:active,.yearOption_daee6904:active{color:highlight}}.monthOption_daee6904.isHighlighted_daee6904,.yearOption_daee6904.isHighlighted_daee6904{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.dayIsDisabled_daee6904,.monthOptionIsDisabled_daee6904,.yearOptionIsDisabled_daee6904{color:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";pointer-events:none}.goToday_daee6904{bottom:0;color:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";cursor:pointer;font-size:12px;font-weight:400;font-family:inherit;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \";height:30px;line-height:30px;padding:0 10px;background-color:transparent;border:none;position:absolute!important;-webkit-box-sizing:content-box;box-sizing:content-box}[dir=ltr] .goToday_daee6904{right:13px}[dir=rtl] .goToday_daee6904{left:13px}.goToday_daee6904:hover{color:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";outline:1px solid transparent}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.goToday_daee6904:hover{outline-color:highlight}}.goToday_daee6904:active{color:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.goToday_daee6904:active{color:highlight}}.goToTodayIsDisabled_daee6904{color:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";pointer-events:none}.goTodayInlineMonth_daee6904{top:212px}.wrap_daee6904.goTodaySpacing_daee6904{padding-bottom:28px}.root_daee6904.isPickingYears_daee6904 .dayPicker_daee6904,.root_daee6904.isPickingYears_daee6904 .monthComponents_daee6904{display:none}.root_daee6904.isPickingYears_daee6904 .monthPicker_daee6904{display:none}.root_daee6904.isPickingYears_daee6904 .yearPicker_daee6904{display:block}@media (min-device-width:460px){.wrap_daee6904{padding:12px}.dayPicker_daee6904,.monthPicker_daee6904{min-height:200px}.header_daee6904{height:28px;line-height:28px;width:100%}.dayWrapper_daee6904,.weekday_daee6904{width:28px;height:28px;line-height:28px;font-size:12px}.closeButton_daee6904,.nextDecade_daee6904,.nextMonth_daee6904,.nextYear_daee6904,.prevDecade_daee6904,.prevMonth_daee6904,.prevYear_daee6904{font-size:12px;width:28px;height:28px;line-height:28px}.holder_daee6904{display:inline-block;height:auto;overflow:hidden}.decade_daee6904,.monthAndYear_daee6904,.year_daee6904{font-size:14px;color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.yearComponents_daee6904{margin-left:1px}.goToday_daee6904{padding:0 3px}[dir=ltr] .goToday_daee6904{right:20px}[dir=rtl] .goToday_daee6904{left:20px}.showWeekNumbers_daee6904 .table_daee6904 .dayWrapper_daee6904,.showWeekNumbers_daee6904 .table_daee6904 .weekday_daee6904{width:28px}.showWeekNumbersRTL_daee6904 .table_daee6904 .dayWrapper_daee6904,.showWeekNumbersRTL_daee6904 .table_daee6904 .weekday_daee6904{width:28px}.monthPickerVisible_daee6904 .wrap_daee6904{padding:12px}.monthPickerVisible_daee6904 .dayPicker_daee6904{margin:-10px 0;padding:10px 0}.monthPickerVisible_daee6904 .dayPicker_daee6904{-webkit-box-sizing:border-box;box-sizing:border-box;width:212px;min-height:200px}.monthPickerVisible_daee6904 .monthPicker_daee6904{display:block}.monthPickerVisible_daee6904 .optionGrid_daee6904{height:150px;width:196px}.monthPickerVisible_daee6904 .toggleMonthView_daee6904{display:none}.monthPickerVisible_daee6904 .currentDecade_daee6904,.monthPickerVisible_daee6904 .currentYear_daee6904{font-size:14px;margin:0;height:28px;line-height:28px;display:inline-block}.monthPickerVisible_daee6904 .monthOption_daee6904,.monthPickerVisible_daee6904 .yearOption_daee6904{width:40px;height:40px;line-height:100%;font-size:12px;margin:0 12px 16px 0}html[dir=rtl] .monthPickerVisible_daee6904 .monthOption_daee6904,html[dir=rtl] .monthPickerVisible_daee6904 .yearOption_daee6904{margin:0 0 16px 12px}.monthPickerVisible_daee6904 .monthOption_daee6904:hover,.monthPickerVisible_daee6904 .yearOption_daee6904:hover{outline:1px solid transparent}.monthPickerVisible_daee6904 .monthOption_daee6904:nth-child(4n+4),.monthPickerVisible_daee6904 .yearOption_daee6904:nth-child(4n+4){margin:0 0 16px 0}html[dir=rtl] .monthPickerVisible_daee6904 .monthOption_daee6904:nth-child(4n+4),html[dir=rtl] .monthPickerVisible_daee6904 .yearOption_daee6904:nth-child(4n+4){margin:0 0 16px 0}.monthPickerVisible_daee6904 .goToday_daee6904{font-size:12px;height:28px;line-height:28px;padding:0 10px}[dir=ltr] .monthPickerVisible_daee6904 .goToday_daee6904{right:8px}[dir=rtl] .monthPickerVisible_daee6904 .goToday_daee6904{left:8px}html[dir=ltr] .monthPickerVisible_daee6904 .goToday_daee6904{text-align:right}html[dir=rtl] .monthPickerVisible_daee6904 .goToday_daee6904{text-align:left}.monthPickerVisible_daee6904 .root_daee6904.isPickingYears_daee6904 .dayPicker_daee6904,.monthPickerVisible_daee6904 .root_daee6904.isPickingYears_daee6904 .monthComponents_daee6904{display:block}.monthPickerVisible_daee6904 .root_daee6904.isPickingYears_daee6904 .monthPicker_daee6904{display:none}.monthPickerVisible_daee6904 .root_daee6904.isPickingYears_daee6904 .yearPicker_daee6904{display:block}.calendarsInline_daee6904 .wrap_daee6904{padding:12px}.calendarsInline_daee6904 .holder_daee6904{height:auto}html[dir=ltr] .calendarsInline_daee6904 .table_daee6904{margin-right:12px}html[dir=rtl] .calendarsInline_daee6904 .table_daee6904{margin-left:12px}.calendarsInline_daee6904 .dayPicker_daee6904{width:auto}html[dir=ltr] .calendarsInline_daee6904 .monthPicker_daee6904{margin-left:12px}html[dir=rtl] .calendarsInline_daee6904 .monthPicker_daee6904{margin-right:12px}html[dir=ltr] .calendarsInline_daee6904 .yearPicker_daee6904{margin-left:12px}html[dir=rtl] .calendarsInline_daee6904 .yearPicker_daee6904{margin-right:12px}.calendarsInline_daee6904 .goToday_daee6904{padding:0 10px}[dir=ltr] .calendarsInline_daee6904 .goToday_daee6904{right:14px}[dir=rtl] .calendarsInline_daee6904 .goToday_daee6904{left:14px}html[dir=ltr] .calendarsInline_daee6904 .monthComponents_daee6904{margin-right:12px}html[dir=rtl] .calendarsInline_daee6904 .monthComponents_daee6904{margin-left:12px}.monthPickerOnly_daee6904 .wrap_daee6904{padding:12px}.monthPickerAsOverlay_daee6904 .wrap_daee6904{padding-bottom:28px;margin-bottom:6px}.monthPickerAsOverlay_daee6904 .holder_daee6904{height:240px;min-height:240px}.monthPickerAsOverlay_daee6904 .holderWithButton_daee6904{padding-top:6px;height:auto}}@media (max-device-width:459px){.calendarsInline_daee6904 .monthPicker_daee6904,.calendarsInline_daee6904 .yearPicker_daee6904{display:none}.yearComponents_daee6904{margin-top:2px}}.goToday_daee6904{width:auto}.closeButton_daee6904,.nextDecade_daee6904,.nextMonth_daee6904,.nextYear_daee6904,.prevDecade_daee6904,.prevMonth_daee6904,.prevYear_daee6904{display:inline-block}.closeButton_daee6904:hover,.nextDecade_daee6904:hover,.nextMonth_daee6904:hover,.nextYear_daee6904:hover,.prevDecade_daee6904:hover,.prevMonth_daee6904:hover,.prevYear_daee6904:hover{background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.closeButton_daee6904:hover,.nextDecade_daee6904:hover,.nextMonth_daee6904:hover,.nextYear_daee6904:hover,.prevDecade_daee6904:hover,.prevMonth_daee6904:hover,.prevYear_daee6904:hover{outline:1px solid Highlight}}.closeButton_daee6904:active,.nextDecade_daee6904:active,.nextMonth_daee6904:active,.nextYear_daee6904:active,.prevDecade_daee6904:active,.prevMonth_daee6904:active,.prevYear_daee6904:active{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.closeButton_daee6904:active,.nextDecade_daee6904:active,.nextMonth_daee6904:active,.nextYear_daee6904:active,.prevDecade_daee6904:active,.prevMonth_daee6904:active,.prevYear_daee6904:active{color:highlight}}.monthIsHighlighted_daee6904{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.monthIsHighlighted_daee6904.monthOption_daee6904:hover{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.monthIsHighlighted_daee6904{color:highlight;border:2px solid highlight;border-radius:2px}.monthIsHighlighted_daee6904:hover{outline:0!important}}.monthIsCurrentMonth_daee6904{color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.monthIsCurrentMonth_daee6904.monthOption_daee6904:hover{color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.monthOption_daee6904:active{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.yearIsHighlighted_daee6904{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.yearIsHighlighted_daee6904.yearOption_daee6904:hover{background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.yearIsCurrentYear_daee6904{color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.yearIsCurrentYear_daee6904.yearOption_daee6904:hover{color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \";background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.yearOption_daee6904:active{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.topLeftCornerDate_daee6904{border-top-left-radius:2px}.topRightCornerDate_daee6904{border-top-right-radius:2px}.bottomLeftCornerDate_daee6904{border-bottom-left-radius:2px}.bottomRightCornerDate_daee6904{border-bottom-right-radius:2px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.weekBackground_daee6904{border-top:1px solid highlight;border-bottom:1px solid highlight}.weekBackground_daee6904.bottomRightCornerDate_daee6904.topRightCornerDate_daee6904{border-right:1px solid highlight;border-left:none;padding-left:1px}.weekBackground_daee6904.bottomLeftCornerDate_daee6904.topLeftCornerDate_daee6904{border-left:1px solid highlight;border-right:none;padding-right:1px}.weekBackground_daee6904 :not(.dayIsToday_daee6904) span{color:highlight}.weekSelection_daee6904.dayHover_daee6904{border-top:1px solid highlight;border-bottom:1px solid highlight}.weekSelection_daee6904.dayHover_daee6904.bottomLeftCornerDate_daee6904.topLeftCornerDate_daee6904{border-left:1px solid highlight;padding-right:1px}.weekSelection_daee6904.dayHover_daee6904.bottomRightCornerDate_daee6904.topRightCornerDate_daee6904{border-right:1px solid highlight;padding-left:1px}.weekSelection_daee6904.dayHover_daee6904.dayPress_daee6904 :not(.dayIsToday_daee6904) span{color:highlight}.monthSelection_daee6904.dayHover_daee6904.bottomLeftCornerDate_daee6904,.monthSelection_daee6904.dayHover_daee6904.topLeftCornerDate_daee6904{border-left:1px solid highlight;padding-right:1px}.monthSelection_daee6904.dayHover_daee6904.bottomRightCornerDate_daee6904,.monthSelection_daee6904.dayHover_daee6904.topRightCornerDate_daee6904{border-right:1px solid highlight;padding-left:1px}.monthSelection_daee6904.dayIsFocused_daee6904.dayHover_daee6904.topDate_daee6904,.monthSelection_daee6904.dayIsUnfocused_daee6904.dayHover_daee6904.topDate_daee6904{border-top:1px solid highlight;padding-bottom:1px}.monthSelection_daee6904.dayIsFocused_daee6904.dayHover_daee6904.rightDate_daee6904,.monthSelection_daee6904.dayIsUnfocused_daee6904.dayHover_daee6904.rightDate_daee6904{border-right:1px solid highlight;padding-left:1px}.monthSelection_daee6904.dayIsFocused_daee6904.dayHover_daee6904.bottomDate_daee6904,.monthSelection_daee6904.dayIsUnfocused_daee6904.dayHover_daee6904.bottomDate_daee6904{border-bottom:1px solid highlight;padding-top:1px}.monthSelection_daee6904.dayIsFocused_daee6904.dayHover_daee6904.leftdate_daee6904,.monthSelection_daee6904.dayIsUnfocused_daee6904.dayHover_daee6904.leftdate_daee6904{border-left:1px solid highlight;padding-right:1px}.monthSelection_daee6904.dayIsFocused_daee6904.dayHover_daee6904.dayPress_daee6904 :not(.dayIsToday_daee6904) span,.monthSelection_daee6904.dayIsUnfocused_daee6904.dayHover_daee6904.dayPress_daee6904 :not(.dayIsToday_daee6904) span{color:highlight}}\" }]);\nexport var root = \"root_daee6904\";\nexport var picker = \"picker_daee6904\";\nexport var holder = \"holder_daee6904\";\nexport var pickerIsOpened = \"pickerIsOpened_daee6904\";\nexport var frame = \"frame_daee6904\";\nexport var wrap = \"wrap_daee6904\";\nexport var goTodaySpacing = \"goTodaySpacing_daee6904\";\nexport var dayPicker = \"dayPicker_daee6904\";\nexport var header = \"header_daee6904\";\nexport var divider = \"divider_daee6904\";\nexport var monthAndYear = \"monthAndYear_daee6904\";\nexport var year = \"year_daee6904\";\nexport var decade = \"decade_daee6904\";\nexport var currentYear = \"currentYear_daee6904\";\nexport var currentDecade = \"currentDecade_daee6904\";\nexport var table = \"table_daee6904\";\nexport var dayWrapper = \"dayWrapper_daee6904\";\nexport var weekday = \"weekday_daee6904\";\nexport var day = \"day_daee6904\";\nexport var daySelection = \"daySelection_daee6904\";\nexport var dayIsToday = \"dayIsToday_daee6904\";\nexport var dayIsDisabled = \"dayIsDisabled_daee6904\";\nexport var dayIsUnfocused = \"dayIsUnfocused_daee6904\";\nexport var dayIsFocused = \"dayIsFocused_daee6904\";\nexport var dayIsHighlighted = \"dayIsHighlighted_daee6904\";\nexport var pickerIsFocused = \"pickerIsFocused_daee6904\";\nexport var dayDisabled = \"dayDisabled_daee6904\";\nexport var dayBackground = \"dayBackground_daee6904\";\nexport var dayHover = \"dayHover_daee6904\";\nexport var dayPress = \"dayPress_daee6904\";\nexport var weekBackground = \"weekBackground_daee6904\";\nexport var showWeekNumbers = \"showWeekNumbers_daee6904\";\nexport var weekNumbers = \"weekNumbers_daee6904\";\nexport var weekIsHighlighted = \"weekIsHighlighted_daee6904\";\nexport var showWeekNumbersRTL = \"showWeekNumbersRTL_daee6904\";\nexport var monthComponents = \"monthComponents_daee6904\";\nexport var yearComponents = \"yearComponents_daee6904\";\nexport var decadeComponents = \"decadeComponents_daee6904\";\nexport var closeButton = \"closeButton_daee6904\";\nexport var prevMonth = \"prevMonth_daee6904\";\nexport var nextMonth = \"nextMonth_daee6904\";\nexport var prevYear = \"prevYear_daee6904\";\nexport var nextYear = \"nextYear_daee6904\";\nexport var prevDecade = \"prevDecade_daee6904\";\nexport var nextDecade = \"nextDecade_daee6904\";\nexport var prevMonthIsDisabled = \"prevMonthIsDisabled_daee6904\";\nexport var nextMonthIsDisabled = \"nextMonthIsDisabled_daee6904\";\nexport var prevYearIsDisabled = \"prevYearIsDisabled_daee6904\";\nexport var nextYearIsDisabled = \"nextYearIsDisabled_daee6904\";\nexport var prevDecadeIsDisabled = \"prevDecadeIsDisabled_daee6904\";\nexport var nextDecadeIsDisabled = \"nextDecadeIsDisabled_daee6904\";\nexport var headerToggleView = \"headerToggleView_daee6904\";\nexport var optionGrid = \"optionGrid_daee6904\";\nexport var monthOption = \"monthOption_daee6904\";\nexport var yearOption = \"yearOption_daee6904\";\nexport var isHighlighted = \"isHighlighted_daee6904\";\nexport var monthOptionIsDisabled = \"monthOptionIsDisabled_daee6904\";\nexport var yearOptionIsDisabled = \"yearOptionIsDisabled_daee6904\";\nexport var goToday = \"goToday_daee6904\";\nexport var goToTodayIsDisabled = \"goToTodayIsDisabled_daee6904\";\nexport var goTodayInlineMonth = \"goTodayInlineMonth_daee6904\";\nexport var isPickingYears = \"isPickingYears_daee6904\";\nexport var monthPicker = \"monthPicker_daee6904\";\nexport var yearPicker = \"yearPicker_daee6904\";\nexport var monthPickerVisible = \"monthPickerVisible_daee6904\";\nexport var toggleMonthView = \"toggleMonthView_daee6904\";\nexport var calendarsInline = \"calendarsInline_daee6904\";\nexport var monthPickerOnly = \"monthPickerOnly_daee6904\";\nexport var monthPickerAsOverlay = \"monthPickerAsOverlay_daee6904\";\nexport var holderWithButton = \"holderWithButton_daee6904\";\nexport var monthIsHighlighted = \"monthIsHighlighted_daee6904\";\nexport var monthIsCurrentMonth = \"monthIsCurrentMonth_daee6904\";\nexport var yearIsHighlighted = \"yearIsHighlighted_daee6904\";\nexport var yearIsCurrentYear = \"yearIsCurrentYear_daee6904\";\nexport var topLeftCornerDate = \"topLeftCornerDate_daee6904\";\nexport var topRightCornerDate = \"topRightCornerDate_daee6904\";\nexport var bottomLeftCornerDate = \"bottomLeftCornerDate_daee6904\";\nexport var bottomRightCornerDate = \"bottomRightCornerDate_daee6904\";\nexport var weekSelection = \"weekSelection_daee6904\";\nexport var monthSelection = \"monthSelection_daee6904\";\nexport var topDate = \"topDate_daee6904\";\nexport var rightDate = \"rightDate_daee6904\";\nexport var bottomDate = \"bottomDate_daee6904\";\nexport var leftdate = \"leftdate_daee6904\";\n//# sourceMappingURL=Calendar.scss.js.map","import { __extends, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, getId, getRTL, getRTLSafeKeyCode, format, findIndex, find, initializeComponentRef, } from '../../Utilities';\nimport { DateRangeType } from '../../utilities/dateValues/DateValues';\nimport { FocusZone } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { addDays, addWeeks, addMonths, compareDates, compareDatePart, getDateRangeArray, isInDateRangeArray, getWeekNumber, getWeekNumbersInMonth, getMonthStart, getMonthEnd, } from '../../utilities/dateMath/DateMath';\nimport * as stylesImport from './Calendar.scss';\nvar styles = stylesImport;\nvar DAYS_IN_WEEK = 7;\nvar CalendarDay = /** @class */ (function (_super) {\n __extends(CalendarDay, _super);\n function CalendarDay(props) {\n var _this = _super.call(this, props) || this;\n _this.days = {};\n _this._onKeyDown = function (callback, ev) {\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n callback();\n }\n };\n _this._onDayKeyDown = function (originalDate, weekIndex, dayIndex) {\n return function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onSelectDate(originalDate, ev);\n ev.preventDefault();\n }\n else {\n _this._navigateMonthEdge(ev, originalDate, weekIndex, dayIndex);\n }\n };\n };\n _this._onDayMouseDown = function (originalDate, weekIndex, dayIndex, dateRangeType) {\n return function (ev) {\n // set the press styling\n if (dateRangeType === DateRangeType.Month) {\n _this._applyFunctionToDayRefs(function (ref, day) {\n if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {\n ref.classList.add(styles.dayPress);\n }\n });\n }\n else {\n // week or work week view\n _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {\n if (ref && dayWeekIndex === weekIndex && day.isInBounds) {\n ref.classList.add(styles.dayPress);\n ref.classList.add(styles.dayIsHighlighted);\n }\n else if (ref) {\n ref.classList.remove(styles.dayIsHighlighted);\n }\n });\n }\n };\n };\n _this._onDayMouseUp = function (originalDate, weekIndex, dayIndex, dateRangeType) {\n return function (ev) {\n // remove press styling\n if (dateRangeType === DateRangeType.Month) {\n _this._applyFunctionToDayRefs(function (ref, day) {\n if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {\n ref.classList.remove(styles.dayPress);\n }\n });\n }\n else {\n // week or work week view\n _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {\n if (ref && dayWeekIndex === weekIndex && day.isInBounds) {\n ref.classList.remove(styles.dayPress);\n }\n });\n }\n };\n };\n _this._onDayMouseOver = function (originalDate, weekIndex, dayIndex, dateRangeType) {\n return function (ev) {\n // set the hover styling on every day in the same month\n if (dateRangeType === DateRangeType.Month) {\n _this._applyFunctionToDayRefs(function (ref, day) {\n if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {\n ref.classList.add(styles.dayHover);\n }\n });\n }\n else {\n // week or work week view\n _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {\n if (ref && dayWeekIndex === weekIndex && day.isInBounds) {\n ref.classList.add(styles.dayHover);\n }\n });\n }\n };\n };\n _this._onDayMouseLeave = function (originalDate, weekIndex, dayIndex, dateRangeType) {\n return function (ev) {\n // remove the hover and pressed styling\n if (dateRangeType === DateRangeType.Month) {\n _this._applyFunctionToDayRefs(function (ref, day) {\n if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {\n ref.classList.remove(styles.dayHover);\n }\n });\n }\n else {\n // week or work week view\n _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {\n if (ref && dayWeekIndex === weekIndex && day.isInBounds) {\n ref.classList.remove(styles.dayHover);\n }\n });\n }\n };\n };\n _this._onTableMouseLeave = function (ev) {\n if (ev.target.contains &&\n ev.relatedTarget &&\n ev.relatedTarget.contains &&\n ev.target.contains(ev.relatedTarget)) {\n return;\n }\n _this._applyFunctionToDayRefs(function (ref, day) {\n if (ref) {\n ref.classList.remove(styles.dayHover);\n ref.classList.remove(styles.dayPress);\n }\n });\n };\n _this._onTableMouseUp = function (ev) {\n if (ev.target.contains &&\n ev.relatedTarget &&\n ev.relatedTarget.contains &&\n ev.target.contains(ev.relatedTarget)) {\n return;\n }\n _this._applyFunctionToDayRefs(function (ref, day) {\n if (ref) {\n ref.classList.remove(styles.dayPress);\n }\n });\n };\n _this._onSelectDate = function (selectedDate, ev) {\n var _a = _this.props, onSelectDate = _a.onSelectDate, dateRangeType = _a.dateRangeType, firstDayOfWeek = _a.firstDayOfWeek, navigatedDate = _a.navigatedDate, autoNavigateOnSelection = _a.autoNavigateOnSelection, minDate = _a.minDate, maxDate = _a.maxDate, workWeekDays = _a.workWeekDays;\n if (ev) {\n ev.stopPropagation();\n }\n var dateRange = getDateRangeArray(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays);\n if (dateRangeType !== DateRangeType.Day) {\n dateRange = _this._getBoundedDateRange(dateRange, minDate, maxDate);\n }\n dateRange = dateRange.filter(function (d) {\n return !_this._getIsRestrictedDate(d);\n });\n if (onSelectDate) {\n onSelectDate(selectedDate, dateRange);\n }\n // Navigate to next or previous month if needed\n if (autoNavigateOnSelection && selectedDate.getMonth() !== navigatedDate.getMonth()) {\n var compareResult = compareDatePart(selectedDate, navigatedDate);\n if (compareResult < 0) {\n _this._onSelectPrevMonth();\n }\n else if (compareResult > 0) {\n _this._onSelectNextMonth();\n }\n }\n };\n _this._onSelectNextMonth = function () {\n _this.props.onNavigateDate(addMonths(_this.props.navigatedDate, 1), false);\n };\n _this._onSelectPrevMonth = function () {\n _this.props.onNavigateDate(addMonths(_this.props.navigatedDate, -1), false);\n };\n _this._onClose = function () {\n if (_this.props.onDismiss) {\n _this.props.onDismiss();\n }\n };\n _this._onHeaderSelect = function () {\n var onHeaderSelect = _this.props.onHeaderSelect;\n if (onHeaderSelect) {\n onHeaderSelect(true);\n }\n };\n _this._onHeaderKeyDown = function (ev) {\n var onHeaderSelect = _this.props.onHeaderSelect;\n if (onHeaderSelect && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n onHeaderSelect(true);\n }\n };\n _this._onPrevMonthKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onKeyDown(_this._onSelectPrevMonth, ev);\n }\n };\n _this._onNextMonthKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onKeyDown(_this._onSelectNextMonth, ev);\n }\n };\n _this._onCloseButtonKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onKeyDown(_this._onClose, ev);\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n activeDescendantId: getId('DatePickerDay-active'),\n weeks: _this._getWeeks(props),\n };\n _this._onSelectNextMonth = _this._onSelectNextMonth.bind(_this);\n _this._onSelectPrevMonth = _this._onSelectPrevMonth.bind(_this);\n _this._onClose = _this._onClose.bind(_this);\n return _this;\n }\n CalendarDay.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n this.setState({\n weeks: this._getWeeks(nextProps),\n });\n };\n CalendarDay.prototype.render = function () {\n var _a, _b;\n var _this = this;\n var _c = this.state, activeDescendantId = _c.activeDescendantId, weeks = _c.weeks;\n var _d = this.props, firstDayOfWeek = _d.firstDayOfWeek, strings = _d.strings, navigatedDate = _d.navigatedDate, selectedDate = _d.selectedDate, dateRangeType = _d.dateRangeType, navigationIcons = _d.navigationIcons, showWeekNumbers = _d.showWeekNumbers, firstWeekOfYear = _d.firstWeekOfYear, dateTimeFormatter = _d.dateTimeFormatter, minDate = _d.minDate, maxDate = _d.maxDate, showCloseButton = _d.showCloseButton, allFocusable = _d.allFocusable;\n var dayPickerId = getId('DatePickerDay-dayPicker');\n var monthAndYearId = getId('DatePickerDay-monthAndYear');\n var leftNavigationIcon = navigationIcons.leftNavigation;\n var rightNavigationIcon = navigationIcons.rightNavigation;\n var closeNavigationIcon = navigationIcons.closeIcon;\n var weekNumbers = showWeekNumbers\n ? getWeekNumbersInMonth(weeks.length, firstDayOfWeek, firstWeekOfYear, navigatedDate)\n : null;\n var selectedDateWeekNumber = showWeekNumbers\n ? getWeekNumber(selectedDate, firstDayOfWeek, firstWeekOfYear)\n : undefined;\n // When the month is highlighted get the corner dates so that styles can be added to them\n var weekCorners = this._getWeekCornerStyles(weeks, dateRangeType);\n // determine if previous/next months are in bounds\n var prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n var nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n return (React.createElement(\"div\", { className: css('ms-DatePicker-dayPicker', styles.dayPicker, showWeekNumbers &&\n 'ms-DatePicker-showWeekNumbers' &&\n (getRTL() ? styles.showWeekNumbersRTL : styles.showWeekNumbers)), id: dayPickerId },\n React.createElement(\"div\", { className: css('ms-DatePicker-header', styles.header) },\n React.createElement(\"div\", { \"aria-live\": \"polite\", \"aria-relevant\": \"text\", \"aria-atomic\": \"true\", id: monthAndYearId, className: styles.monthAndYear }, this.props.onHeaderSelect ? (React.createElement(\"div\", { className: css('ms-DatePicker-monthAndYear js-showMonthPicker', styles.headerToggleView), onClick: this._onHeaderSelect, onKeyDown: this._onHeaderKeyDown, \"aria-label\": dateTimeFormatter.formatMonthYear(navigatedDate, strings), role: \"button\", tabIndex: 0 }, dateTimeFormatter.formatMonthYear(navigatedDate, strings))) : (React.createElement(\"div\", { className: css('ms-DatePicker-monthAndYear', styles.monthAndYear) }, dateTimeFormatter.formatMonthYear(navigatedDate, strings)))),\n React.createElement(\"div\", { className: css('ms-DatePicker-monthComponents', styles.monthComponents) },\n React.createElement(\"div\", { className: css('ms-DatePicker-navContainer', styles.navContainer) },\n React.createElement(\"button\", { className: css('ms-DatePicker-prevMonth js-prevMonth', styles.prevMonth, (_a = {},\n _a['ms-DatePicker-prevMonth--disabled ' + styles.prevMonthIsDisabled] = !prevMonthInBounds,\n _a)), disabled: !allFocusable && !prevMonthInBounds, \"aria-disabled\": !prevMonthInBounds, onClick: prevMonthInBounds ? this._onSelectPrevMonth : undefined, onKeyDown: prevMonthInBounds ? this._onPrevMonthKeyDown : undefined, \"aria-controls\": dayPickerId, title: strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined, role: \"button\", type: \"button\" },\n React.createElement(Icon, { iconName: leftNavigationIcon })),\n React.createElement(\"button\", { className: css('ms-DatePicker-nextMonth js-nextMonth', styles.nextMonth, (_b = {},\n _b['ms-DatePicker-nextMonth--disabled ' + styles.nextMonthIsDisabled] = !nextMonthInBounds,\n _b)), disabled: !allFocusable && !nextMonthInBounds, \"aria-disabled\": !nextMonthInBounds, onClick: nextMonthInBounds ? this._onSelectNextMonth : undefined, onKeyDown: nextMonthInBounds ? this._onNextMonthKeyDown : undefined, \"aria-controls\": dayPickerId, title: strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined, role: \"button\", type: \"button\" },\n React.createElement(Icon, { iconName: rightNavigationIcon })),\n showCloseButton && (React.createElement(\"button\", { className: css('ms-DatePicker-closeButton js-closeButton', styles.closeButton), onClick: this._onClose, onKeyDown: this._onCloseButtonKeyDown, title: strings.closeButtonAriaLabel, role: \"button\", type: \"button\" },\n React.createElement(Icon, { iconName: closeNavigationIcon })))))),\n React.createElement(FocusZone, null,\n React.createElement(\"table\", { className: css('ms-DatePicker-table', styles.table), \"aria-multiselectable\": \"false\", \"aria-labelledby\": monthAndYearId, \"aria-activedescendant\": activeDescendantId, role: \"grid\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", null,\n showWeekNumbers && React.createElement(\"th\", { className: css('ms-DatePicker-weekday', styles.weekday) }),\n strings.shortDays.map(function (val, index) { return (React.createElement(\"th\", { className: css('ms-DatePicker-weekday', styles.weekday), role: \"columnheader\", scope: \"col\", key: index, title: strings.days[(index + firstDayOfWeek) % DAYS_IN_WEEK], \"aria-label\": strings.days[(index + firstDayOfWeek) % DAYS_IN_WEEK], \"data-is-focusable\": allFocusable ? true : undefined }, strings.shortDays[(index + firstDayOfWeek) % DAYS_IN_WEEK])); }))),\n React.createElement(\"tbody\", { onMouseLeave: dateRangeType !== DateRangeType.Day ? this._onTableMouseLeave : undefined, onMouseUp: dateRangeType !== DateRangeType.Day ? this._onTableMouseUp : undefined }, weeks.map(function (week, weekIndex) {\n var _a;\n return (React.createElement(\"tr\", { key: weekNumbers ? weekNumbers[weekIndex] : weekIndex },\n showWeekNumbers && weekNumbers && (React.createElement(\"th\", { className: css('ms-DatePicker-weekNumbers', 'ms-DatePicker-weekday', styles.weekday, styles.weekNumbers), key: weekIndex, title: weekNumbers &&\n strings.weekNumberFormatString &&\n format(strings.weekNumberFormatString, weekNumbers[weekIndex]), \"aria-label\": weekNumbers &&\n strings.weekNumberFormatString &&\n format(strings.weekNumberFormatString, weekNumbers[weekIndex]), scope: \"row\" },\n React.createElement(\"div\", { className: css('ms-DatePicker-day', styles.day, (_a = {},\n _a['ms-DatePicker-week--highlighted ' + styles.weekIsHighlighted] = selectedDateWeekNumber === weekNumbers[weekIndex],\n _a)) },\n React.createElement(\"span\", null, weekNumbers[weekIndex])))),\n week.map(function (day, dayIndex) {\n var _a, _b;\n var isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n return (React.createElement(\"td\", { key: day.key, onClick: day.isInBounds ? day.onSelected : undefined, className: css(styles.dayWrapper, 'ms-DatePicker-day', _this._getHighlightedCornerStyle(weekCorners, dayIndex, weekIndex), (_a = {},\n _a['ms-DatePicker-weekBackground ' + styles.weekBackground] = day.isSelected &&\n (dateRangeType === DateRangeType.Week || dateRangeType === DateRangeType.WorkWeek),\n _a['ms-DatePicker-dayBackground ' + styles.dayBackground] = dateRangeType === DateRangeType.Day,\n _a['ms-DatePicker-day--highlighted ' + styles.dayIsHighlighted] = day.isSelected && dateRangeType === DateRangeType.Day,\n _a['ms-DatePicker-day--infocus ' + styles.dayIsFocused] = day.isInBounds && day.isInMonth,\n _a['ms-DatePicker-day--outfocus ' + styles.dayIsUnfocused] = day.isInBounds && !day.isInMonth,\n _a[styles.daySelection] = dateRangeType === DateRangeType.Day,\n _a[styles.weekSelection] = dateRangeType === DateRangeType.Week || dateRangeType === DateRangeType.WorkWeek,\n _a[styles.monthSelection] = dateRangeType === DateRangeType.Month,\n _a)), ref: function (element) { return _this._setDayCellRef(element, day, isNavigatedDate); }, onKeyDown: _this._onDayKeyDown(day.originalDate, weekIndex, dayIndex), onMouseOver: dateRangeType !== DateRangeType.Day && day.isInBounds\n ? _this._onDayMouseOver(day.originalDate, weekIndex, dayIndex, dateRangeType)\n : undefined, onMouseLeave: dateRangeType !== DateRangeType.Day && day.isInBounds\n ? _this._onDayMouseLeave(day.originalDate, weekIndex, dayIndex, dateRangeType)\n : undefined, onMouseDown: dateRangeType !== DateRangeType.Day && day.isInBounds\n ? _this._onDayMouseDown(day.originalDate, weekIndex, dayIndex, dateRangeType)\n : undefined, onMouseUp: dateRangeType !== DateRangeType.Day && day.isInBounds\n ? _this._onDayMouseUp(day.originalDate, weekIndex, dayIndex, dateRangeType)\n : undefined, role: 'gridcell', \"data-is-focusable\": allFocusable || (day.isInBounds ? true : undefined), \"aria-disabled\": !day.isInBounds, \"aria-current\": day.isToday ? 'date' : undefined, \"aria-selected\": day.isInBounds ? day.isSelected : undefined },\n React.createElement(\"button\", { key: day.key + 'button', onClick: day.isInBounds ? day.onSelected : undefined, className: css(styles.day, 'ms-DatePicker-day-button', (_b = {},\n _b['ms-DatePicker-day--disabled ' + styles.dayIsDisabled] = !day.isInBounds,\n _b['ms-DatePicker-day--today ' + styles.dayIsToday] = day.isToday,\n _b)), \"aria-label\": dateTimeFormatter.formatMonthDayYear(day.originalDate, strings), id: isNavigatedDate ? activeDescendantId : undefined, \"data-is-focusable\": false, disabled: !allFocusable && !day.isInBounds, \"aria-disabled\": !day.isInBounds, tabIndex: -1, type: \"button\" },\n React.createElement(\"span\", { \"aria-hidden\": \"true\" }, dateTimeFormatter.formatDay(day.originalDate)))));\n })));\n }))))));\n };\n CalendarDay.prototype.focus = function () {\n if (this.navigatedDay) {\n this.navigatedDay.tabIndex = 0;\n this.navigatedDay.focus();\n }\n };\n CalendarDay.prototype._setDayCellRef = function (element, day, isNavigatedDate) {\n this.days[day.key] = element;\n if (isNavigatedDate) {\n this.navigatedDay = element;\n }\n };\n CalendarDay.prototype._getWeekCornerStyles = function (weeks, dateRangeType) {\n var _this = this;\n var weekCornersStyled = {};\n switch (dateRangeType) {\n case DateRangeType.Month:\n /* need to handle setting all of the corners on arbitrarily shaped blobs\n __\n __|A |\n |B |C |__\n |D |E |F |\n \n in this case, A needs top left rounded, top right rounded\n B needs top left rounded\n C doesn't need any rounding\n D needs bottom left rounded\n E doesn't need any rounding\n F needs top right rounding\n */\n // if there's an item above, lose both top corners. Item below, lose both bottom corners, etc.\n weeks.forEach(function (week, weekIndex) {\n week.forEach(function (day, dayIndex) {\n var above = weeks[weekIndex - 1] &&\n weeks[weekIndex - 1][dayIndex] &&\n weeks[weekIndex - 1][dayIndex].originalDate.getMonth() ===\n weeks[weekIndex][dayIndex].originalDate.getMonth();\n var below = weeks[weekIndex + 1] &&\n weeks[weekIndex + 1][dayIndex] &&\n weeks[weekIndex + 1][dayIndex].originalDate.getMonth() ===\n weeks[weekIndex][dayIndex].originalDate.getMonth();\n var left = weeks[weekIndex][dayIndex - 1] &&\n weeks[weekIndex][dayIndex - 1].originalDate.getMonth() ===\n weeks[weekIndex][dayIndex].originalDate.getMonth();\n var right = weeks[weekIndex][dayIndex + 1] &&\n weeks[weekIndex][dayIndex + 1].originalDate.getMonth() ===\n weeks[weekIndex][dayIndex].originalDate.getMonth();\n var roundedTopLeft = !above && !left;\n var roundedTopRight = !above && !right;\n var roundedBottomLeft = !below && !left;\n var roundedBottomRight = !below && !right;\n var style = '';\n if (roundedTopLeft) {\n style = getRTL()\n ? style.concat(styles.topRightCornerDate + ' ')\n : style.concat(styles.topLeftCornerDate + ' ');\n }\n if (roundedTopRight) {\n style = getRTL()\n ? style.concat(styles.topLeftCornerDate + ' ')\n : style.concat(styles.topRightCornerDate + ' ');\n }\n if (roundedBottomLeft) {\n style = getRTL()\n ? style.concat(styles.bottomRightCornerDate + ' ')\n : style.concat(styles.bottomLeftCornerDate + ' ');\n }\n if (roundedBottomRight) {\n style = getRTL()\n ? style.concat(styles.bottomLeftCornerDate + ' ')\n : style.concat(styles.bottomRightCornerDate + ' ');\n }\n if (!above) {\n style = style.concat(styles.topDate + ' ');\n }\n if (!below) {\n style = style.concat(styles.bottomDate + ' ');\n }\n if (!right) {\n style = style.concat(styles.rightDate + ' ');\n }\n if (!left) {\n style = style.concat(styles.leftdate + ' ');\n }\n weekCornersStyled[weekIndex + '_' + dayIndex] = style;\n });\n });\n break;\n case DateRangeType.Week:\n case DateRangeType.WorkWeek:\n weeks.forEach(function (week, weekIndex) {\n var minIndex = findIndex(week, function (item) {\n return item.isInBounds;\n });\n var maxIndex = _this._findLastIndex(week, function (item) {\n return item.isInBounds;\n });\n var leftStyle = styles.topLeftCornerDate + ' ' + styles.bottomLeftCornerDate;\n var rightStyle = styles.topRightCornerDate + ' ' + styles.bottomRightCornerDate;\n weekCornersStyled[weekIndex + '_' + minIndex] = getRTL() ? rightStyle : leftStyle;\n weekCornersStyled[weekIndex + '_' + maxIndex] = getRTL() ? leftStyle : rightStyle;\n });\n break;\n }\n return weekCornersStyled;\n };\n CalendarDay.prototype._getHighlightedCornerStyle = function (weekCorners, dayIndex, weekIndex) {\n var cornerStyle = weekCorners[weekIndex + '_' + dayIndex] ? weekCorners[weekIndex + '_' + dayIndex] : '';\n return cornerStyle;\n };\n CalendarDay.prototype._navigateMonthEdge = function (ev, date, weekIndex, dayIndex) {\n var _a = this.props, minDate = _a.minDate, maxDate = _a.maxDate;\n var targetDate = undefined;\n if (weekIndex === 0 && ev.which === KeyCodes.up) {\n targetDate = addWeeks(date, -1);\n }\n else if (weekIndex === this.state.weeks.length - 1 && ev.which === KeyCodes.down) {\n targetDate = addWeeks(date, 1);\n }\n else if (dayIndex === 0 && ev.which === getRTLSafeKeyCode(KeyCodes.left)) {\n targetDate = addDays(date, -1);\n }\n else if (dayIndex === DAYS_IN_WEEK - 1 && ev.which === getRTLSafeKeyCode(KeyCodes.right)) {\n targetDate = addDays(date, 1);\n }\n // Don't navigate to out-of-bounds date\n if (targetDate &&\n (minDate ? compareDatePart(minDate, targetDate) < 1 : true) &&\n (maxDate ? compareDatePart(targetDate, maxDate) < 1 : true)) {\n this.props.onNavigateDate(targetDate, true);\n ev.preventDefault();\n }\n };\n CalendarDay.prototype._applyFunctionToDayRefs = function (func) {\n var _this = this;\n if (this.state.weeks) {\n this.state.weeks.forEach(function (week, weekIndex) {\n week.forEach(function (day) {\n var ref = _this.days[day.key];\n func(ref, day, weekIndex);\n });\n });\n }\n };\n CalendarDay.prototype._getWeeks = function (propsToUse) {\n var navigatedDate = propsToUse.navigatedDate, selectedDate = propsToUse.selectedDate, dateRangeType = propsToUse.dateRangeType, firstDayOfWeek = propsToUse.firstDayOfWeek, today = propsToUse.today, minDate = propsToUse.minDate, maxDate = propsToUse.maxDate, showSixWeeksByDefault = propsToUse.showSixWeeksByDefault, workWeekDays = propsToUse.workWeekDays;\n var date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);\n var todaysDate = today || new Date();\n var weeks = [];\n // Cycle the date backwards to get to the first day of the week.\n while (date.getDay() !== firstDayOfWeek) {\n date.setDate(date.getDate() - 1);\n }\n // a flag to indicate whether all days of the week are in the month\n var isAllDaysOfWeekOutOfMonth = false;\n // in work week view we want to select the whole week\n var selectedDateRangeType = dateRangeType === DateRangeType.WorkWeek ? DateRangeType.Week : dateRangeType;\n var selectedDates = getDateRangeArray(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays);\n if (dateRangeType !== DateRangeType.Day) {\n selectedDates = this._getBoundedDateRange(selectedDates, minDate, maxDate);\n }\n var shouldGetWeeks = true;\n for (var weekIndex = 0; shouldGetWeeks; weekIndex++) {\n var week = [];\n isAllDaysOfWeekOutOfMonth = true;\n for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n // Casting date parameter as an any to avoid [ object Object ] error.\n var originalDate = new Date(date);\n var dayInfo = {\n key: date.toString(),\n date: date.getDate().toString(),\n originalDate: originalDate,\n isInMonth: date.getMonth() === navigatedDate.getMonth(),\n isToday: compareDates(todaysDate, date),\n isSelected: isInDateRangeArray(date, selectedDates),\n onSelected: this._onSelectDate.bind(this, originalDate),\n isInBounds: (minDate ? compareDatePart(minDate, date) < 1 : true) &&\n (maxDate ? compareDatePart(date, maxDate) < 1 : true) &&\n !this._getIsRestrictedDate(date),\n };\n week.push(dayInfo);\n if (dayInfo.isInMonth) {\n isAllDaysOfWeekOutOfMonth = false;\n }\n date.setDate(date.getDate() + 1);\n }\n // We append the condition of the loop depending upon the showSixWeeksByDefault prop.\n shouldGetWeeks = showSixWeeksByDefault\n ? !isAllDaysOfWeekOutOfMonth || weekIndex <= 5\n : !isAllDaysOfWeekOutOfMonth;\n if (shouldGetWeeks) {\n weeks.push(week);\n }\n }\n return weeks;\n };\n CalendarDay.prototype._getIsRestrictedDate = function (date) {\n var restrictedDates = this.props.restrictedDates;\n if (!restrictedDates) {\n return false;\n }\n var restrictedDate = find(restrictedDates, function (rd) {\n return compareDates(rd, date);\n });\n return restrictedDate ? true : false;\n };\n CalendarDay.prototype._getBoundedDateRange = function (dateRange, minDate, maxDate) {\n var boundedDateRange = __spreadArrays(dateRange);\n if (minDate) {\n boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, minDate) >= 0; });\n }\n if (maxDate) {\n boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, maxDate) <= 0; });\n }\n return boundedDateRange;\n };\n /**\n * Returns the index of the last element in the array where the predicate is true, and -1\n * otherwise\n * @param items Array of items to be iterated over using the predicate\n * @param predicate find calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true if such an element is found.\n */\n CalendarDay.prototype._findLastIndex = function (items, predicate) {\n for (var i = items.length - 1; i >= 0; i--) {\n var item = items[i];\n if (predicate(item)) {\n return i;\n }\n }\n return -1;\n };\n return CalendarDay;\n}(React.Component));\nexport { CalendarDay };\n//# sourceMappingURL=CalendarDay.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, getRTL, format } from '../../Utilities';\nimport { FocusZone } from '../../FocusZone';\nimport * as stylesImport from './Calendar.scss';\nimport { Icon } from '../../Icon';\nvar styles = stylesImport;\nvar CELL_COUNT = 12;\nvar DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\nvar DefaultNavigationIcons = {\n leftNavigation: 'Up',\n rightNavigation: 'Down',\n closeIcon: 'CalculatorMultiply',\n};\nvar CalendarYearGridCell = /** @class */ (function (_super) {\n __extends(CalendarYearGridCell, _super);\n function CalendarYearGridCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._buttonRef = React.createRef();\n _this._onRenderYear = function () {\n var _a = _this.props, year = _a.year, onRenderYear = _a.onRenderYear;\n if (onRenderYear) {\n return onRenderYear(year);\n }\n return year;\n };\n _this._onClick = function () {\n if (_this.props.onSelectYear) {\n _this.props.onSelectYear(_this.props.year);\n }\n };\n _this._onKeyDown = function (ev) {\n if (_this.props.onSelectYear && ev.which === KeyCodes.enter) {\n _this.props.onSelectYear(_this.props.year);\n }\n };\n return _this;\n }\n CalendarYearGridCell.prototype.focus = function () {\n if (this._buttonRef.current) {\n this._buttonRef.current.focus();\n }\n };\n CalendarYearGridCell.prototype.render = function () {\n var _a;\n var _b = this.props, year = _b.year, selected = _b.selected, disabled = _b.disabled, onSelectYear = _b.onSelectYear;\n return (React.createElement(\"button\", { className: css('ms-DatePicker-yearOption', styles.yearOption, (_a = {},\n _a['ms-DatePicker-day--highlighted ' + styles.yearIsHighlighted] = selected,\n _a['ms-DatePicker-yearOption--disabled ' + styles.yearOptionIsDisabled] = disabled,\n _a)), type: \"button\", role: \"gridcell\", onClick: !disabled && onSelectYear ? this._onClick : undefined, onKeyDown: !disabled && onSelectYear ? this._onKeyDown : undefined, disabled: disabled, \"aria-label\": String(year), \"aria-selected\": selected, ref: this._buttonRef }, this._onRenderYear()));\n };\n return CalendarYearGridCell;\n}(React.Component));\nvar CalendarYearGrid = /** @class */ (function (_super) {\n __extends(CalendarYearGrid, _super);\n function CalendarYearGrid() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._selectedCellRef = React.createRef();\n _this._currentCellRef = React.createRef();\n _this._renderCell = function (year) {\n var selected = year === _this.props.selectedYear;\n var _a = _this.props, minYear = _a.minYear, maxYear = _a.maxYear, onSelectYear = _a.onSelectYear;\n var disabled = (minYear !== undefined && year < minYear) || (maxYear !== undefined && year > maxYear);\n var current = year === new Date().getFullYear();\n return (React.createElement(CalendarYearGridCell, { key: year, year: year, selected: selected, current: current, disabled: disabled, onSelectYear: onSelectYear, ref: selected ? _this._selectedCellRef : current ? _this._currentCellRef : undefined }));\n };\n return _this;\n }\n CalendarYearGrid.prototype.focus = function () {\n if (this._selectedCellRef.current) {\n this._selectedCellRef.current.focus();\n }\n else if (this._currentCellRef.current) {\n this._currentCellRef.current.focus();\n }\n };\n CalendarYearGrid.prototype.render = function () {\n var _a = this.props, fromYear = _a.fromYear, toYear = _a.toYear;\n var year = fromYear;\n var cells = [];\n while (year <= toYear) {\n cells.push(this._renderCell(year));\n year++;\n }\n return (React.createElement(FocusZone, null,\n React.createElement(\"div\", { className: css('ms-DatePicker-optionGrid', styles.optionGrid), role: \"grid\" },\n React.createElement(\"div\", { role: \"row\" }, cells))));\n };\n return CalendarYearGrid;\n}(React.Component));\nvar CalendarYearNavPrev = /** @class */ (function (_super) {\n __extends(CalendarYearNavPrev, _super);\n function CalendarYearNavPrev() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onSelectPrev = function () {\n if (!_this.isDisabled && _this.props.onSelectPrev) {\n _this.props.onSelectPrev();\n }\n };\n _this._onKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onSelectPrev();\n }\n };\n return _this;\n }\n CalendarYearNavPrev.prototype.render = function () {\n var _a;\n var iconStrings = this.props.navigationIcons || DefaultNavigationIcons;\n var strings = this.props.strings || DefaultCalendarYearStrings;\n var prevRangeAriaLabel = strings.prevRangeAriaLabel;\n var prevRange = { fromYear: this.props.fromYear - CELL_COUNT, toYear: this.props.toYear - CELL_COUNT };\n var prevAriaLabel = prevRangeAriaLabel\n ? typeof prevRangeAriaLabel === 'string'\n ? prevRangeAriaLabel\n : prevRangeAriaLabel(prevRange)\n : undefined;\n var disabled = this.isDisabled;\n var onSelectPrev = this.props.onSelectPrev;\n return (React.createElement(\"button\", { className: css('ms-DatePicker-prevDecade', styles.prevDecade, (_a = {},\n _a['ms-DatePicker-prevDecade--disabled ' + styles.prevDecadeIsDisabled] = disabled,\n _a)), onClick: !disabled && onSelectPrev ? this._onSelectPrev : undefined, onKeyDown: !disabled && onSelectPrev ? this._onKeyDown : undefined, type: \"button\", tabIndex: 0, title: prevAriaLabel, disabled: disabled },\n React.createElement(Icon, { iconName: getRTL() ? iconStrings.rightNavigation : iconStrings.leftNavigation })));\n };\n Object.defineProperty(CalendarYearNavPrev.prototype, \"isDisabled\", {\n get: function () {\n var minYear = this.props.minYear;\n return minYear !== undefined && this.props.fromYear < minYear;\n },\n enumerable: true,\n configurable: true\n });\n return CalendarYearNavPrev;\n}(React.Component));\nvar CalendarYearNavNext = /** @class */ (function (_super) {\n __extends(CalendarYearNavNext, _super);\n function CalendarYearNavNext() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onSelectNext = function () {\n if (!_this.isDisabled && _this.props.onSelectNext) {\n _this.props.onSelectNext();\n }\n };\n _this._onKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onSelectNext();\n }\n };\n return _this;\n }\n CalendarYearNavNext.prototype.render = function () {\n var _a;\n var iconStrings = this.props.navigationIcons || DefaultNavigationIcons;\n var strings = this.props.strings || DefaultCalendarYearStrings;\n var nextRangeAriaLabel = strings.nextRangeAriaLabel;\n var nextRange = { fromYear: this.props.fromYear + CELL_COUNT, toYear: this.props.toYear + CELL_COUNT };\n var nextAriaLabel = nextRangeAriaLabel\n ? typeof nextRangeAriaLabel === 'string'\n ? nextRangeAriaLabel\n : nextRangeAriaLabel(nextRange)\n : undefined;\n var onSelectNext = this.props.onSelectNext;\n var disabled = this.isDisabled;\n return (React.createElement(\"button\", { className: css('ms-DatePicker-nextDecade', styles.nextDecade, (_a = {},\n _a['ms-DatePicker-nextDecade--disabled ' + styles.nextDecadeIsDisabled] = disabled,\n _a)), onClick: !disabled && onSelectNext ? this._onSelectNext : undefined, onKeyDown: !disabled && onSelectNext ? this._onKeyDown : undefined, type: \"button\", tabIndex: 0, title: nextAriaLabel, disabled: this.isDisabled },\n React.createElement(Icon, { iconName: getRTL() ? iconStrings.leftNavigation : iconStrings.rightNavigation })));\n };\n Object.defineProperty(CalendarYearNavNext.prototype, \"isDisabled\", {\n get: function () {\n var maxYear = this.props.maxYear;\n return maxYear !== undefined && this.props.fromYear + CELL_COUNT > maxYear;\n },\n enumerable: true,\n configurable: true\n });\n return CalendarYearNavNext;\n}(React.Component));\nvar CalendarYearNav = /** @class */ (function (_super) {\n __extends(CalendarYearNav, _super);\n function CalendarYearNav() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CalendarYearNav.prototype.render = function () {\n return (React.createElement(\"div\", { className: css('ms-DatePicker-decadeComponents', styles.decadeComponents) },\n React.createElement(\"div\", { className: css('ms-DatePicker-navContainer', styles.navContainer) },\n React.createElement(CalendarYearNavPrev, __assign({}, this.props)),\n React.createElement(CalendarYearNavNext, __assign({}, this.props)))));\n };\n return CalendarYearNav;\n}(React.Component));\nvar CalendarYearTitle = /** @class */ (function (_super) {\n __extends(CalendarYearTitle, _super);\n function CalendarYearTitle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onHeaderSelect = function () {\n if (_this.props.onHeaderSelect) {\n _this.props.onHeaderSelect(true);\n }\n };\n _this._onHeaderKeyDown = function (ev) {\n if (_this.props.onHeaderSelect && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n _this.props.onHeaderSelect(true);\n }\n };\n _this._onRenderYear = function (year) {\n if (_this.props.onRenderYear) {\n return _this.props.onRenderYear(year);\n }\n return year;\n };\n return _this;\n }\n CalendarYearTitle.prototype.render = function () {\n var _a = this.props, fromYear = _a.fromYear, toYear = _a.toYear, onHeaderSelect = _a.onHeaderSelect;\n if (onHeaderSelect) {\n var strings = this.props.strings || DefaultCalendarYearStrings;\n var rangeAriaLabel = strings.rangeAriaLabel;\n var currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(this.props)\n : undefined;\n var ariaLabel = strings.headerAriaLabelFormatString\n ? format(strings.headerAriaLabelFormatString, currentDateRange)\n : currentDateRange;\n return (React.createElement(\"div\", { className: css('ms-DatePicker-currentDecade js-showYearPicker', styles.currentDecade, styles.headerToggleView), onClick: this._onHeaderSelect, onKeyDown: this._onHeaderKeyDown, \"aria-label\": ariaLabel, role: \"button\", \"aria-atomic\": true, \"aria-live\": \"polite\", tabIndex: 0 },\n this._onRenderYear(fromYear),\n \" - \",\n this._onRenderYear(toYear)));\n }\n return (React.createElement(\"div\", { className: css('ms-DatePicker-currentDecade js-showYearPicker', styles.currentDecade) },\n this._onRenderYear(fromYear),\n \" - \",\n this._onRenderYear(toYear)));\n };\n return CalendarYearTitle;\n}(React.Component));\nvar CalendarYearHeader = /** @class */ (function (_super) {\n __extends(CalendarYearHeader, _super);\n function CalendarYearHeader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderTitle = function () {\n if (_this.props.onRenderTitle) {\n return _this.props.onRenderTitle(_this.props);\n }\n return React.createElement(CalendarYearTitle, __assign({}, _this.props));\n };\n _this._onRenderNav = function () {\n return React.createElement(CalendarYearNav, __assign({}, _this.props));\n };\n return _this;\n }\n CalendarYearHeader.prototype.render = function () {\n return (React.createElement(\"div\", { className: css('ms-DatePicker-header', styles.header) },\n this._onRenderTitle(),\n this._onRenderNav()));\n };\n return CalendarYearHeader;\n}(React.Component));\nvar CalendarYear = /** @class */ (function (_super) {\n __extends(CalendarYear, _super);\n function CalendarYear(props) {\n var _this = _super.call(this, props) || this;\n _this._gridRef = React.createRef();\n _this._onNavNext = function () {\n _this.setState({ fromYear: _this.state.fromYear + CELL_COUNT });\n };\n _this._onNavPrev = function () {\n _this.setState({ fromYear: _this.state.fromYear - CELL_COUNT });\n };\n _this._renderHeader = function () {\n return (React.createElement(CalendarYearHeader, __assign({}, _this.props, { fromYear: _this.state.fromYear, toYear: _this.state.fromYear + CELL_COUNT - 1, onSelectPrev: _this._onNavPrev, onSelectNext: _this._onNavNext })));\n };\n _this._renderGrid = function () {\n return (React.createElement(CalendarYearGrid, __assign({}, _this.props, { fromYear: _this.state.fromYear, toYear: _this.state.fromYear + CELL_COUNT - 1, ref: _this._gridRef })));\n };\n _this.state = _this._calculateInitialStateFromProps(props);\n return _this;\n }\n CalendarYear.prototype.focus = function () {\n if (this._gridRef.current) {\n this._gridRef.current.focus();\n }\n };\n CalendarYear.prototype.render = function () {\n return (React.createElement(\"div\", { className: css('ms-DatePicker-yearPicker', styles.yearPicker) },\n this._renderHeader(),\n this._renderGrid()));\n };\n CalendarYear.prototype._calculateInitialStateFromProps = function (props) {\n var selectedYear = props.selectedYear, navigatedYear = props.navigatedYear;\n var rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n var fromYear = Math.floor(rangeYear / 10) * 10;\n return {\n fromYear: fromYear,\n navigatedYear: navigatedYear,\n selectedYear: selectedYear,\n };\n };\n return CalendarYear;\n}(React.Component));\nexport { CalendarYear };\n//# sourceMappingURL=CalendarYear.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, getRTL, initializeComponentRef, format } from '../../Utilities';\nimport { FocusZone } from '../../FocusZone';\nimport { addYears, setMonth, getYearStart, getYearEnd, getMonthStart, getMonthEnd, compareDatePart, } from '../../utilities/dateMath/DateMath';\nimport { Icon } from '../../Icon';\nimport * as stylesImport from './Calendar.scss';\nimport { CalendarYear } from './CalendarYear';\nvar styles = stylesImport;\nvar MONTHS_PER_ROW = 4;\nvar CalendarMonth = /** @class */ (function (_super) {\n __extends(CalendarMonth, _super);\n function CalendarMonth(props) {\n var _this = _super.call(this, props) || this;\n _this._navigatedMonthRef = React.createRef();\n _this._onCalendarYearRef = function (ref) {\n _this._calendarYearRef = ref;\n };\n _this._onKeyDown = function (callback, ev) {\n if (ev.which === KeyCodes.enter) {\n callback();\n }\n };\n _this._onSelectYear = function (selectedYear) {\n _this._focusOnUpdate = true;\n var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate, maxDate = _a.maxDate, minDate = _a.minDate;\n var navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n var newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n }\n else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n _this.setState({ isYearPickerVisible: false });\n };\n _this._yearToString = function (year) {\n var _a = _this.props, navigatedDate = _a.navigatedDate, dateTimeFormatter = _a.dateTimeFormatter;\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n var yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n _this._yearRangeToString = function (yearRange) {\n return _this._yearToString(yearRange.fromYear) + \" - \" + _this._yearToString(yearRange.toYear);\n };\n _this._yearRangeToNextDecadeLabel = function (yearRange) {\n var strings = _this.props.strings;\n return strings.nextYearRangeAriaLabel\n ? strings.nextYearRangeAriaLabel + \" \" + _this._yearRangeToString(yearRange)\n : '';\n };\n _this._yearRangeToPrevDecadeLabel = function (yearRange) {\n var strings = _this.props.strings;\n return strings.prevYearRangeAriaLabel\n ? strings.prevYearRangeAriaLabel + \" \" + _this._yearRangeToString(yearRange)\n : '';\n };\n _this._onRenderYear = function (year) {\n return _this._yearToString(year);\n };\n _this._onSelectNextYear = function () {\n var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate;\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n _this._onSelectNextYearKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onKeyDown(_this._onSelectNextYear, ev);\n }\n };\n _this._onSelectPrevYear = function () {\n var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate;\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n _this._onSelectPrevYearKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n _this._onKeyDown(_this._onSelectPrevYear, ev);\n }\n };\n _this._onSelectMonthKeyDown = function (index) {\n return function (ev) { return _this._onKeyDown(function () { return _this._onSelectMonth(index); }, ev); };\n };\n _this._onSelectMonth = function (newMonth) {\n var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate, onHeaderSelect = _a.onHeaderSelect;\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n if (onHeaderSelect) {\n onHeaderSelect(true);\n }\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n _this._onHeaderSelect = function () {\n var _a = _this.props, onHeaderSelect = _a.onHeaderSelect, yearPickerHidden = _a.yearPickerHidden;\n if (!yearPickerHidden) {\n _this._focusOnUpdate = true;\n _this.setState({ isYearPickerVisible: true });\n }\n else if (onHeaderSelect) {\n onHeaderSelect(true);\n }\n };\n _this._onYearPickerHeaderSelect = function (focus) {\n _this._focusOnUpdate = focus;\n _this.setState({ isYearPickerVisible: false });\n };\n _this._onHeaderKeyDown = function (ev) {\n if (_this._onHeaderSelect && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n _this._onHeaderSelect();\n }\n };\n initializeComponentRef(_this);\n _this._selectMonthCallbacks = [];\n props.strings.shortMonths.forEach(function (month, index) {\n _this._selectMonthCallbacks[index] = _this._onSelectMonth.bind(_this, index);\n });\n _this._isCurrentMonth = _this._isCurrentMonth.bind(_this);\n _this._onSelectNextYear = _this._onSelectNextYear.bind(_this);\n _this._onSelectPrevYear = _this._onSelectPrevYear.bind(_this);\n _this._onSelectMonth = _this._onSelectMonth.bind(_this);\n _this.state = { isYearPickerVisible: false };\n return _this;\n }\n CalendarMonth.prototype.componentDidUpdate = function () {\n if (this._focusOnUpdate) {\n this.focus();\n this._focusOnUpdate = false;\n }\n };\n CalendarMonth.prototype.render = function () {\n var _a, _b;\n var _this = this;\n var _c = this.props, navigatedDate = _c.navigatedDate, selectedDate = _c.selectedDate, strings = _c.strings, today = _c.today, highlightCurrentMonth = _c.highlightCurrentMonth, highlightSelectedMonth = _c.highlightSelectedMonth, navigationIcons = _c.navigationIcons, dateTimeFormatter = _c.dateTimeFormatter, minDate = _c.minDate, maxDate = _c.maxDate, yearPickerHidden = _c.yearPickerHidden;\n if (this.state.isYearPickerVisible) {\n // default the year picker to the current navigated date\n var currentSelectedDate = navigatedDate ? navigatedDate.getFullYear() : undefined;\n return (React.createElement(CalendarYear, { key: 'calendarYear_' + (currentSelectedDate && currentSelectedDate.toString()), minYear: minDate ? minDate.getFullYear() : undefined, maxYear: maxDate ? maxDate.getFullYear() : undefined, onSelectYear: this._onSelectYear, navigationIcons: navigationIcons, onHeaderSelect: this._onYearPickerHeaderSelect, selectedYear: currentSelectedDate, onRenderYear: this._onRenderYear, strings: {\n rangeAriaLabel: this._yearRangeToString,\n prevRangeAriaLabel: this._yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: this._yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n }, ref: this._onCalendarYearRef }));\n }\n var rowIndexes = [];\n for (var i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n var leftNavigationIcon = navigationIcons.leftNavigation;\n var rightNavigationIcon = navigationIcons.rightNavigation;\n // determine if previous/next years are in bounds\n var isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n var isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n var yearString = dateTimeFormatter.formatYear(navigatedDate);\n var headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? format(strings.monthPickerHeaderAriaLabel, yearString)\n : yearString;\n return (React.createElement(\"div\", { className: css('ms-DatePicker-monthPicker', styles.monthPicker) },\n React.createElement(\"div\", { className: css('ms-DatePicker-header', styles.header) },\n this.props.onHeaderSelect || !yearPickerHidden ? (React.createElement(\"div\", { className: css('ms-DatePicker-currentYear js-showYearPicker', styles.currentYear, styles.headerToggleView), onClick: this._onHeaderSelect, onKeyDown: this._onHeaderKeyDown, \"aria-label\": headerAriaLabel, role: \"button\", \"aria-atomic\": true, \"aria-live\": \"polite\", tabIndex: 0 }, dateTimeFormatter.formatYear(navigatedDate))) : (React.createElement(\"div\", { className: css('ms-DatePicker-currentYear js-showYearPicker', styles.currentYear) }, dateTimeFormatter.formatYear(navigatedDate))),\n React.createElement(\"div\", { className: css('ms-DatePicker-yearComponents', styles.yearComponents) },\n React.createElement(\"div\", { className: css('ms-DatePicker-navContainer', styles.navContainer) },\n React.createElement(\"button\", { className: css('ms-DatePicker-prevYear js-prevYear', styles.prevYear, (_a = {},\n _a['ms-DatePicker-prevYear--disabled ' + styles.prevYearIsDisabled] = !isPrevYearInBounds,\n _a)), disabled: !isPrevYearInBounds, onClick: isPrevYearInBounds ? this._onSelectPrevYear : undefined, onKeyDown: isPrevYearInBounds ? this._onSelectPrevYearKeyDown : undefined, title: strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateTimeFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined, role: \"button\", type: \"button\" },\n React.createElement(Icon, { iconName: getRTL() ? rightNavigationIcon : leftNavigationIcon })),\n React.createElement(\"button\", { className: css('ms-DatePicker-nextYear js-nextYear', styles.nextYear, (_b = {},\n _b['ms-DatePicker-nextYear--disabled ' + styles.nextYearIsDisabled] = !isNextYearInBounds,\n _b)), disabled: !isNextYearInBounds, onClick: isNextYearInBounds ? this._onSelectNextYear : undefined, onKeyDown: isNextYearInBounds ? this._onSelectNextYearKeyDown : undefined, title: strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateTimeFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined, role: \"button\", type: \"button\" },\n React.createElement(Icon, { iconName: getRTL() ? leftNavigationIcon : rightNavigationIcon }))))),\n React.createElement(FocusZone, null,\n React.createElement(\"div\", { className: css('ms-DatePicker-optionGrid', styles.optionGrid), role: \"grid\" }, rowIndexes.map(function (rowNum) {\n var monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (React.createElement(\"div\", { key: 'monthRow_' + rowNum, role: \"row\" }, monthsForRow.map(function (month, index) {\n var _a;\n var monthIndex = rowNum * MONTHS_PER_ROW + index;\n var indexedMonth = setMonth(navigatedDate, monthIndex);\n var isCurrentMonth = _this._isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today);\n var isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n var isSelectedMonth = selectedDate.getMonth() === monthIndex;\n var isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n var isInBounds = (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n return (React.createElement(\"button\", { role: 'gridcell', className: css('ms-DatePicker-monthOption', styles.monthOption, (_a = {},\n _a['ms-DatePicker-day--today ' + styles.monthIsCurrentMonth] = highlightCurrentMonth && isCurrentMonth,\n _a['ms-DatePicker-day--highlighted ' + styles.monthIsHighlighted] = (highlightCurrentMonth || highlightSelectedMonth) && isSelectedMonth && isSelectedYear,\n _a['ms-DatePicker-monthOption--disabled ' + styles.monthOptionIsDisabled] = !isInBounds,\n _a)), disabled: !isInBounds, key: monthIndex, onClick: isInBounds ? _this._selectMonthCallbacks[monthIndex] : undefined, onKeyDown: isInBounds ? _this._onSelectMonthKeyDown(monthIndex) : undefined, \"aria-label\": dateTimeFormatter.formatMonthYear(indexedMonth, strings), \"aria-selected\": isNavigatedMonth, \"data-is-focusable\": isInBounds ? true : undefined, ref: isNavigatedMonth ? _this._navigatedMonthRef : undefined, type: \"button\" }, month));\n })));\n })))));\n };\n CalendarMonth.prototype.focus = function () {\n if (this._calendarYearRef) {\n this._calendarYearRef.focus();\n }\n else if (this._navigatedMonthRef.current) {\n this._navigatedMonthRef.current.tabIndex = 0;\n this._navigatedMonthRef.current.focus();\n }\n };\n CalendarMonth.prototype._isCurrentMonth = function (month, year, today) {\n return today.getFullYear() === year && today.getMonth() === month;\n };\n return CalendarMonth;\n}(React.Component));\nexport { CalendarMonth };\n//# sourceMappingURL=CalendarMonth.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DayOfWeek, FirstWeekOfYear, DateRangeType } from '../../utilities/dateValues/DateValues';\nimport { CalendarDay } from './CalendarDay';\nimport { CalendarMonth } from './CalendarMonth';\nimport { compareDates, getDateRangeArray } from '../../utilities/dateMath/DateMath';\nimport { css, elementContains, KeyCodes, getNativeProps, divProperties, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport * as stylesImport from './Calendar.scss';\nvar styles = stylesImport;\nvar leftArrow = 'Up';\nvar rightArrow = 'Down';\nvar closeIcon = 'CalculatorMultiply';\nvar iconStrings = {\n leftNavigation: leftArrow,\n rightNavigation: rightArrow,\n closeIcon: closeIcon,\n};\nvar defaultWorkWeekDays = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\nvar dateTimeFormatterCallbacks = {\n formatMonthDayYear: function (date, strings) {\n return strings.months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();\n },\n formatMonthYear: function (date, strings) {\n return strings.months[date.getMonth()] + ' ' + date.getFullYear();\n },\n formatDay: function (date) { return date.getDate().toString(); },\n formatYear: function (date) { return date.getFullYear().toString(); },\n};\nvar Calendar = /** @class */ (function (_super) {\n __extends(Calendar, _super);\n function Calendar(props) {\n var _this = _super.call(this, props) || this;\n _this._dayPicker = React.createRef();\n _this._monthPicker = React.createRef();\n _this._hasFocus = false;\n _this._onBlur = function (event) {\n if (!elementContains(event.currentTarget, event.relatedTarget)) {\n _this._hasFocus = false;\n _this.props.onBlur && _this.props.onBlur(event);\n }\n };\n _this._onFocus = function (event) {\n if (!_this._hasFocus) {\n _this._hasFocus = true;\n _this.props.onFocus && _this.props.onFocus(event);\n }\n };\n _this._navigateDayPickerDay = function (date) {\n _this.setState({\n navigatedDayDate: date,\n navigatedMonthDate: date,\n });\n };\n _this._navigateMonthPickerDay = function (date) {\n _this.setState({\n navigatedMonthDate: date,\n });\n };\n _this._onNavigateDayDate = function (date, focusOnNavigatedDay) {\n _this._navigateDayPickerDay(date);\n _this._focusOnUpdate = focusOnNavigatedDay;\n };\n _this._onNavigateMonthDate = function (date, focusOnNavigatedDay) {\n if (!focusOnNavigatedDay) {\n _this._navigateMonthPickerDay(date);\n _this._focusOnUpdate = focusOnNavigatedDay;\n return;\n }\n var monthPickerOnly = !_this.props.showMonthPickerAsOverlay && !_this.props.isDayPickerVisible;\n if (monthPickerOnly) {\n _this._onSelectDate(date);\n }\n _this._navigateDayPickerDay(date);\n };\n _this._onSelectDate = function (date, selectedDateRangeArray) {\n var onSelectDate = _this.props.onSelectDate;\n _this.setState({\n selectedDate: date,\n });\n if (onSelectDate) {\n onSelectDate(date, selectedDateRangeArray);\n }\n };\n _this._onHeaderSelect = function (focus) {\n _this.setState({\n isDayPickerVisible: !_this.state.isDayPickerVisible,\n isMonthPickerVisible: !_this.state.isMonthPickerVisible,\n });\n if (focus) {\n _this._focusOnUpdate = true;\n }\n };\n _this._onGotoToday = function () {\n var _a = _this.props, dateRangeType = _a.dateRangeType, firstDayOfWeek = _a.firstDayOfWeek, today = _a.today, workWeekDays = _a.workWeekDays, selectDateOnClick = _a.selectDateOnClick;\n if (selectDateOnClick) {\n // When using Defaultprops, TypeScript doesn't know that React is going to inject defaults\n // so we use exclamation mark as a hint to the type checker (see link below)\n // https://decembersoft.com/posts/error-ts2532-optional-react-component-props-in-typescript/\n var dates = getDateRangeArray(today, dateRangeType, firstDayOfWeek, workWeekDays);\n _this._onSelectDate(today, dates);\n }\n _this._navigateDayPickerDay(today);\n _this._focusOnUpdate = true;\n };\n _this._onGotoTodayClick = function (ev) {\n _this._onGotoToday();\n };\n _this._onGotoTodayKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter) {\n ev.preventDefault();\n _this._onGotoToday();\n }\n };\n _this._onDatePickerPopupKeyDown = function (ev) {\n switch (ev.which) {\n case KeyCodes.enter:\n ev.preventDefault();\n break;\n case KeyCodes.backspace:\n ev.preventDefault();\n break;\n case KeyCodes.escape:\n _this._handleEscKey(ev);\n break;\n default:\n break;\n }\n };\n _this._handleEscKey = function (ev) {\n if (_this.props.onDismiss) {\n _this.props.onDismiss();\n }\n };\n initializeComponentRef(_this);\n var currentDate = props.value && !isNaN(props.value.getTime()) ? props.value : props.today || new Date();\n _this.state = {\n selectedDate: currentDate,\n navigatedDayDate: currentDate,\n navigatedMonthDate: currentDate,\n /** When showMonthPickerAsOverlay is active it overrides isMonthPickerVisible/isDayPickerVisible props\n (These props permanently set the visibility of their respective calendars). */\n isMonthPickerVisible: _this.props.showMonthPickerAsOverlay ? false : _this.props.isMonthPickerVisible,\n isDayPickerVisible: _this.props.showMonthPickerAsOverlay ? true : _this.props.isDayPickerVisible,\n };\n _this._focusOnUpdate = false;\n return _this;\n }\n Calendar.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n var autoNavigateOnSelection = nextProps.autoNavigateOnSelection, value = nextProps.value, _a = nextProps.today, today = _a === void 0 ? new Date() : _a;\n // Make sure auto-navigation is supported for programmatic changes to selected date, i.e.,\n // if selected date is updated via props, we may need to modify the navigated date\n var overrideNavigatedDate = autoNavigateOnSelection && !compareDates(value, this.props.value);\n if (overrideNavigatedDate) {\n this.setState({\n navigatedMonthDate: value,\n navigatedDayDate: value,\n });\n }\n this.setState({\n selectedDate: value || today,\n });\n };\n Calendar.prototype.componentDidUpdate = function () {\n if (this._focusOnUpdate) {\n this.focus();\n this._focusOnUpdate = false;\n }\n };\n Calendar.prototype.render = function () {\n var _a;\n var rootClass = 'ms-DatePicker';\n var _b = this.props, firstDayOfWeek = _b.firstDayOfWeek, dateRangeType = _b.dateRangeType, strings = _b.strings, showMonthPickerAsOverlay = _b.showMonthPickerAsOverlay, autoNavigateOnSelection = _b.autoNavigateOnSelection, showGoToToday = _b.showGoToToday, highlightCurrentMonth = _b.highlightCurrentMonth, highlightSelectedMonth = _b.highlightSelectedMonth, navigationIcons = _b.navigationIcons, minDate = _b.minDate, maxDate = _b.maxDate, restrictedDates = _b.restrictedDates, className = _b.className, showCloseButton = _b.showCloseButton, allFocusable = _b.allFocusable, yearPickerHidden = _b.yearPickerHidden, today = _b.today;\n var nativeProps = getNativeProps(this.props, divProperties, ['value']);\n var _c = this.state, selectedDate = _c.selectedDate, navigatedDayDate = _c.navigatedDayDate, navigatedMonthDate = _c.navigatedMonthDate, isMonthPickerVisible = _c.isMonthPickerVisible, isDayPickerVisible = _c.isDayPickerVisible;\n var onHeaderSelect = showMonthPickerAsOverlay ? this._onHeaderSelect : undefined;\n var monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n var overlayedWithButton = showMonthPickerAsOverlay && showGoToToday;\n var goTodayEnabled = showGoToToday;\n if (goTodayEnabled && navigatedDayDate && navigatedMonthDate && today) {\n goTodayEnabled =\n navigatedDayDate.getFullYear() !== today.getFullYear() ||\n navigatedDayDate.getMonth() !== today.getMonth() ||\n navigatedMonthDate.getFullYear() !== today.getFullYear() ||\n navigatedMonthDate.getMonth() !== today.getMonth();\n }\n return (React.createElement(\"div\", { className: css(rootClass, styles.root, className), role: \"application\" },\n React.createElement(\"div\", __assign({}, nativeProps, { onBlur: this._onBlur, onFocus: this._onFocus, className: css('ms-DatePicker-picker ms-DatePicker-picker--opened ms-DatePicker-picker--focused', styles.picker, styles.pickerIsOpened, styles.pickerIsFocused, isMonthPickerVisible && 'ms-DatePicker-monthPickerVisible ' + styles.monthPickerVisible, isMonthPickerVisible && isDayPickerVisible && 'ms-DatePicker-calendarsInline ' + styles.calendarsInline, monthPickerOnly && 'ms-DatePicker-monthPickerOnly ' + styles.monthPickerOnly, showMonthPickerAsOverlay && 'ms-DatePicker-monthPickerAsOverlay ' + styles.monthPickerAsOverlay) }),\n React.createElement(\"div\", { className: css('ms-DatePicker-holder ms-slideDownIn10', styles.holder, overlayedWithButton && styles.holderWithButton), onKeyDown: this._onDatePickerPopupKeyDown },\n React.createElement(\"div\", { className: css('ms-DatePicker-frame', styles.frame) },\n React.createElement(\"div\", { className: css('ms-DatePicker-wrap', styles.wrap, showGoToToday && styles.goTodaySpacing) },\n isDayPickerVisible && (React.createElement(CalendarDay, { selectedDate: selectedDate, navigatedDate: navigatedDayDate, today: this.props.today, onSelectDate: this._onSelectDate, onNavigateDate: this._onNavigateDayDate, onDismiss: this.props.onDismiss, firstDayOfWeek: firstDayOfWeek, dateRangeType: dateRangeType, autoNavigateOnSelection: autoNavigateOnSelection, strings: strings, onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, showWeekNumbers: this.props.showWeekNumbers, firstWeekOfYear: this.props.firstWeekOfYear, dateTimeFormatter: this.props.dateTimeFormatter, showSixWeeksByDefault: this.props.showSixWeeksByDefault, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, workWeekDays: this.props.workWeekDays, componentRef: this._dayPicker, showCloseButton: showCloseButton, allFocusable: allFocusable })),\n isDayPickerVisible && isMonthPickerVisible && React.createElement(\"div\", { className: styles.divider }),\n isMonthPickerVisible && (React.createElement(CalendarMonth, { navigatedDate: navigatedMonthDate, selectedDate: navigatedDayDate, strings: strings, onNavigateDate: this._onNavigateMonthDate, today: this.props.today, highlightCurrentMonth: highlightCurrentMonth, highlightSelectedMonth: highlightSelectedMonth, onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, dateTimeFormatter: this.props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: this._monthPicker, yearPickerHidden: yearPickerHidden || showMonthPickerAsOverlay })),\n showGoToToday && (React.createElement(\"button\", { role: \"button\", className: css('ms-DatePicker-goToday js-goToday', styles.goToday, (_a = {},\n _a[styles.goTodayInlineMonth] = isMonthPickerVisible,\n _a[styles.goToTodayIsDisabled] = !goTodayEnabled,\n _a)), onClick: this._onGotoTodayClick, onKeyDown: this._onGotoTodayKeyDown, tabIndex: 0, disabled: !goTodayEnabled, type: \"button\" }, strings.goToToday)))))),\n React.createElement(FocusRects, null)));\n };\n Calendar.prototype.focus = function () {\n if (this.state.isDayPickerVisible && this._dayPicker.current) {\n this._dayPicker.current.focus();\n }\n else if (this.state.isMonthPickerVisible && this._monthPicker.current) {\n this._monthPicker.current.focus();\n }\n };\n Calendar.defaultProps = {\n onSelectDate: undefined,\n onDismiss: undefined,\n isMonthPickerVisible: true,\n isDayPickerVisible: true,\n showMonthPickerAsOverlay: false,\n value: undefined,\n today: new Date(),\n firstDayOfWeek: DayOfWeek.Sunday,\n dateRangeType: DateRangeType.Day,\n autoNavigateOnSelection: false,\n showGoToToday: true,\n strings: null,\n highlightCurrentMonth: false,\n highlightSelectedMonth: false,\n navigationIcons: iconStrings,\n showWeekNumbers: false,\n firstWeekOfYear: FirstWeekOfYear.FirstDay,\n dateTimeFormatter: dateTimeFormatterCallbacks,\n showSixWeeksByDefault: false,\n workWeekDays: defaultWorkWeekDays,\n showCloseButton: false,\n allFocusable: false,\n };\n return Calendar;\n}(React.Component));\nexport { Calendar };\n//# sourceMappingURL=Calendar.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nvar Callout = /** @class */ (function (_super) {\n __extends(Callout, _super);\n function Callout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Callout.prototype.render = function () {\n var _a = this.props, layerProps = _a.layerProps, rest = __rest(_a, [\"layerProps\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest));\n return this.props.doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n };\n return Callout;\n}(React.Component));\nexport { Callout };\n//# sourceMappingURL=Callout.js.map","var _a;\nimport { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Async, css, divProperties, elementContains, focusFirstChild, getDocument, getNativeProps, getWindow, on, shallowCompare, } from '../../Utilities';\nimport { positionCallout, getMaxHeight, RectangleEdge, positionCard, getBoundsFromTargetWindow, } from '../../utilities/positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nvar ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n _a);\nvar getClassNames = classNamesFunction({\n disableCaching: true,\n});\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = { opacity: 0, filter: 'opacity(0)', pointerEvents: 'none' };\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar CalloutContentBase = /** @class */ (function (_super) {\n __extends(CalloutContentBase, _super);\n function CalloutContentBase(props) {\n var _this = _super.call(this, props) || this;\n _this._hostElement = React.createRef();\n _this._calloutElement = React.createRef();\n _this._hasListeners = false;\n _this._disposables = [];\n _this.dismiss = function (ev) {\n var onDismiss = _this.props.onDismiss;\n if (onDismiss) {\n onDismiss(ev);\n }\n };\n _this._dismissOnScroll = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnScroll = _a.preventDismissOnScroll;\n if (_this.state.positions &&\n ((preventDismissOnEvent && !preventDismissOnEvent(ev)) || (!preventDismissOnEvent && !preventDismissOnScroll))) {\n _this._dismissOnClickOrScroll(ev);\n }\n };\n _this._dismissOnResize = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnResize = _a.preventDismissOnResize;\n if ((preventDismissOnEvent && !preventDismissOnEvent(ev)) || (!preventDismissOnEvent && !preventDismissOnResize)) {\n _this.dismiss(ev);\n }\n };\n _this._dismissOnLostFocus = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnLostFocus = _a.preventDismissOnLostFocus;\n if ((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) {\n _this._dismissOnClickOrScroll(ev);\n }\n };\n _this._setInitialFocus = function () {\n if (_this.props.setInitialFocus &&\n !_this._didSetInitialFocus &&\n _this.state.positions &&\n _this._calloutElement.current) {\n _this._didSetInitialFocus = true;\n _this._async.requestAnimationFrame(function () { return focusFirstChild(_this._calloutElement.current); }, _this._calloutElement.current);\n }\n };\n _this._onComponentDidMount = function () {\n _this._addListeners();\n if (_this.props.onLayerMounted) {\n _this.props.onLayerMounted();\n }\n _this._updateAsyncPosition();\n _this._setHeightOffsetEveryFrame();\n };\n _this._dismissOnTargetWindowBlur = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnLostFocus = _a.preventDismissOnLostFocus, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus;\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !_this._targetWindow.document.hasFocus() &&\n ev.relatedTarget === null) {\n _this.dismiss(ev);\n }\n };\n _this._mouseDownOnPopup = function () {\n _this._isMouseDownOnPopup = true;\n };\n _this._mouseUpOnPopup = function () {\n _this._isMouseDownOnPopup = false;\n };\n _this._async = new Async(_this);\n _this._didSetInitialFocus = false;\n _this.state = {\n positions: undefined,\n slideDirectionalClassName: undefined,\n // @TODO it looks like this is not even being used anymore.\n calloutElementRect: undefined,\n heightOffset: 0,\n };\n _this._positionAttempts = 0;\n return _this;\n }\n CalloutContentBase.prototype.componentDidUpdate = function () {\n if (!this.props.hidden) {\n this._setInitialFocus();\n if (!this._hasListeners) {\n this._addListeners();\n }\n this._updateAsyncPosition();\n }\n else {\n if (this._hasListeners) {\n this._removeListeners();\n }\n }\n };\n CalloutContentBase.prototype.shouldComponentUpdate = function (newProps, newState) {\n if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {\n // Do not update when hidden.\n return false;\n }\n return !shallowCompare(this.props, newProps) || !shallowCompare(this.state, newState);\n };\n CalloutContentBase.prototype.UNSAFE_componentWillMount = function () {\n this._setTargetWindowAndElement(this._getTarget());\n };\n CalloutContentBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._disposables.forEach(function (dispose) { return dispose(); });\n };\n CalloutContentBase.prototype.UNSAFE_componentWillUpdate = function (newProps) {\n // If the target element changed, find the new one. If we are tracking target with class name, always find element\n // because we do not know if fabric has rendered a new element and disposed the old element.\n var newTarget = this._getTarget(newProps);\n var oldTarget = this._getTarget();\n if ((newTarget !== oldTarget || typeof newTarget === 'string' || newTarget instanceof String) &&\n !this._blockResetHeight) {\n this._maxHeight = undefined;\n this._setTargetWindowAndElement(newTarget);\n }\n if (newProps.gapSpace !== this.props.gapSpace || this.props.beakWidth !== newProps.beakWidth) {\n this._maxHeight = undefined;\n }\n if (newProps.finalHeight !== this.props.finalHeight) {\n this._setHeightOffsetEveryFrame();\n }\n // Ensure positioning is recalculated when we are about to show a persisted menu.\n if (this._didPositionPropsChange(newProps, this.props)) {\n this._maxHeight = undefined;\n // Target might have been updated while hidden.\n this._setTargetWindowAndElement(newTarget);\n this.setState({\n positions: undefined,\n });\n this._didSetInitialFocus = false;\n this._bounds = undefined;\n }\n this._blockResetHeight = false;\n };\n CalloutContentBase.prototype.componentDidMount = function () {\n if (!this.props.hidden) {\n this._onComponentDidMount();\n }\n };\n CalloutContentBase.prototype.render = function () {\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!this._targetWindow) {\n return null;\n }\n var target = this.props.target;\n var _a = this.props, styles = _a.styles, style = _a.style, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className, isBeakVisible = _a.isBeakVisible, children = _a.children, beakWidth = _a.beakWidth, calloutWidth = _a.calloutWidth, calloutMaxWidth = _a.calloutMaxWidth, calloutMinWidth = _a.calloutMinWidth, finalHeight = _a.finalHeight, _b = _a.hideOverflow, hideOverflow = _b === void 0 ? !!finalHeight : _b, backgroundColor = _a.backgroundColor, calloutMaxHeight = _a.calloutMaxHeight, onScroll = _a.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _c = _a.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _c === void 0 ? true : _c, popupProps = _a.popupProps;\n target = this._getTarget();\n var positions = this.state.positions;\n var getContentMaxHeight = this._getMaxHeight()\n ? this._getMaxHeight() + this.state.heightOffset\n : undefined;\n var contentMaxHeight = calloutMaxHeight && getContentMaxHeight && calloutMaxHeight < getContentMaxHeight\n ? calloutMaxHeight\n : getContentMaxHeight;\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n this._classNames = getClassNames(styles, {\n theme: this.props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMinWidth: calloutMinWidth,\n calloutMaxWidth: calloutMaxWidth,\n });\n var overflowStyle = __assign(__assign(__assign({}, style), { maxHeight: contentMaxHeight }), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = this.props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n var content = (React.createElement(\"div\", { ref: this._hostElement, className: this._classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(this.props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(this._classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? positions.elementPosition : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: this._calloutElement }),\n beakVisible && React.createElement(\"div\", { className: this._classNames.beak, style: this._getBeakPosition() }),\n beakVisible && React.createElement(\"div\", { className: this._classNames.beakCurtain }),\n React.createElement(Popup, __assign({}, getNativeProps(this.props, ARIA_ROLE_ATTRIBUTES), { ariaLabel: ariaLabel, onRestoreFocus: this.props.onRestoreFocus, ariaDescribedBy: ariaDescribedBy, ariaLabelledBy: ariaLabelledBy, className: this._classNames.calloutMain, onDismiss: this.dismiss, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle, onMouseDown: this._mouseDownOnPopup, onMouseUp: this._mouseUpOnPopup }, popupProps), children))));\n return content;\n };\n CalloutContentBase.prototype._dismissOnClickOrScroll = function (ev) {\n var target = ev.target;\n var isEventTargetOutsideCallout = this._hostElement.current && !elementContains(this._hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && this._isMouseDownOnPopup) {\n this._isMouseDownOnPopup = false;\n return;\n }\n if ((!this._target && isEventTargetOutsideCallout) ||\n (ev.target !== this._targetWindow &&\n isEventTargetOutsideCallout &&\n (this._target.stopPropagation ||\n !this._target ||\n this.props.dismissOnTargetClick ||\n (target !== this._target && !elementContains(this._target, target))))) {\n this.dismiss(ev);\n }\n };\n CalloutContentBase.prototype._addListeners = function () {\n var _this = this;\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n this._async.setTimeout(function () {\n _this._disposables.push(on(_this._targetWindow, 'scroll', _this._dismissOnScroll, true), on(_this._targetWindow, 'resize', _this._dismissOnResize, true), on(_this._targetWindow.document.documentElement, 'focus', _this._dismissOnLostFocus, true), on(_this._targetWindow.document.documentElement, 'click', _this._dismissOnLostFocus, true), on(_this._targetWindow, 'blur', _this._dismissOnTargetWindowBlur, true));\n _this._hasListeners = true;\n }, 0);\n };\n CalloutContentBase.prototype._removeListeners = function () {\n this._disposables.forEach(function (dispose) { return dispose(); });\n this._disposables = [];\n this._hasListeners = false;\n };\n CalloutContentBase.prototype._updateAsyncPosition = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () { return _this._updatePosition(); }, this._calloutElement.current);\n };\n CalloutContentBase.prototype._getBeakPosition = function () {\n var positions = this.state.positions;\n var beakPostionStyle = __assign({}, (positions && positions.beakPosition ? positions.beakPosition.elementPosition : null));\n if (!beakPostionStyle.top && !beakPostionStyle.bottom && !beakPostionStyle.left && !beakPostionStyle.right) {\n beakPostionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPostionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPostionStyle;\n };\n CalloutContentBase.prototype._updatePosition = function () {\n // Try to update the target, page might have changed\n this._setTargetWindowAndElement(this._getTarget());\n var positions = this.state.positions;\n var hostElement = this._hostElement.current;\n var calloutElement = this._calloutElement.current;\n // If we expect a target element to position against, we need to wait until `this._target` is resolved. Otherwise\n // we can try to position.\n var expectsTarget = !!this.props.target;\n if (hostElement && calloutElement && (!expectsTarget || this._target)) {\n var currentProps = __assign({}, this.props);\n currentProps.bounds = this._getBounds();\n currentProps.target = this._target;\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n var newPositions = this.props.finalHeight\n ? positionCard(currentProps, hostElement, calloutElement, positions)\n : positionCallout(currentProps, hostElement, calloutElement, positions);\n // Set the new position only when the positions are not exists or one of the new callout positions are different.\n // The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !this._arePositionsEqual(positions, newPositions) && this._positionAttempts < 5)) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n this._positionAttempts++;\n this.setState({\n positions: newPositions,\n });\n }\n else if (this._positionAttempts > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n this._positionAttempts = 0;\n if (this.props.onPositioned) {\n this.props.onPositioned(this.state.positions);\n }\n }\n }\n };\n CalloutContentBase.prototype._getBounds = function () {\n if (!this._bounds) {\n var bounds = this.props.bounds;\n var currentBounds = typeof bounds === 'function' ? bounds(this.props.target, this._targetWindow) : bounds;\n if (!currentBounds) {\n currentBounds = getBoundsFromTargetWindow(this._target, this._targetWindow);\n currentBounds = {\n top: currentBounds.top + this.props.minPagePadding,\n left: currentBounds.left + this.props.minPagePadding,\n right: currentBounds.right - this.props.minPagePadding,\n bottom: currentBounds.bottom - this.props.minPagePadding,\n width: currentBounds.width - this.props.minPagePadding * 2,\n height: currentBounds.height - this.props.minPagePadding * 2,\n };\n }\n this._bounds = currentBounds;\n }\n return this._bounds;\n };\n // Max height should remain as synchronous as possible, which is why it is not done using set state.\n // It needs to be synchronous since it will impact the ultimate position of the callout.\n CalloutContentBase.prototype._getMaxHeight = function () {\n var _this = this;\n if (!this._maxHeight) {\n if (this.props.directionalHintFixed && this._target) {\n var beakWidth = this.props.isBeakVisible ? this.props.beakWidth : 0;\n var gapSpace = this.props.gapSpace ? this.props.gapSpace : 0;\n // Since the callout cannot measure it's border size it must be taken into account here. Otherwise it will\n // overlap with the target.\n var totalGap_1 = gapSpace + beakWidth;\n this._async.requestAnimationFrame(function () {\n if (_this._target) {\n _this._maxHeight = getMaxHeight(_this._target, _this.props.directionalHint, totalGap_1, _this._getBounds(), _this.props.coverTarget);\n _this._blockResetHeight = true;\n _this.forceUpdate();\n }\n }, this._target);\n }\n else {\n this._maxHeight = this._getBounds().height;\n }\n }\n return this._maxHeight;\n };\n CalloutContentBase.prototype._arePositionsEqual = function (positions, newPosition) {\n return (this._comparePositions(positions.elementPosition, newPosition.elementPosition) &&\n this._comparePositions(positions.beakPosition.elementPosition, newPosition.beakPosition.elementPosition));\n };\n CalloutContentBase.prototype._comparePositions = function (oldPositions, newPositions) {\n for (var key in newPositions) {\n if (newPositions.hasOwnProperty(key)) {\n var oldPositionEdge = oldPositions[key];\n var newPositionEdge = newPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n return true;\n };\n CalloutContentBase.prototype._setTargetWindowAndElement = function (target) {\n var currentElement = this._calloutElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n this._target = currentDoc ? currentDoc.querySelector(target) : null;\n this._targetWindow = getWindow(currentElement);\n // Cast to any prevents error about stopPropagation always existing\n }\n else if (target.stopPropagation) {\n this._targetWindow = getWindow(target.target);\n this._target = target;\n // Same reason here\n }\n else if (target.getBoundingClientRect) {\n var targetElement = target;\n this._targetWindow = getWindow(targetElement);\n this._target = targetElement;\n }\n else if (target.current !== undefined) {\n this._target = target.current;\n this._targetWindow = getWindow(this._target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n this._targetWindow = getWindow(currentElement);\n this._target = target;\n }\n }\n else {\n this._targetWindow = getWindow(currentElement);\n }\n };\n CalloutContentBase.prototype._setHeightOffsetEveryFrame = function () {\n var _this = this;\n if (this._calloutElement.current && this.props.finalHeight) {\n this._setHeightOffsetTimer = this._async.requestAnimationFrame(function () {\n var calloutMainElem = _this._calloutElement.current && _this._calloutElement.current.lastChild;\n if (!calloutMainElem) {\n return;\n }\n var cardScrollHeight = calloutMainElem.scrollHeight;\n var cardCurrHeight = calloutMainElem.offsetHeight;\n var scrollDiff = cardScrollHeight - cardCurrHeight;\n _this.setState({\n heightOffset: _this.state.heightOffset + scrollDiff,\n });\n if (calloutMainElem.offsetHeight < _this.props.finalHeight) {\n _this._setHeightOffsetEveryFrame();\n }\n else {\n _this._async.cancelAnimationFrame(_this._setHeightOffsetTimer, _this._calloutElement.current);\n }\n }, this._calloutElement.current);\n }\n };\n // Whether or not the current positions should be reset\n CalloutContentBase.prototype._didPositionPropsChange = function (newProps, oldProps) {\n return ((!newProps.hidden && newProps.hidden !== oldProps.hidden) ||\n newProps.directionalHint !== oldProps.directionalHint ||\n newProps.target !== oldProps.target);\n };\n CalloutContentBase.prototype._getTarget = function (props) {\n if (props === void 0) { props = this.props; }\n var target = props.target;\n return target;\n };\n CalloutContentBase.defaultProps = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n };\n return CalloutContentBase;\n}(React.Component));\nexport { CalloutContentBase };\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\nvar GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n _a),\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, { scope: 'CalloutContent' });\n//# sourceMappingURL=CalloutContent.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Callout } from './Callout';\nimport { FocusTrapZone } from '../../FocusTrapZone';\n/**\n * A special Callout that uses FocusTrapZone to trap focus\n * @param props - Props for the component\n */\nexport var FocusTrapCallout = function (props) {\n return (React.createElement(Callout, __assign({}, props),\n React.createElement(FocusTrapZone, __assign({ disabled: props.hidden }, props.focusTrapProps), props.children)));\n};\n//# sourceMappingURL=FocusTrapCallout.js.map","import * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var CheckBase = function (props) {\n var _a = props.checked, checked = _a === void 0 ? false : _a, className = props.className, theme = props.theme, styles = props.styles, _b = props.useFastIcons, useFastIcons = _b === void 0 ? true : _b;\n var classNames = getClassNames(styles, { theme: theme, className: className, checked: checked });\n var IconComponent = useFastIcons ? FontIcon : Icon;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(IconComponent, { iconName: \"CircleRing\", className: classNames.circle }),\n React.createElement(IconComponent, { iconName: \"StatusCircleCheckmark\", className: classNames.check })));\n};\nCheckBase.displayName = 'CheckBase';\n//# sourceMappingURL=Check.base.js.map","import { styled } from '../../Utilities';\nimport { CheckBase } from './Check.base';\nimport { getStyles } from './Check.styles';\nexport var Check = styled(CheckBase, getStyles, undefined, {\n scope: 'Check',\n}, true);\n//# sourceMappingURL=Check.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nexport var CheckGlobalClassNames = {\n root: 'ms-Check',\n circle: 'ms-Check-circle',\n check: 'ms-Check-check',\n /** Must be manually applied to the parent element of the check. */\n checkHost: 'ms-Check-checkHost',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n // eslint-disable-next-line deprecation/deprecation\n var _f = props.height, height = _f === void 0 ? props.checkBoxHeight || '18px' : _f, checked = props.checked, className = props.className, theme = props.theme;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var isRTL = getRTL(theme);\n var classNames = getGlobalClassNames(CheckGlobalClassNames, theme);\n var sharedCircleCheck = {\n fontSize: height,\n position: 'absolute',\n left: 0,\n top: 0,\n width: height,\n height: height,\n textAlign: 'center',\n verticalAlign: 'middle',\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n // lineHeight currently needs to be a string to output without 'px'\n lineHeight: '1',\n width: height,\n height: height,\n verticalAlign: 'top',\n position: 'relative',\n userSelect: 'none',\n selectors: (_a = {\n ':before': {\n content: '\"\"',\n position: 'absolute',\n top: '1px',\n right: '1px',\n bottom: '1px',\n left: '1px',\n borderRadius: '50%',\n opacity: 1,\n background: semanticColors.bodyBackground,\n }\n },\n _a[\".\" + classNames.checkHost + \":hover &, .\" + classNames.checkHost + \":focus &, &:hover, &:focus\"] = {\n opacity: 1,\n },\n _a),\n },\n checked && [\n 'is-checked',\n {\n selectors: {\n ':before': {\n background: palette.themePrimary,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n background: 'Window',\n },\n _b),\n },\n },\n },\n ],\n className,\n ],\n circle: [\n classNames.circle,\n sharedCircleCheck,\n {\n color: palette.neutralSecondary,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'WindowText',\n },\n _c),\n },\n checked && {\n color: palette.white,\n },\n ],\n check: [\n classNames.check,\n sharedCircleCheck,\n {\n opacity: 0,\n color: palette.neutralSecondary,\n fontSize: IconFontSizes.medium,\n left: isRTL ? '-0.5px' : '.5px',\n selectors: (_d = {\n ':hover': {\n opacity: 1,\n }\n },\n _d[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _d),\n },\n checked && {\n opacity: 1,\n color: palette.white,\n fontWeight: 900,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n color: 'WindowText',\n },\n _e),\n },\n ],\n checkHost: classNames.checkHost,\n };\n};\n//# sourceMappingURL=Check.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getId, classNamesFunction, mergeAriaAttributeValues, initializeComponentRef, warnMutuallyExclusive, FocusRects, } from '../../Utilities';\nimport { Icon } from '../../Icon';\nimport { KeytipData } from '../../KeytipData';\nvar getClassNames = classNamesFunction();\nvar CheckboxBase = /** @class */ (function (_super) {\n __extends(CheckboxBase, _super);\n /**\n * Initialize a new instance of the Checkbox\n * @param props - Props for the component\n * @param context - Context or initial state for the base component.\n */\n function CheckboxBase(props, context) {\n var _this = _super.call(this, props, context) || this;\n _this._checkBox = React.createRef();\n _this._renderContent = function (checked, indeterminate, keytipAttributes) {\n if (keytipAttributes === void 0) { keytipAttributes = {}; }\n var _a = _this.props, disabled = _a.disabled, inputProps = _a.inputProps, name = _a.name, ariaLabel = _a.ariaLabel, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, _b = _a.onRenderLabel, onRenderLabel = _b === void 0 ? _this._onRenderLabel : _b, checkmarkIconProps = _a.checkmarkIconProps, ariaPositionInSet = _a.ariaPositionInSet, ariaSetSize = _a.ariaSetSize, title = _a.title, label = _a.label;\n return (React.createElement(\"div\", { className: _this._classNames.root, title: title },\n React.createElement(FocusRects, null),\n React.createElement(\"input\", __assign({ type: \"checkbox\" }, inputProps, { \"data-ktp-execute-target\": keytipAttributes['data-ktp-execute-target'], checked: checked, disabled: disabled, className: _this._classNames.input, ref: _this._checkBox, name: name, id: _this._id, title: title, onChange: _this._onChange, onFocus: _this._onFocus, onBlur: _this._onBlur, \"aria-disabled\": disabled, \"aria-label\": ariaLabel || label, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": mergeAriaAttributeValues(ariaDescribedBy, keytipAttributes['aria-describedby']), \"aria-posinset\": ariaPositionInSet, \"aria-setsize\": ariaSetSize, \"aria-checked\": indeterminate ? 'mixed' : checked ? 'true' : 'false' })),\n React.createElement(\"label\", { className: _this._classNames.label, htmlFor: _this._id },\n React.createElement(\"div\", { className: _this._classNames.checkbox, \"data-ktp-target\": keytipAttributes['data-ktp-target'] },\n React.createElement(Icon, __assign({ iconName: \"CheckMark\" }, checkmarkIconProps, { className: _this._classNames.checkmark }))),\n onRenderLabel(_this.props, _this._onRenderLabel))));\n };\n _this._onFocus = function (ev) {\n var inputProps = _this.props.inputProps;\n if (inputProps && inputProps.onFocus) {\n inputProps.onFocus(ev);\n }\n };\n _this._onBlur = function (ev) {\n var inputProps = _this.props.inputProps;\n if (inputProps && inputProps.onBlur) {\n inputProps.onBlur(ev);\n }\n };\n _this._onChange = function (ev) {\n var onChange = _this.props.onChange;\n var _a = _this.state, isChecked = _a.isChecked, isIndeterminate = _a.isIndeterminate;\n if (!isIndeterminate) {\n if (onChange) {\n onChange(ev, !isChecked);\n }\n if (_this.props.checked === undefined) {\n _this.setState({ isChecked: !isChecked });\n }\n }\n else {\n // If indeterminate, clicking the checkbox *only* removes the indeterminate state (or if\n // controlled, lets the consumer know to change it by calling onChange). It doesn't\n // change the checked state.\n if (onChange) {\n onChange(ev, isChecked);\n }\n if (_this.props.indeterminate === undefined) {\n _this.setState({ isIndeterminate: false });\n }\n }\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, title = props.title;\n return label ? (React.createElement(\"span\", { \"aria-hidden\": \"true\", className: _this._classNames.text, title: title }, label)) : null;\n };\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnMutuallyExclusive('Checkbox', props, {\n checked: 'defaultChecked',\n indeterminate: 'defaultIndeterminate',\n });\n }\n _this._id = _this.props.id || getId('checkbox-');\n _this.state = {\n isChecked: !!(props.checked !== undefined ? props.checked : props.defaultChecked),\n isIndeterminate: !!(props.indeterminate !== undefined ? props.indeterminate : props.defaultIndeterminate),\n };\n return _this;\n }\n CheckboxBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var stateUpdate = {};\n if (nextProps.indeterminate !== undefined) {\n stateUpdate.isIndeterminate = !!nextProps.indeterminate;\n }\n if (nextProps.checked !== undefined) {\n stateUpdate.isChecked = !!nextProps.checked;\n }\n return Object.keys(stateUpdate).length ? stateUpdate : null;\n };\n /**\n * Render the Checkbox based on passed props\n */\n CheckboxBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, disabled = _a.disabled, boxSide = _a.boxSide, theme = _a.theme, styles = _a.styles, _b = _a.onRenderLabel, onRenderLabel = _b === void 0 ? this._onRenderLabel : _b, keytipProps = _a.keytipProps;\n var _c = this.state, isChecked = _c.isChecked, isIndeterminate = _c.isIndeterminate;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n indeterminate: isIndeterminate,\n checked: isChecked,\n reversed: boxSide !== 'start',\n isUsingCustomLabelRender: onRenderLabel !== this._onRenderLabel,\n });\n if (keytipProps) {\n return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return _this._renderContent(isChecked, isIndeterminate, keytipAttributes); }));\n }\n return this._renderContent(isChecked, isIndeterminate);\n };\n Object.defineProperty(CheckboxBase.prototype, \"indeterminate\", {\n get: function () {\n return !!this.state.isIndeterminate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CheckboxBase.prototype, \"checked\", {\n get: function () {\n return !!this.state.isChecked;\n },\n enumerable: true,\n configurable: true\n });\n CheckboxBase.prototype.focus = function () {\n if (this._checkBox.current) {\n this._checkBox.current.focus();\n }\n };\n CheckboxBase.defaultProps = {\n boxSide: 'start',\n };\n return CheckboxBase;\n}(React.Component));\nexport { CheckboxBase };\n//# sourceMappingURL=Checkbox.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Checkbox',\n label: 'ms-Checkbox-label',\n checkbox: 'ms-Checkbox-checkbox',\n checkmark: 'ms-Checkbox-checkmark',\n text: 'ms-Checkbox-text',\n};\nvar MS_CHECKBOX_LABEL_SIZE = '20px';\nvar MS_CHECKBOX_TRANSITION_DURATION = '200ms';\nvar MS_CHECKBOX_TRANSITION_TIMING = 'cubic-bezier(.4, 0, .23, 1)';\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n var className = props.className, theme = props.theme, reversed = props.reversed, checked = props.checked, disabled = props.disabled, isUsingCustomLabelRender = props.isUsingCustomLabelRender, indeterminate = props.indeterminate;\n var semanticColors = theme.semanticColors, effects = theme.effects, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var checkmarkFontColor = semanticColors.inputForegroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBorder\n var checkmarkFontColorHovered = palette.neutralSecondary;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n var checkboxBorderColor = palette.neutralPrimary;\n var checkboxBorderIndeterminateColor = semanticColors.inputBackgroundChecked;\n var checkboxBorderColorChecked = semanticColors.inputBackgroundChecked;\n var checkboxBorderColorDisabled = semanticColors.disabledBodySubtext;\n var checkboxBorderHoveredColor = semanticColors.inputBorderHovered;\n var checkboxBorderIndeterminateHoveredColor = semanticColors.inputBackgroundCheckedHovered;\n var checkboxBackgroundChecked = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping the following 2 tokens need to be\n // semanticColors.inputBackgroundCheckedHovered\n var checkboxBackgroundCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n var checkboxBorderColorCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n var checkboxHoveredTextColor = semanticColors.inputTextHovered;\n var checkboxBackgroundDisabledChecked = semanticColors.disabledBodySubtext;\n var checkboxTextColor = semanticColors.bodyText;\n var checkboxTextColorDisabled = semanticColors.disabledText;\n var indeterminateDotStyles = [\n (_a = {\n content: '\"\"',\n borderRadius: effects.roundedCorner2,\n position: 'absolute',\n width: 10,\n height: 10,\n top: 4,\n left: 4,\n boxSizing: 'border-box',\n borderWidth: 5,\n borderStyle: 'solid',\n borderColor: disabled ? checkboxBorderColorDisabled : checkboxBorderIndeterminateColor,\n transitionProperty: 'border-width, border, border-color',\n transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING\n },\n _a[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _a),\n ];\n return {\n root: [\n classNames.root,\n {\n position: 'relative',\n display: 'flex',\n },\n reversed && 'reversed',\n checked && 'is-checked',\n !disabled && 'is-enabled',\n disabled && 'is-disabled',\n !disabled && [\n !checked && (_b = {},\n _b[\":hover .\" + classNames.checkbox] = (_c = {\n borderColor: checkboxBorderHoveredColor\n },\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _c),\n _b[\":focus .\" + classNames.checkbox] = { borderColor: checkboxBorderHoveredColor },\n _b[\":hover .\" + classNames.checkmark] = (_d = {\n color: checkmarkFontColorHovered,\n opacity: '1'\n },\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n _b),\n checked &&\n !indeterminate && (_e = {},\n _e[\":hover .\" + classNames.checkbox] = {\n background: checkboxBackgroundCheckedHovered,\n borderColor: checkboxBorderColorCheckedHovered,\n },\n _e[\":focus .\" + classNames.checkbox] = {\n background: checkboxBackgroundCheckedHovered,\n borderColor: checkboxBorderColorCheckedHovered,\n },\n _e[HighContrastSelector] = (_f = {},\n _f[\":hover .\" + classNames.checkbox] = {\n background: 'Highlight',\n borderColor: 'Highlight',\n },\n _f[\":focus .\" + classNames.checkbox] = {\n background: 'Highlight',\n },\n _f[\":focus:hover .\" + classNames.checkbox] = {\n background: 'Highlight',\n },\n _f[\":focus:hover .\" + classNames.checkmark] = {\n color: 'Window',\n },\n _f[\":hover .\" + classNames.checkmark] = {\n color: 'Window',\n },\n _f),\n _e),\n indeterminate && (_g = {},\n _g[\":hover .\" + classNames.checkbox + \", :hover .\" + classNames.checkbox + \":after\"] = (_h = {\n borderColor: checkboxBorderIndeterminateHoveredColor\n },\n _h[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _h),\n _g[\":focus .\" + classNames.checkbox] = {\n borderColor: checkboxBorderIndeterminateHoveredColor,\n },\n _g[\":hover .\" + classNames.checkmark] = {\n opacity: '0',\n },\n _g),\n (_j = {},\n _j[\":hover .\" + classNames.text + \", :focus .\" + classNames.text] = (_k = {\n color: checkboxHoveredTextColor\n },\n _k[HighContrastSelector] = {\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _k),\n _j),\n ],\n className,\n ],\n input: (_l = {\n position: 'absolute',\n background: 'none',\n opacity: 0\n },\n _l[\".\" + IsFocusVisibleClassName + \" &:focus + label::before\"] = (_m = {\n outline: '1px solid ' + theme.palette.neutralSecondary,\n outlineOffset: '2px'\n },\n _m[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _m),\n _l),\n label: [\n classNames.label,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: isUsingCustomLabelRender ? 'center' : 'flex-start',\n cursor: disabled ? 'default' : 'pointer',\n position: 'relative',\n userSelect: 'none',\n },\n reversed && {\n flexDirection: 'row-reverse',\n justifyContent: 'flex-end',\n },\n {\n '&::before': {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n content: '\"\"',\n pointerEvents: 'none',\n },\n },\n ],\n checkbox: [\n classNames.checkbox,\n (_o = {\n position: 'relative',\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n height: MS_CHECKBOX_LABEL_SIZE,\n width: MS_CHECKBOX_LABEL_SIZE,\n border: \"1px solid \" + checkboxBorderColor,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n transitionProperty: 'background, border, border-color',\n transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING,\n /* in case the icon is bigger than the box */\n overflow: 'hidden',\n ':after': indeterminate ? indeterminateDotStyles : null\n },\n _o[HighContrastSelector] = __assign({ borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _o),\n indeterminate && {\n borderColor: checkboxBorderIndeterminateColor,\n },\n !reversed\n ? // This margin on the checkbox is for backwards compat. Notably it has the effect where a customRender\n // is used, there will be only a 4px margin from checkbox to label. The label by default would have\n // another 4px margin for a total of 8px margin between checkbox and label. We don't combine the two\n // (and move it into the text) to not incur a breaking change for everyone using custom render atm.\n {\n marginRight: 4,\n }\n : {\n marginLeft: 4,\n },\n !disabled &&\n !indeterminate &&\n checked && (_p = {\n background: checkboxBackgroundChecked,\n borderColor: checkboxBorderColorChecked\n },\n _p[HighContrastSelector] = {\n background: 'Highlight',\n borderColor: 'Highlight',\n },\n _p),\n disabled && (_q = {\n borderColor: checkboxBorderColorDisabled\n },\n _q[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _q),\n checked &&\n disabled && (_r = {\n background: checkboxBackgroundDisabledChecked,\n borderColor: checkboxBorderColorDisabled\n },\n _r[HighContrastSelector] = {\n background: 'Window',\n },\n _r),\n ],\n checkmark: [\n classNames.checkmark,\n (_s = {\n opacity: checked ? '1' : '0',\n color: checkmarkFontColor\n },\n _s[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'Window' }, getHighContrastNoAdjustStyle()),\n _s),\n ],\n text: [\n classNames.text,\n (_t = {\n color: disabled ? checkboxTextColorDisabled : checkboxTextColor,\n fontSize: fonts.medium.fontSize,\n lineHeight: '20px'\n },\n _t[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'WindowText' }, getHighContrastNoAdjustStyle()),\n _t),\n !reversed\n ? {\n marginLeft: 4,\n }\n : {\n marginRight: 4,\n },\n ],\n };\n};\n//# sourceMappingURL=Checkbox.styles.js.map","import { styled } from '../../Utilities';\nimport { CheckboxBase } from './Checkbox.base';\nimport { getStyles } from './Checkbox.styles';\nexport var Checkbox = styled(CheckboxBase, getStyles, undefined, { scope: 'Checkbox' });\n//# sourceMappingURL=Checkbox.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { initializeComponentRef, warnDeprecations, warnMutuallyExclusive, classNamesFunction, find, getId, isControlled, getNativeProps, divProperties, setFocusVisibility, } from '../../Utilities';\nimport { ChoiceGroupOption } from './ChoiceGroupOption/index';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ChoiceGroup}\n */\nvar ChoiceGroupBase = /** @class */ (function (_super) {\n __extends(ChoiceGroupBase, _super);\n function ChoiceGroupBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusCallbacks = {};\n _this._changeCallbacks = {};\n _this._onBlur = function (ev, option) {\n _this.setState({\n keyFocused: undefined,\n });\n };\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('ChoiceGroup', props, { onChanged: 'onChange' });\n warnMutuallyExclusive('ChoiceGroup', props, {\n selectedKey: 'defaultSelectedKey',\n });\n }\n var defaultSelectedKey = props.defaultSelectedKey, _a = props.options, options = _a === void 0 ? [] : _a;\n var validDefaultSelectedKey = !_isControlled(props) &&\n defaultSelectedKey !== undefined &&\n options.some(function (option) { return option.key === defaultSelectedKey; });\n _this.state = {\n keyChecked: validDefaultSelectedKey ? defaultSelectedKey : _this._getKeyChecked(props),\n };\n _this._id = getId('ChoiceGroup');\n _this._labelId = getId('ChoiceGroupLabel');\n return _this;\n }\n Object.defineProperty(ChoiceGroupBase.prototype, \"checkedOption\", {\n /**\n * Gets the current checked option.\n */\n get: function () {\n var _this = this;\n var _a = this.props.options, options = _a === void 0 ? [] : _a;\n return find(options, function (value) { return value.key === _this.state.keyChecked; });\n },\n enumerable: true,\n configurable: true\n });\n ChoiceGroupBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // Only update if a new props object has been passed in (don't care about state updates)\n if (prevProps !== this.props) {\n var newKeyChecked = this._getKeyChecked(this.props);\n var oldKeyChecked = this._getKeyChecked(prevProps);\n if (newKeyChecked !== oldKeyChecked) {\n this.setState({\n keyChecked: newKeyChecked,\n });\n }\n }\n };\n ChoiceGroupBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, theme = _a.theme, styles = _a.styles, _b = _a.options, options = _b === void 0 ? [] : _b, label = _a.label, required = _a.required, disabled = _a.disabled, name = _a.name;\n var _c = this.state, keyChecked = _c.keyChecked, keyFocused = _c.keyFocused;\n var divProps = getNativeProps(this.props, divProperties, [\n 'onChange',\n 'className',\n 'required',\n ]);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n optionsContainIconOrImage: options.some(function (option) { return !!(option.iconProps || option.imageSrc); }),\n });\n var labelId = this._id + '-label';\n var ariaLabelledBy = this.props.ariaLabelledBy || (label ? labelId : this.props['aria-labelledby']);\n // TODO (Fabric 8?) - if possible, move `root` class to the actual root and eliminate\n // `applicationRole` class (but the div structure will stay the same by necessity)\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({ className: classNames.applicationRole }, divProps),\n React.createElement(\"div\", __assign({ className: classNames.root, role: \"radiogroup\" }, (ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy })),\n label && (React.createElement(Label, { className: classNames.label, required: required, id: labelId, disabled: disabled }, label)),\n React.createElement(\"div\", { className: classNames.flexContainer }, options.map(function (option) {\n var innerOptionProps = __assign(__assign({}, option), { focused: option.key === keyFocused, checked: option.key === keyChecked, disabled: option.disabled || disabled, id: _this._getOptionId(option), labelId: _this._getOptionLabelId(option), name: name || _this._id, required: required });\n return (React.createElement(ChoiceGroupOption, __assign({ key: option.key, onBlur: _this._onBlur, onFocus: _this._onFocus(option.key), onChange: _this._onChange(option.key) }, innerOptionProps)));\n })))));\n };\n ChoiceGroupBase.prototype.focus = function () {\n var _a = this.props.options, options = _a === void 0 ? [] : _a;\n var optionToFocus = this.checkedOption || options.filter(function (option) { return !option.disabled; })[0];\n var elementToFocus = optionToFocus && document.getElementById(this._getOptionId(optionToFocus));\n if (elementToFocus) {\n elementToFocus.focus();\n setFocusVisibility(true, elementToFocus);\n }\n };\n ChoiceGroupBase.prototype._onFocus = function (key) {\n var _this = this;\n // This extra mess is necessary because React won't pass the `key` prop through to ChoiceGroupOption\n if (!this._focusCallbacks[key]) {\n this._focusCallbacks[key] = function (ev, option) {\n _this.setState({\n keyFocused: key,\n });\n };\n }\n return this._focusCallbacks[key];\n };\n ChoiceGroupBase.prototype._onChange = function (key) {\n var _this = this;\n // This extra mess is necessary because React won't pass the `key` prop through to ChoiceGroupOption\n if (!this._changeCallbacks[key]) {\n this._changeCallbacks[key] = function (evt, option) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onChanged = _a.onChanged, onChange = _a.onChange;\n // Only manage state in uncontrolled scenarios.\n if (!_isControlled(_this.props)) {\n _this.setState({\n keyChecked: key,\n });\n }\n // Get the original option without the `key` prop removed\n var originalOption = find(_this.props.options || [], function (value) { return value.key === key; });\n // TODO: onChanged deprecated, remove else if after 07/17/2017 when onChanged has been removed.\n if (onChange) {\n onChange(evt, originalOption);\n }\n else if (onChanged) {\n onChanged(originalOption, evt);\n }\n };\n }\n return this._changeCallbacks[key];\n };\n /**\n * Returns `selectedKey` if provided, or the key of the first option with the `checked` prop set.\n */\n ChoiceGroupBase.prototype._getKeyChecked = function (props) {\n if (props.selectedKey !== undefined) {\n return props.selectedKey;\n }\n var _a = props.options, options = _a === void 0 ? [] : _a;\n // eslint-disable-next-line deprecation/deprecation\n var optionsChecked = options.filter(function (option) { return option.checked; });\n return optionsChecked[0] && optionsChecked[0].key;\n };\n ChoiceGroupBase.prototype._getOptionId = function (option) {\n return option.id || this._id + \"-\" + option.key;\n };\n ChoiceGroupBase.prototype._getOptionLabelId = function (option) {\n return option.labelId || this._labelId + \"-\" + option.key;\n };\n return ChoiceGroupBase;\n}(React.Component));\nexport { ChoiceGroupBase };\nfunction _isControlled(props) {\n return isControlled(props, 'selectedKey');\n}\n//# sourceMappingURL=ChoiceGroup.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ChoiceFieldGroup',\n flexContainer: 'ms-ChoiceFieldGroup-flexContainer',\n};\nexport var getStyles = function (props) {\n var className = props.className, optionsContainIconOrImage = props.optionsContainIconOrImage, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n // TODO (Fabric 8?) - merge className back into `root` and apply root style to\n // the actual root role=application element\n applicationRole: className,\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'block',\n },\n ],\n flexContainer: [\n classNames.flexContainer,\n optionsContainIconOrImage && {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n ],\n };\n};\n//# sourceMappingURL=ChoiceGroup.styles.js.map","import { styled } from '../../Utilities';\nimport { ChoiceGroupBase } from './ChoiceGroup.base';\nimport { getStyles } from './ChoiceGroup.styles';\nexport var ChoiceGroup = styled(ChoiceGroupBase, getStyles, undefined, { scope: 'ChoiceGroup' });\n//# sourceMappingURL=ChoiceGroup.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../../../Image';\nimport { Icon } from '../../../Icon';\nimport { classNamesFunction, getNativeProps, inputProperties, css, initializeComponentRef } from '../../../Utilities';\nimport { composeRenderFunction } from '@uifabric/utilities';\nvar getClassNames = classNamesFunction();\nvar LARGE_IMAGE_SIZE = 71;\n/**\n * {@docCategory ChoiceGroup}\n */\nvar ChoiceGroupOptionBase = /** @class */ (function (_super) {\n __extends(ChoiceGroupOptionBase, _super);\n function ChoiceGroupOptionBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onChange = function (evt) {\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange(evt, _this.props);\n }\n };\n _this._onBlur = function (evt) {\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur(evt, _this.props);\n }\n };\n _this._onFocus = function (evt) {\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus(evt, _this.props);\n }\n };\n _this._onRenderField = function (props) {\n var id = props.id, imageSrc = props.imageSrc, _a = props.imageAlt, imageAlt = _a === void 0 ? '' : _a, selectedImageSrc = props.selectedImageSrc, iconProps = props.iconProps;\n var imageSize = props.imageSize ? props.imageSize : { width: 32, height: 32 };\n var onRenderLabel = props.onRenderLabel\n ? composeRenderFunction(props.onRenderLabel, _this._onRenderLabel)\n : _this._onRenderLabel;\n var label = onRenderLabel(props);\n return (React.createElement(\"label\", { htmlFor: id, className: _this._classNames.field },\n imageSrc && (React.createElement(\"div\", { className: _this._classNames.innerField },\n React.createElement(\"div\", { className: _this._classNames.imageWrapper },\n React.createElement(Image, { src: imageSrc, alt: imageAlt, width: imageSize.width, height: imageSize.height })),\n React.createElement(\"div\", { className: _this._classNames.selectedImageWrapper },\n React.createElement(Image, { src: selectedImageSrc, alt: imageAlt, width: imageSize.width, height: imageSize.height })))),\n iconProps && (React.createElement(\"div\", { className: _this._classNames.innerField },\n React.createElement(\"div\", { className: _this._classNames.iconWrapper },\n React.createElement(Icon, __assign({}, iconProps))))),\n imageSrc || iconProps ? React.createElement(\"div\", { className: _this._classNames.labelWrapper }, label) : label));\n };\n _this._onRenderLabel = function (props) {\n return (React.createElement(\"span\", { id: props.labelId, className: \"ms-ChoiceFieldLabel\" }, props.text));\n };\n initializeComponentRef(_this);\n return _this;\n }\n ChoiceGroupOptionBase.prototype.render = function () {\n var _a = this.props, ariaLabel = _a.ariaLabel, focused = _a.focused, required = _a.required, theme = _a.theme, iconProps = _a.iconProps, imageSrc = _a.imageSrc, imageSize = _a.imageSize, disabled = _a.disabled, \n // eslint-disable-next-line deprecation/deprecation\n checked = _a.checked, id = _a.id, styles = _a.styles, name = _a.name, _b = _a.onRenderField, onRenderField = _b === void 0 ? this._onRenderField : _b, rest = __rest(_a, [\"ariaLabel\", \"focused\", \"required\", \"theme\", \"iconProps\", \"imageSrc\", \"imageSize\", \"disabled\", \"checked\", \"id\", \"styles\", \"name\", \"onRenderField\"]);\n this._classNames = getClassNames(styles, {\n theme: theme,\n hasIcon: !!iconProps,\n hasImage: !!imageSrc,\n checked: checked,\n disabled: disabled,\n imageIsLarge: !!imageSrc && (imageSize.width > LARGE_IMAGE_SIZE || imageSize.height > LARGE_IMAGE_SIZE),\n imageSize: imageSize,\n focused: focused,\n });\n var _c = getNativeProps(rest, inputProperties), className = _c.className, nativeProps = __rest(_c, [\"className\"]);\n return (React.createElement(\"div\", { className: this._classNames.root },\n React.createElement(\"div\", { className: this._classNames.choiceFieldWrapper },\n React.createElement(\"input\", __assign({ \"aria-label\": ariaLabel, id: id, className: css(this._classNames.input, className), type: \"radio\", name: name, disabled: disabled, checked: checked, required: required }, nativeProps, { onChange: this._onChange, onFocus: this._onFocus, onBlur: this._onBlur })),\n onRenderField(this.props, this._onRenderField))));\n };\n ChoiceGroupOptionBase.defaultProps = {\n // This ensures default imageSize value doesn't mutate. Mutation can cause style re-calcuation.\n imageSize: { width: 32, height: 32 },\n };\n return ChoiceGroupOptionBase;\n}(React.Component));\nexport { ChoiceGroupOptionBase };\n//# sourceMappingURL=ChoiceGroupOption.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-ChoiceField',\n choiceFieldWrapper: 'ms-ChoiceField-wrapper',\n input: 'ms-ChoiceField-input',\n field: 'ms-ChoiceField-field',\n innerField: 'ms-ChoiceField-innerField',\n imageWrapper: 'ms-ChoiceField-imageWrapper',\n iconWrapper: 'ms-ChoiceField-iconWrapper',\n labelWrapper: 'ms-ChoiceField-labelWrapper',\n checked: 'is-checked',\n};\nvar labelWrapperLineHeight = 15;\nvar labelWrapperHeight = labelWrapperLineHeight * 2 + 2; // adding 2px height to ensure text doesn't get cutoff\nvar iconSize = 32;\nvar choiceFieldSize = 20;\nvar choiceFieldTransitionDuration = '200ms';\nvar choiceFieldTransitionTiming = 'cubic-bezier(.4, 0, .23, 1)';\nvar radioButtonSpacing = 3;\nvar radioButtonInnerSize = 5;\nfunction getChoiceGroupFocusStyle(focusBorderColor, hasIconOrImage) {\n var _a, _b;\n return [\n 'is-inFocus',\n {\n selectors: (_a = {},\n _a[\".\" + IsFocusVisibleClassName + \" &\"] = {\n position: 'relative',\n outline: 'transparent',\n selectors: {\n '::-moz-focus-inner': {\n border: 0,\n },\n ':after': {\n content: '\"\"',\n top: -2,\n right: -2,\n bottom: -2,\n left: -2,\n pointerEvents: 'none',\n border: \"1px solid \" + focusBorderColor,\n position: 'absolute',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'WindowText',\n borderWidth: hasIconOrImage ? 1 : 2,\n },\n _b),\n },\n },\n },\n _a),\n },\n ];\n}\nfunction getImageWrapperStyle(isSelectedImageWrapper, className, checked) {\n return [\n className,\n {\n paddingBottom: 2,\n transitionProperty: 'opacity',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: 'ease',\n selectors: {\n '.ms-Image': {\n display: 'inline-block',\n borderStyle: 'none',\n },\n },\n },\n (checked ? !isSelectedImageWrapper : isSelectedImageWrapper) && [\n 'is-hidden',\n {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n opacity: 0,\n },\n ],\n ];\n}\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, hasIcon = props.hasIcon, hasImage = props.hasImage, checked = props.checked, disabled = props.disabled, imageIsLarge = props.imageIsLarge, focused = props.focused, imageSize = props.imageSize;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Tokens\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n var circleBorderColor = palette.neutralPrimary;\n var circleHoveredBorderColor = semanticColors.inputBorderHovered;\n var circleCheckedBorderColor = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var circleCheckedHoveredBorderColor = palette.themeDark;\n var circleDisabledBorderColor = semanticColors.disabledBodySubtext;\n var circleBackgroundColor = semanticColors.bodyBackground;\n var dotUncheckedHoveredColor = palette.neutralSecondary;\n var dotCheckedColor = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var dotCheckedHoveredColor = palette.themeDark;\n var dotDisabledColor = semanticColors.disabledBodySubtext;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.bodyTextChecked\n var labelHoverFocusColor = palette.neutralDark;\n var focusBorderColor = semanticColors.focusBorder;\n var iconOrImageChoiceBorderUncheckedHoveredColor = semanticColors.inputBorderHovered;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var iconOrImageChoiceBorderCheckedColor = semanticColors.inputBackgroundChecked;\n var iconOrImageChoiceBorderCheckedHoveredColor = palette.themeDark;\n var iconOrImageChoiceBackgroundColor = palette.neutralLighter;\n var fieldHoverOrFocusProperties = {\n selectors: {\n '.ms-ChoiceFieldLabel': {\n color: labelHoverFocusColor,\n },\n ':before': {\n borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n },\n ':after': [\n !hasIcon &&\n !hasImage &&\n !checked && {\n content: '\"\"',\n transitionProperty: 'background-color',\n left: 5,\n top: 5,\n width: 10,\n height: 10,\n backgroundColor: dotUncheckedHoveredColor,\n },\n checked && {\n borderColor: dotCheckedHoveredColor,\n },\n ],\n },\n };\n var enabledFieldWithImageHoverOrFocusProperties = {\n borderColor: checked ? iconOrImageChoiceBorderCheckedHoveredColor : iconOrImageChoiceBorderUncheckedHoveredColor,\n selectors: {\n ':before': {\n opacity: 1,\n borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n },\n },\n };\n var circleAreaProperties = [\n {\n content: '\"\"',\n display: 'inline-block',\n backgroundColor: circleBackgroundColor,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: circleBorderColor,\n width: choiceFieldSize,\n height: choiceFieldSize,\n fontWeight: 'normal',\n position: 'absolute',\n top: 0,\n left: 0,\n boxSizing: 'border-box',\n transitionProperty: 'border-color',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: choiceFieldTransitionTiming,\n borderRadius: '50%',\n },\n disabled && {\n borderColor: circleDisabledBorderColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderColor: 'GrayText', background: 'Window' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n checked && {\n borderColor: disabled ? circleDisabledBorderColor : circleCheckedBorderColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n background: 'Window',\n forcedColorAdjust: 'none',\n },\n _b),\n },\n (hasIcon || hasImage) && {\n top: radioButtonSpacing,\n right: radioButtonSpacing,\n left: 'auto',\n opacity: checked ? 1 : 0,\n },\n ];\n var dotAreaProperties = [\n {\n content: '\"\"',\n width: 0,\n height: 0,\n borderRadius: '50%',\n position: 'absolute',\n left: choiceFieldSize / 2,\n right: 0,\n transitionProperty: 'border-width',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: choiceFieldTransitionTiming,\n boxSizing: 'border-box',\n },\n checked && {\n borderWidth: 5,\n borderStyle: 'solid',\n borderColor: disabled ? dotDisabledColor : dotCheckedColor,\n left: 5,\n top: 5,\n width: 10,\n height: 10,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n checked &&\n (hasIcon || hasImage) && {\n top: radioButtonSpacing + radioButtonInnerSize,\n right: radioButtonSpacing + radioButtonInnerSize,\n left: 'auto',\n },\n ];\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n color: semanticColors.bodyText,\n minHeight: 26,\n border: 'none',\n position: 'relative',\n marginTop: 8,\n selectors: {\n '.ms-ChoiceFieldLabel': {\n display: 'inline-block',\n },\n },\n },\n !hasIcon &&\n !hasImage && {\n selectors: {\n '.ms-ChoiceFieldLabel': {\n paddingLeft: '26px',\n },\n },\n },\n hasImage && 'ms-ChoiceField--image',\n hasIcon && 'ms-ChoiceField--icon',\n (hasIcon || hasImage) && {\n display: 'inline-flex',\n fontSize: 0,\n margin: '0 4px 4px 0',\n paddingLeft: 0,\n backgroundColor: iconOrImageChoiceBackgroundColor,\n height: '100%',\n },\n ],\n choiceFieldWrapper: [\n classNames.choiceFieldWrapper,\n focused && getChoiceGroupFocusStyle(focusBorderColor, hasIcon || hasImage),\n ],\n // The hidden input\n input: [\n classNames.input,\n {\n position: 'absolute',\n opacity: 0,\n top: 0,\n right: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n },\n disabled && 'is-disabled',\n ],\n field: [\n classNames.field,\n checked && classNames.checked,\n {\n display: 'inline-block',\n cursor: 'pointer',\n marginTop: 0,\n position: 'relative',\n verticalAlign: 'top',\n userSelect: 'none',\n minHeight: 20,\n selectors: {\n ':hover': !disabled && fieldHoverOrFocusProperties,\n ':focus': !disabled && fieldHoverOrFocusProperties,\n // The circle\n ':before': circleAreaProperties,\n // The dot\n ':after': dotAreaProperties,\n },\n },\n hasIcon && 'ms-ChoiceField--icon',\n hasImage && 'ms-ChoiceField-field--image',\n (hasIcon || hasImage) && {\n boxSizing: 'content-box',\n cursor: 'pointer',\n paddingTop: 22,\n margin: 0,\n textAlign: 'center',\n transitionProperty: 'all',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: 'ease',\n border: '1px solid transparent',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n checked && {\n borderColor: iconOrImageChoiceBorderCheckedColor,\n },\n (hasIcon || hasImage) &&\n !disabled && {\n selectors: {\n ':hover': enabledFieldWithImageHoverOrFocusProperties,\n ':focus': enabledFieldWithImageHoverOrFocusProperties,\n },\n },\n disabled && {\n cursor: 'default',\n selectors: {\n '.ms-ChoiceFieldLabel': {\n color: semanticColors.disabledBodyText,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n },\n },\n checked &&\n disabled && {\n borderColor: iconOrImageChoiceBackgroundColor,\n },\n ],\n innerField: [\n classNames.innerField,\n hasImage && {\n // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n height: imageSize.height,\n width: imageSize.width,\n },\n (hasIcon || hasImage) && {\n position: 'relative',\n display: 'inline-block',\n paddingLeft: 30,\n paddingRight: 30,\n },\n (hasIcon || hasImage) &&\n imageIsLarge && {\n paddingLeft: 24,\n paddingRight: 24,\n },\n (hasIcon || hasImage) &&\n disabled && {\n opacity: 0.25,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'GrayText',\n opacity: 1,\n },\n _e),\n },\n ],\n imageWrapper: getImageWrapperStyle(false, classNames.imageWrapper, checked),\n selectedImageWrapper: getImageWrapperStyle(true, classNames.imageWrapper, checked),\n iconWrapper: [\n classNames.iconWrapper,\n {\n fontSize: iconSize,\n lineHeight: iconSize,\n height: iconSize,\n },\n ],\n labelWrapper: [\n classNames.labelWrapper,\n fonts.medium,\n (hasIcon || hasImage) && {\n display: 'block',\n position: 'relative',\n margin: '4px 8px 2px 8px',\n height: labelWrapperHeight,\n lineHeight: labelWrapperLineHeight,\n // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n maxWidth: imageSize.width * 2,\n overflow: 'hidden',\n whiteSpace: 'pre-wrap',\n },\n ],\n };\n};\n//# sourceMappingURL=ChoiceGroupOption.styles.js.map","import { styled } from '../../../Utilities';\nimport { ChoiceGroupOptionBase } from './ChoiceGroupOption.base';\nimport { getStyles } from './ChoiceGroupOption.styles';\nexport var ChoiceGroupOption = styled(ChoiceGroupOptionBase, getStyles, undefined, { scope: 'ChoiceGroupOption' });\n//# sourceMappingURL=ChoiceGroupOption.js.map","import { HighContrastSelector } from '../../../Styling';\nexport function getStyles(props) {\n var _a;\n return {\n root: [\n {\n position: 'absolute',\n boxShadow: 'inherit',\n border: 'none',\n boxSizing: 'border-box',\n transform: props.transform,\n width: props.width,\n height: props.height,\n left: props.left,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n },\n ],\n beak: {\n fill: props.color,\n display: 'block',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n fill: 'windowtext',\n },\n _a),\n },\n };\n}\n//# sourceMappingURL=Beak.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../../Utilities';\nimport { getStyles } from './Beak.styles';\nimport { RectangleEdge } from '../../../utilities/positioning';\nexport var BEAK_HEIGHT = 10;\nexport var BEAK_WIDTH = 18;\nvar Beak = /** @class */ (function (_super) {\n __extends(Beak, _super);\n function Beak(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n Beak.prototype.render = function () {\n var _a = this.props, left = _a.left, top = _a.top, bottom = _a.bottom, right = _a.right, color = _a.color, _b = _a.direction, direction = _b === void 0 ? RectangleEdge.top : _b;\n var svgHeight;\n var svgWidth;\n if (direction === RectangleEdge.top || direction === RectangleEdge.bottom) {\n svgHeight = BEAK_HEIGHT;\n svgWidth = BEAK_WIDTH;\n }\n else {\n svgHeight = BEAK_WIDTH;\n svgWidth = BEAK_HEIGHT;\n }\n var pointOne;\n var pointTwo;\n var pointThree;\n var transform;\n switch (direction) {\n case RectangleEdge.top:\n default:\n pointOne = BEAK_WIDTH / 2 + \", 0\";\n pointTwo = BEAK_WIDTH + \", \" + BEAK_HEIGHT;\n pointThree = \"0, \" + BEAK_HEIGHT;\n transform = 'translateY(-100%)';\n break;\n case RectangleEdge.right:\n pointOne = \"0, 0\";\n pointTwo = BEAK_HEIGHT + \", \" + BEAK_HEIGHT;\n pointThree = \"0, \" + BEAK_WIDTH;\n transform = 'translateX(100%)';\n break;\n case RectangleEdge.bottom:\n pointOne = \"0, 0\";\n pointTwo = BEAK_WIDTH + \", 0\";\n pointThree = BEAK_WIDTH / 2 + \", \" + BEAK_HEIGHT;\n transform = 'translateY(100%)';\n break;\n case RectangleEdge.left:\n pointOne = BEAK_HEIGHT + \", 0\";\n pointTwo = \"0, \" + BEAK_HEIGHT;\n pointThree = BEAK_HEIGHT + \", \" + BEAK_WIDTH;\n transform = 'translateX(-100%)';\n break;\n }\n var getClassNames = classNamesFunction();\n var classNames = getClassNames(getStyles, {\n left: left,\n top: top,\n bottom: bottom,\n right: right,\n height: svgHeight + \"px\",\n width: svgWidth + \"px\",\n transform: transform,\n color: color,\n });\n return (React.createElement(\"div\", { className: classNames.root, role: \"presentation\" },\n React.createElement(\"svg\", { height: svgHeight, width: svgWidth, className: classNames.beak },\n React.createElement(\"polygon\", { points: pointOne + ' ' + pointTwo + ' ' + pointThree }))));\n };\n return Beak;\n}(React.Component));\nexport { Beak };\n//# sourceMappingURL=Beak.js.map","import { __assign, __extends } from \"tslib\";\n// Utilities\nimport * as React from 'react';\nimport { classNamesFunction, elementContains, focusFirstChild, getDocument, KeyCodes, shallowCompare, getRTL, warnDeprecations, EventGroup, Async, initializeComponentRef, } from '../../Utilities';\nimport { RectangleEdge, getOppositeEdge } from '../../utilities/positioning';\n// Component Dependencies\nimport { PositioningContainer } from './PositioningContainer/index';\nimport { Beak, BEAK_HEIGHT, BEAK_WIDTH } from './Beak/Beak';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { COACHMARK_HEIGHT, COACHMARK_WIDTH } from './Coachmark.styles';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nvar getClassNames = classNamesFunction();\nexport var COACHMARK_ATTRIBUTE_NAME = 'data-coachmarkid';\nvar COMPONENT_NAME = 'Coachmark';\nvar CoachmarkBase = /** @class */ (function (_super) {\n __extends(CoachmarkBase, _super);\n function CoachmarkBase(props) {\n var _this = _super.call(this, props) || this;\n /**\n * The cached HTMLElement reference to the Entity Inner Host\n * element.\n */\n _this._entityHost = React.createRef();\n _this._entityInnerHostElement = React.createRef();\n _this._translateAnimationContainer = React.createRef();\n _this._ariaAlertContainer = React.createRef();\n _this._childrenContainer = React.createRef();\n _this._positioningContainer = React.createRef();\n _this.dismiss = function (ev) {\n var onDismiss = _this.props.onDismiss;\n if (onDismiss) {\n onDismiss(ev);\n }\n };\n _this._onKeyDown = function (e) {\n // Open coachmark if user presses ALT + C (arbitrary keypress for now)\n if ((e.altKey && e.which === KeyCodes.c) ||\n (e.which === KeyCodes.enter &&\n _this._translateAnimationContainer.current &&\n _this._translateAnimationContainer.current.contains(e.target))) {\n _this._onFocusHandler();\n }\n };\n _this._onFocusHandler = function () {\n if (_this.state.isCollapsed) {\n _this._openCoachmark();\n }\n };\n _this._onPositioned = function (positionData) {\n _this._async.requestAnimationFrame(function () {\n _this.setState({\n targetAlignment: positionData.alignmentEdge,\n targetPosition: positionData.targetEdge,\n });\n });\n };\n _this._setBeakPosition = function () {\n var beakLeft;\n var beakTop;\n var beakRight;\n var beakBottom;\n var transformOriginX;\n var transformOriginY;\n var targetAlignment = _this.state.targetAlignment;\n var distanceAdjustment = '3px'; // Adjustment distance for Beak to shift towards Coachmark bubble.\n switch (_this._beakDirection) {\n // If Beak is pointing Up or Down\n case RectangleEdge.top:\n case RectangleEdge.bottom:\n // If there is no target alignment, then beak is X-axis centered in callout\n if (!targetAlignment) {\n beakLeft = \"calc(50% - \" + BEAK_WIDTH / 2 + \"px)\";\n transformOriginX = 'center';\n }\n else {\n // Beak is aligned to the left of target\n if (targetAlignment === RectangleEdge.left) {\n beakLeft = COACHMARK_WIDTH / 2 - BEAK_WIDTH / 2 + \"px\";\n transformOriginX = 'left';\n }\n else {\n // Beak is aligned to the right of target\n beakRight = COACHMARK_WIDTH / 2 - BEAK_WIDTH / 2 + \"px\";\n transformOriginX = 'right';\n }\n }\n if (_this._beakDirection === RectangleEdge.top) {\n beakTop = distanceAdjustment;\n transformOriginY = 'top';\n }\n else {\n beakBottom = distanceAdjustment;\n transformOriginY = 'bottom';\n }\n break;\n // If Beak is pointing Left or Right\n case RectangleEdge.left:\n case RectangleEdge.right:\n // If there is no target alignment, then beak is Y-axis centered in callout\n if (!targetAlignment) {\n beakTop = \"calc(50% - \" + BEAK_WIDTH / 2 + \"px)\";\n transformOriginY = \"center\";\n }\n else {\n // Beak is aligned to the top of target\n if (targetAlignment === RectangleEdge.top) {\n beakTop = COACHMARK_WIDTH / 2 - BEAK_WIDTH / 2 + \"px\";\n transformOriginY = \"top\";\n }\n else {\n // Beak is aligned to the bottom of target\n beakBottom = COACHMARK_WIDTH / 2 - BEAK_WIDTH / 2 + \"px\";\n transformOriginY = \"bottom\";\n }\n }\n if (_this._beakDirection === RectangleEdge.left) {\n if (getRTL(_this.props.theme)) {\n beakRight = distanceAdjustment;\n }\n else {\n beakLeft = distanceAdjustment;\n }\n transformOriginX = 'left';\n }\n else {\n if (getRTL(_this.props.theme)) {\n beakLeft = distanceAdjustment;\n }\n else {\n beakRight = distanceAdjustment;\n }\n transformOriginX = 'right';\n }\n break;\n }\n _this.setState({\n beakLeft: beakLeft,\n beakRight: beakRight,\n beakBottom: beakBottom,\n beakTop: beakTop,\n transformOrigin: transformOriginX + \" \" + transformOriginY,\n });\n };\n _this._openCoachmark = function () {\n _this.setState({\n isCollapsed: false,\n });\n if (_this.props.onAnimationOpenStart) {\n _this.props.onAnimationOpenStart();\n }\n _this._entityInnerHostElement.current &&\n _this._entityInnerHostElement.current.addEventListener('transitionend', function () {\n // Need setTimeout to trigger narrator\n _this._async.setTimeout(function () {\n if (_this._entityInnerHostElement.current) {\n focusFirstChild(_this._entityInnerHostElement.current);\n }\n }, 1000);\n if (_this.props.onAnimationOpenEnd) {\n _this.props.onAnimationOpenEnd();\n }\n });\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n teachingBubbleRef: undefined,\n collapsed: 'isCollapsed',\n beakWidth: undefined,\n beakHeight: undefined,\n width: undefined,\n height: undefined,\n });\n // Set defaults for state\n _this.state = {\n isCollapsed: props.isCollapsed,\n isBeaconAnimating: true,\n isMeasuring: true,\n entityInnerHostRect: {\n width: 0,\n height: 0,\n },\n isMouseInProximity: false,\n isMeasured: false,\n };\n return _this;\n }\n Object.defineProperty(CoachmarkBase.prototype, \"_beakDirection\", {\n get: function () {\n var targetPosition = this.state.targetPosition;\n if (targetPosition === undefined) {\n return RectangleEdge.bottom;\n }\n return getOppositeEdge(targetPosition);\n },\n enumerable: true,\n configurable: true\n });\n CoachmarkBase.prototype.render = function () {\n var _a = this.props, beaconColorOne = _a.beaconColorOne, beaconColorTwo = _a.beaconColorTwo, children = _a.children, target = _a.target, color = _a.color, positioningContainerProps = _a.positioningContainerProps, ariaDescribedBy = _a.ariaDescribedBy, ariaDescribedByText = _a.ariaDescribedByText, ariaLabelledBy = _a.ariaLabelledBy, ariaLabelledByText = _a.ariaLabelledByText, ariaAlertText = _a.ariaAlertText, delayBeforeCoachmarkAnimation = _a.delayBeforeCoachmarkAnimation, styles = _a.styles, theme = _a.theme, className = _a.className, persistentBeak = _a.persistentBeak;\n var _b = this.state, beakLeft = _b.beakLeft, beakTop = _b.beakTop, beakRight = _b.beakRight, beakBottom = _b.beakBottom, isCollapsed = _b.isCollapsed, isBeaconAnimating = _b.isBeaconAnimating, isMeasuring = _b.isMeasuring, entityInnerHostRect = _b.entityInnerHostRect, transformOrigin = _b.transformOrigin, alertText = _b.alertText, isMeasured = _b.isMeasured;\n // Defaulting the main background before passing it to the styles because it is used for `Beak` too.\n var defaultColor = color;\n if (!defaultColor && theme) {\n defaultColor = theme.semanticColors.primaryButtonBackground;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n beaconColorOne: beaconColorOne,\n beaconColorTwo: beaconColorTwo,\n className: className,\n isCollapsed: isCollapsed,\n isBeaconAnimating: isBeaconAnimating,\n isMeasuring: isMeasuring,\n color: defaultColor,\n transformOrigin: transformOrigin,\n isMeasured: isMeasured,\n entityHostHeight: entityInnerHostRect.height + \"px\",\n entityHostWidth: entityInnerHostRect.width + \"px\",\n width: COACHMARK_WIDTH + \"px\",\n height: COACHMARK_HEIGHT + \"px\",\n delayBeforeCoachmarkAnimation: delayBeforeCoachmarkAnimation + \"ms\",\n });\n var finalHeight = isCollapsed ? COACHMARK_HEIGHT : entityInnerHostRect.height;\n return (React.createElement(PositioningContainer, __assign({ target: target, offsetFromTarget: BEAK_HEIGHT, componentRef: this._positioningContainer, finalHeight: finalHeight, onPositioned: this._onPositioned, bounds: this._getBounds() }, positioningContainerProps),\n React.createElement(\"div\", { className: classNames.root },\n ariaAlertText && (React.createElement(\"div\", { className: classNames.ariaContainer, role: \"alert\", ref: this._ariaAlertContainer, \"aria-hidden\": !isCollapsed }, alertText)),\n React.createElement(\"div\", { className: classNames.pulsingBeacon }),\n React.createElement(\"div\", { className: classNames.translateAnimationContainer, ref: this._translateAnimationContainer },\n React.createElement(\"div\", { className: classNames.scaleAnimationLayer },\n React.createElement(\"div\", { className: classNames.rotateAnimationLayer },\n this._positioningContainer.current && (isCollapsed || persistentBeak) && (React.createElement(Beak, { left: beakLeft, top: beakTop, right: beakRight, bottom: beakBottom, direction: this._beakDirection, color: defaultColor })),\n React.createElement(\"div\", { className: classNames.entityHost, ref: this._entityHost, tabIndex: -1, \"data-is-focusable\": true, role: \"dialog\", \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy },\n isCollapsed && [\n ariaLabelledBy && (React.createElement(\"p\", { id: ariaLabelledBy, key: 0, className: classNames.ariaContainer }, ariaLabelledByText)),\n ariaDescribedBy && (React.createElement(\"p\", { id: ariaDescribedBy, key: 1, className: classNames.ariaContainer }, ariaDescribedByText)),\n ],\n React.createElement(FocusTrapZone, { isClickableOutsideFocusTrap: true, forceFocusInsideTrap: false },\n React.createElement(\"div\", { className: classNames.entityInnerHost, ref: this._entityInnerHostElement },\n React.createElement(\"div\", { className: classNames.childrenContainer, ref: this._childrenContainer, \"aria-hidden\": isCollapsed }, children))))))))));\n };\n CoachmarkBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n if (this.props.isCollapsed && !newProps.isCollapsed) {\n // The coachmark is about to open\n this._openCoachmark();\n }\n };\n CoachmarkBase.prototype.shouldComponentUpdate = function (newProps, newState) {\n return !shallowCompare(newProps, this.props) || !shallowCompare(newState, this.state);\n };\n CoachmarkBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (prevState.targetAlignment !== this.state.targetAlignment ||\n prevState.targetPosition !== this.state.targetPosition) {\n this._setBeakPosition();\n }\n if (prevProps.preventDismissOnLostFocus !== this.props.preventDismissOnLostFocus) {\n this._addListeners();\n }\n };\n CoachmarkBase.prototype.componentDidMount = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n if (_this._entityInnerHostElement.current &&\n _this.state.entityInnerHostRect.width + _this.state.entityInnerHostRect.width === 0) {\n _this.setState({\n isMeasuring: false,\n entityInnerHostRect: {\n width: _this._entityInnerHostElement.current.offsetWidth,\n height: _this._entityInnerHostElement.current.offsetHeight,\n },\n isMeasured: true,\n });\n _this._setBeakPosition();\n _this.forceUpdate();\n }\n _this._addListeners();\n // We don't want to the user to immediately trigger the Coachmark when it's opened\n _this._async.setTimeout(function () {\n _this._addProximityHandler(_this.props.mouseProximityOffset);\n }, _this.props.delayBeforeMouseOpen);\n // Need to add setTimeout to have narrator read change in alert container\n if (_this.props.ariaAlertText) {\n _this._async.setTimeout(function () {\n if (_this.props.ariaAlertText && _this._ariaAlertContainer.current) {\n _this.setState({\n alertText: _this.props.ariaAlertText,\n });\n }\n }, 0);\n }\n if (!_this.props.preventFocusOnMount) {\n _this._async.setTimeout(function () {\n if (_this._entityHost.current) {\n _this._entityHost.current.focus();\n }\n }, 1000);\n }\n });\n };\n CoachmarkBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n CoachmarkBase.prototype._addListeners = function () {\n var preventDismissOnLostFocus = this.props.preventDismissOnLostFocus;\n var currentDoc = getDocument();\n this._events.off();\n if (currentDoc) {\n this._events.on(currentDoc, 'keydown', this._onKeyDown, true);\n if (!preventDismissOnLostFocus) {\n this._events.on(currentDoc, 'click', this._dismissOnLostFocus, true);\n this._events.on(currentDoc, 'focus', this._dismissOnLostFocus, true);\n }\n }\n };\n CoachmarkBase.prototype._dismissOnLostFocus = function (ev) {\n var clickTarget = ev.target;\n var clickedOutsideCallout = this._translateAnimationContainer.current &&\n !elementContains(this._translateAnimationContainer.current, clickTarget);\n var target = this.props.target;\n if (clickedOutsideCallout && clickTarget !== target && !elementContains(target, clickTarget)) {\n this.dismiss(ev);\n }\n };\n CoachmarkBase.prototype._getBounds = function () {\n var _a = this.props, isPositionForced = _a.isPositionForced, positioningContainerProps = _a.positioningContainerProps;\n if (isPositionForced) {\n // If directionalHint direction is the top or bottom auto edge, then we want to set the left/right bounds\n // to the window x-axis to have auto positioning work correctly.\n if (positioningContainerProps &&\n (positioningContainerProps.directionalHint === DirectionalHint.topAutoEdge ||\n positioningContainerProps.directionalHint === DirectionalHint.bottomAutoEdge)) {\n return {\n left: 0,\n top: -Infinity,\n bottom: Infinity,\n right: window.innerWidth,\n width: window.innerWidth,\n height: Infinity,\n };\n }\n else {\n return {\n left: -Infinity,\n top: -Infinity,\n bottom: Infinity,\n right: Infinity,\n width: Infinity,\n height: Infinity,\n };\n }\n }\n else {\n return undefined;\n }\n };\n CoachmarkBase.prototype._addProximityHandler = function (mouseProximityOffset) {\n var _this = this;\n if (mouseProximityOffset === void 0) { mouseProximityOffset = 0; }\n /**\n * An array of cached ids returned when setTimeout runs during\n * the window resize event trigger.\n */\n var timeoutIds = [];\n // Take the initial measure out of the initial render to prevent\n // an unnecessary render.\n this._async.setTimeout(function () {\n _this._setTargetElementRect();\n // When the window resizes we want to async\n // get the bounding client rectangle.\n // Every time the event is triggered we want to\n // setTimeout and then clear any previous instances\n // of setTimeout.\n _this._events.on(window, 'resize', function () {\n timeoutIds.forEach(function (value) {\n clearInterval(value);\n });\n timeoutIds.push(_this._async.setTimeout(function () {\n _this._setTargetElementRect();\n }, 100));\n });\n }, 10);\n // Every time the document's mouse move is triggered\n // we want to check if inside of an element and\n // set the state with the result.\n this._events.on(document, 'mousemove', function (e) {\n if (_this.state.isCollapsed) {\n var mouseY = e.clientY;\n var mouseX = e.clientX;\n _this._setTargetElementRect();\n var isMouseInProximity = _this._isInsideElement(mouseX, mouseY, mouseProximityOffset);\n if (isMouseInProximity !== _this.state.isMouseInProximity) {\n _this._openCoachmark();\n }\n }\n if (_this.props.onMouseMove) {\n _this.props.onMouseMove(e);\n }\n });\n };\n CoachmarkBase.prototype._setTargetElementRect = function () {\n if (this._translateAnimationContainer && this._translateAnimationContainer.current) {\n this._targetElementRect = this._translateAnimationContainer.current.getBoundingClientRect();\n }\n };\n CoachmarkBase.prototype._isInsideElement = function (mouseX, mouseY, mouseProximityOffset) {\n if (mouseProximityOffset === void 0) { mouseProximityOffset = 0; }\n return (mouseX > this._targetElementRect.left - mouseProximityOffset &&\n mouseX < this._targetElementRect.left + this._targetElementRect.width + mouseProximityOffset &&\n mouseY > this._targetElementRect.top - mouseProximityOffset &&\n mouseY < this._targetElementRect.top + this._targetElementRect.height + mouseProximityOffset);\n };\n CoachmarkBase.defaultProps = {\n isCollapsed: true,\n mouseProximityOffset: 10,\n delayBeforeMouseOpen: 3600,\n delayBeforeCoachmarkAnimation: 0,\n isPositionForced: true,\n positioningContainerProps: {\n directionalHint: DirectionalHint.bottomAutoEdge,\n },\n };\n return CoachmarkBase;\n}(React.Component));\nexport { CoachmarkBase };\n//# sourceMappingURL=Coachmark.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Coachmark.styles';\nimport { CoachmarkBase } from './Coachmark.base';\nexport var Coachmark = styled(CoachmarkBase, getStyles, undefined, {\n scope: 'Coachmark',\n});\n//# sourceMappingURL=Coachmark.js.map","import { keyframes, PulsingBeaconAnimationStyles, HighContrastSelector } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName, memoizeFunction } from '../../Utilities';\nexport var COACHMARK_WIDTH = 32;\nexport var COACHMARK_HEIGHT = 32;\nexport var translateOne = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'translate(0, 0)',\n animationTimingFunction: 'linear',\n },\n '78.57%': {\n transform: 'translate(0, 0)',\n animationTimingFunction: 'cubic-bezier(0.62, 0, 0.56, 1)',\n },\n '82.14%': {\n transform: 'translate(0, -5px)',\n animationTimingFunction: 'cubic-bezier(0.58, 0, 0, 1)',\n },\n '84.88%': {\n transform: 'translate(0, 9px)',\n animationTimingFunction: 'cubic-bezier(1, 0, 0.56, 1)',\n },\n '88.1%': {\n transform: 'translate(0, -2px)',\n animationTimingFunction: 'cubic-bezier(0.58, 0, 0.67, 1)',\n },\n '90.12%': {\n transform: 'translate(0, 0)',\n animationTimingFunction: 'linear',\n },\n '100%': {\n transform: 'translate(0, 0)',\n },\n });\n});\nexport var scaleOne = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: ' scale(0)',\n animationTimingFunction: 'linear',\n },\n '14.29%': {\n transform: 'scale(0)',\n animationTimingFunction: 'cubic-bezier(0.84, 0, 0.52, 0.99)',\n },\n '16.67%': {\n transform: 'scale(1.15)',\n animationTimingFunction: 'cubic-bezier(0.48, -0.01, 0.52, 1.01)',\n },\n '19.05%': {\n transform: 'scale(0.95)',\n animationTimingFunction: 'cubic-bezier(0.48, 0.02, 0.52, 0.98)',\n },\n '21.43%': {\n transform: 'scale(1)',\n animationTimingFunction: 'linear',\n },\n '42.86%': {\n transform: 'scale(1)',\n animationTimingFunction: 'cubic-bezier(0.48, -0.02, 0.52, 1.02)',\n },\n '45.71%': {\n transform: 'scale(0.8)',\n animationTimingFunction: 'cubic-bezier(0.48, 0.01, 0.52, 0.99)',\n },\n '50%': {\n transform: 'scale(1)',\n animationTimingFunction: 'linear',\n },\n '90.12%': {\n transform: 'scale(1)',\n animationTimingFunction: 'cubic-bezier(0.48, -0.02, 0.52, 1.02)',\n },\n '92.98%': {\n transform: 'scale(0.8)',\n animationTimingFunction: 'cubic-bezier(0.48, 0.01, 0.52, 0.99)',\n },\n '97.26%': {\n transform: 'scale(1)',\n animationTimingFunction: 'linear',\n },\n '100%': {\n transform: 'scale(1)',\n },\n });\n});\nexport var rotateOne = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)',\n animationTimingFunction: 'linear',\n },\n '83.33%': {\n transform: ' rotate(0deg)',\n animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)',\n },\n '83.93%': {\n transform: 'rotate(15deg)',\n animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)',\n },\n '84.52%': {\n transform: 'rotate(-15deg)',\n animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)',\n },\n '85.12%': {\n transform: 'rotate(15deg)',\n animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)',\n },\n '85.71%': {\n transform: 'rotate(-15deg)',\n animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)',\n },\n '86.31%': {\n transform: 'rotate(0deg)',\n animationTimingFunction: 'linear',\n },\n '100%': {\n transform: 'rotate(0deg)',\n },\n });\n});\nexport function getStyles(props) {\n var _a;\n var theme = props.theme, className = props.className, color = props.color, beaconColorOne = props.beaconColorOne, beaconColorTwo = props.beaconColorTwo, delayBeforeCoachmarkAnimation = props.delayBeforeCoachmarkAnimation, isCollapsed = props.isCollapsed, \n // eslint-disable-next-line deprecation/deprecation\n isBeaconAnimating = props.isBeaconAnimating, isMeasuring = props.isMeasuring, \n // eslint-disable-next-line deprecation/deprecation\n isMeasured = props.isMeasured, entityHostHeight = props.entityHostHeight, entityHostWidth = props.entityHostWidth, transformOrigin = props.transformOrigin;\n if (!theme) {\n throw new Error('theme is undefined or null in base Dropdown getStyles function.');\n }\n var animationInnerDimension = '35px';\n var animationOuterDimension = '150px';\n var animationBorderWidth = '10px';\n var ContinuousPulse = PulsingBeaconAnimationStyles.continuousPulseAnimationDouble(beaconColorOne ? beaconColorOne : theme.palette.themePrimary, beaconColorTwo ? beaconColorTwo : theme.palette.themeTertiary, animationInnerDimension, animationOuterDimension, animationBorderWidth);\n var ContinuousPulseAnimation = PulsingBeaconAnimationStyles.createDefaultAnimation(ContinuousPulse, delayBeforeCoachmarkAnimation);\n return {\n root: [\n theme.fonts.medium,\n {\n position: 'relative',\n },\n className,\n ],\n pulsingBeacon: [\n {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: getRTL(theme) ? 'translate(50%, -50%)' : 'translate(-50%, -50%)',\n width: '0px',\n height: '0px',\n borderRadius: '225px',\n borderStyle: 'solid',\n opacity: '0',\n },\n isCollapsed && isBeaconAnimating && ContinuousPulseAnimation,\n ],\n // Translate Animation Layer\n translateAnimationContainer: [\n {\n width: '100%',\n height: '100%',\n },\n isCollapsed && {\n animationDuration: '14s',\n animationTimingFunction: 'linear',\n animationDirection: 'normal',\n animationIterationCount: '1',\n animationDelay: '0s',\n animationFillMode: 'forwards',\n animationName: translateOne(),\n transition: 'opacity 0.5s ease-in-out',\n },\n !isCollapsed && {\n opacity: '1',\n },\n ],\n // Scale Animation Layer\n scaleAnimationLayer: [\n {\n width: '100%',\n height: '100%',\n },\n isCollapsed && {\n animationDuration: '14s',\n animationTimingFunction: 'linear',\n animationDirection: 'normal',\n animationIterationCount: '1',\n animationDelay: '0s',\n animationFillMode: 'forwards',\n animationName: scaleOne(),\n },\n ],\n // Rotate Animation Layer\n rotateAnimationLayer: [\n {\n width: '100%',\n height: '100%',\n },\n isCollapsed && {\n animationDuration: '14s',\n animationTimingFunction: 'linear',\n animationDirection: 'normal',\n animationIterationCount: '1',\n animationDelay: '0s',\n animationFillMode: 'forwards',\n animationName: rotateOne(),\n },\n !isCollapsed && {\n opacity: '1',\n },\n ],\n // Layer Host, defaults to collapsed\n entityHost: [\n {\n position: 'relative',\n outline: 'none',\n overflow: 'hidden',\n backgroundColor: color,\n borderRadius: COACHMARK_WIDTH,\n transition: 'border-radius 250ms, width 500ms, height 500ms cubic-bezier(0.5, 0, 0, 1)',\n visibility: 'hidden',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Window',\n border: '2px solid WindowText',\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n outline: \"1px solid \" + theme.palette.themeTertiary,\n },\n _a),\n },\n !isMeasuring && {\n width: COACHMARK_WIDTH,\n height: COACHMARK_HEIGHT,\n visibility: 'visible',\n },\n !isCollapsed && {\n borderRadius: '1px',\n opacity: '1',\n width: entityHostWidth,\n height: entityHostHeight,\n },\n ],\n entityInnerHost: [\n {\n transition: 'transform 500ms cubic-bezier(0.5, 0, 0, 1)',\n transformOrigin: transformOrigin,\n transform: 'scale(0)',\n },\n !isCollapsed && {\n width: entityHostWidth,\n height: entityHostHeight,\n transform: 'scale(1)',\n },\n !isMeasuring && {\n visibility: 'visible',\n },\n ],\n childrenContainer: [\n {\n display: isMeasured && isCollapsed ? 'none' : 'block',\n },\n ],\n ariaContainer: {\n position: 'fixed',\n opacity: 0,\n height: 0,\n width: 0,\n pointerEvents: 'none',\n },\n };\n}\n//# sourceMappingURL=Coachmark.styles.js.map","var _a;\nimport { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './PositioningContainer.styles';\nimport { Layer } from '../../../Layer';\n// Utilites/Helpers\nimport { DirectionalHint } from '../../../common/DirectionalHint';\nimport { css, elementContains, focusFirstChild, getWindow, getDocument, initializeComponentRef, Async, EventGroup, } from '../../../Utilities';\nimport { getMaxHeight, positionElement, RectangleEdge, } from '../../../utilities/positioning';\nimport { AnimationClassNames, mergeStyles } from '../../../Styling';\nvar OFF_SCREEN_STYLE = { opacity: 0 };\n// In order for some of the max height logic to work\n// properly we need to set the border.\n// The value is abitrary.\nvar BORDER_WIDTH = 1;\nvar SLIDE_ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = 'slideUpIn20',\n _a[RectangleEdge.bottom] = 'slideDownIn20',\n _a[RectangleEdge.left] = 'slideLeftIn20',\n _a[RectangleEdge.right] = 'slideRightIn20',\n _a);\nvar PositioningContainer = /** @class */ (function (_super) {\n __extends(PositioningContainer, _super);\n function PositioningContainer(props) {\n var _this = _super.call(this, props) || this;\n /**\n * The primary positioned div.\n */\n _this._positionedHost = React.createRef();\n // @TODO rename to reflect the name of this class\n _this._contentHost = React.createRef();\n /**\n * Deprecated, use `onResize` instead.\n * @deprecated Use `onResize` instead.\n */\n _this.dismiss = function (ev) {\n _this.onResize(ev);\n };\n _this.onResize = function (ev) {\n var onDismiss = _this.props.onDismiss;\n if (onDismiss) {\n onDismiss(ev);\n }\n else {\n _this._updateAsyncPosition();\n }\n };\n _this._setInitialFocus = function () {\n if (_this._contentHost.current && _this.props.setInitialFocus && !_this._didSetInitialFocus && _this.state.positions) {\n _this._didSetInitialFocus = true;\n focusFirstChild(_this._contentHost.current);\n }\n };\n _this._onComponentDidMount = function () {\n // This is added so the positioningContainer will dismiss when the window is scrolled\n // but not when something inside the positioningContainer is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the positioningContainer.\n _this._async.setTimeout(function () {\n _this._events.on(_this._targetWindow, 'scroll', _this._async.throttle(_this._dismissOnScroll, 10), true);\n _this._events.on(_this._targetWindow, 'resize', _this._async.throttle(_this.onResize, 10), true);\n _this._events.on(_this._targetWindow.document.body, 'focus', _this._dismissOnLostFocus, true);\n _this._events.on(_this._targetWindow.document.body, 'click', _this._dismissOnLostFocus, true);\n }, 0);\n if (_this.props.onLayerMounted) {\n _this.props.onLayerMounted();\n }\n _this._updateAsyncPosition();\n _this._setHeightOffsetEveryFrame();\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._didSetInitialFocus = false;\n _this.state = {\n positions: undefined,\n heightOffset: 0,\n };\n _this._positionAttempts = 0;\n return _this;\n }\n PositioningContainer.prototype.UNSAFE_componentWillMount = function () {\n this._setTargetWindowAndElement(this._getTarget());\n };\n PositioningContainer.prototype.componentDidMount = function () {\n this._onComponentDidMount();\n };\n PositioningContainer.prototype.componentDidUpdate = function () {\n this._setInitialFocus();\n this._updateAsyncPosition();\n };\n PositioningContainer.prototype.UNSAFE_componentWillUpdate = function (newProps) {\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 var newTarget = this._getTarget(newProps);\n var oldTarget = this._getTarget();\n if (newTarget !== oldTarget || typeof newTarget === 'string' || newTarget instanceof String) {\n this._maxHeight = undefined;\n this._setTargetWindowAndElement(newTarget);\n }\n if (newProps.offsetFromTarget !== this.props.offsetFromTarget) {\n this._maxHeight = undefined;\n }\n if (newProps.finalHeight !== this.props.finalHeight) {\n this._setHeightOffsetEveryFrame();\n }\n };\n PositioningContainer.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n PositioningContainer.prototype.render = function () {\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!this._targetWindow) {\n return null;\n }\n var _a = this.props, className = _a.className, positioningContainerWidth = _a.positioningContainerWidth, positioningContainerMaxHeight = _a.positioningContainerMaxHeight, children = _a.children;\n var positions = this.state.positions;\n var styles = getClassNames();\n var directionalClassName = positions && positions.targetEdge ? AnimationClassNames[SLIDE_ANIMATIONS[positions.targetEdge]] : '';\n var getContentMaxHeight = this._getMaxHeight() + this.state.heightOffset;\n var contentMaxHeight = positioningContainerMaxHeight && positioningContainerMaxHeight > getContentMaxHeight\n ? getContentMaxHeight\n : positioningContainerMaxHeight;\n var content = (React.createElement(\"div\", { ref: this._positionedHost, className: css('ms-PositioningContainer', styles.container) },\n React.createElement(\"div\", { className: mergeStyles('ms-PositioningContainer-layerHost', styles.root, className, directionalClassName, !!positioningContainerWidth && { width: positioningContainerWidth }), style: positions ? positions.elementPosition : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: this._contentHost },\n children,\n // @TODO apply to the content container\n contentMaxHeight)));\n return this.props.doNotLayer ? content : React.createElement(Layer, null, content);\n };\n PositioningContainer.prototype._dismissOnScroll = function (ev) {\n var preventDismissOnScroll = this.props.preventDismissOnScroll;\n if (this.state.positions && !preventDismissOnScroll) {\n this._dismissOnLostFocus(ev);\n }\n };\n PositioningContainer.prototype._dismissOnLostFocus = function (ev) {\n var target = ev.target;\n var clickedOutsideCallout = this._positionedHost.current && !elementContains(this._positionedHost.current, target);\n if ((!this._target && clickedOutsideCallout) ||\n (ev.target !== this._targetWindow &&\n clickedOutsideCallout &&\n (this._target.stopPropagation ||\n !this._target ||\n (target !== this._target && !elementContains(this._target, target))))) {\n this.onResize(ev);\n }\n };\n PositioningContainer.prototype._updateAsyncPosition = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () { return _this._updatePosition(); });\n };\n PositioningContainer.prototype._updatePosition = function () {\n var positions = this.state.positions;\n var _a = this.props, offsetFromTarget = _a.offsetFromTarget, onPositioned = _a.onPositioned;\n var hostElement = this._positionedHost.current;\n var positioningContainerElement = this._contentHost.current;\n if (hostElement && positioningContainerElement) {\n var currentProps = __assign({}, this.props);\n currentProps.bounds = this._getBounds();\n currentProps.target = this._target;\n if (document.body.contains(currentProps.target)) {\n currentProps.gapSpace = offsetFromTarget;\n var newPositions_1 = positionElement(currentProps, hostElement, positioningContainerElement);\n // Set the new position only when the positions are not exists or one of the new positioningContainer positions\n // are different. The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions_1) ||\n (positions && newPositions_1 && !this._arePositionsEqual(positions, newPositions_1) && this._positionAttempts < 5)) {\n // We should not reposition the positioningContainer more than a few times, if it is then the content is\n // likely resizing and we should stop trying to reposition to prevent a stack overflow.\n this._positionAttempts++;\n this.setState({\n positions: newPositions_1,\n }, function () {\n if (onPositioned) {\n onPositioned(newPositions_1);\n }\n });\n }\n else {\n this._positionAttempts = 0;\n if (onPositioned) {\n onPositioned(newPositions_1);\n }\n }\n }\n else if (positions !== undefined) {\n this.setState({\n positions: undefined,\n });\n }\n }\n };\n PositioningContainer.prototype._getBounds = function () {\n if (!this._positioningBounds) {\n var currentBounds = this.props.bounds;\n if (!currentBounds) {\n currentBounds = {\n top: 0 + this.props.minPagePadding,\n left: 0 + this.props.minPagePadding,\n right: this._targetWindow.innerWidth - this.props.minPagePadding,\n bottom: this._targetWindow.innerHeight - this.props.minPagePadding,\n width: this._targetWindow.innerWidth - this.props.minPagePadding * 2,\n height: this._targetWindow.innerHeight - this.props.minPagePadding * 2,\n };\n }\n this._positioningBounds = currentBounds;\n }\n return this._positioningBounds;\n };\n /**\n * Return the maximum height the container can grow to\n * without going out of the specified bounds\n */\n PositioningContainer.prototype._getMaxHeight = function () {\n var _a = this.props, directionalHintFixed = _a.directionalHintFixed, offsetFromTarget = _a.offsetFromTarget, directionalHint = _a.directionalHint;\n if (!this._maxHeight) {\n if (directionalHintFixed && this._target) {\n var gapSpace = offsetFromTarget ? offsetFromTarget : 0;\n this._maxHeight = getMaxHeight(this._target, directionalHint, gapSpace, this._getBounds());\n }\n else {\n this._maxHeight = this._getBounds().height - BORDER_WIDTH * 2;\n }\n }\n return this._maxHeight;\n };\n PositioningContainer.prototype._arePositionsEqual = function (positions, newPosition) {\n return this._comparePositions(positions.elementPosition, newPosition.elementPosition);\n };\n PositioningContainer.prototype._comparePositions = function (oldPositions, newPositions) {\n for (var key in newPositions) {\n if (newPositions.hasOwnProperty(key)) {\n var oldPositionEdge = oldPositions[key];\n var newPositionEdge = newPositions[key];\n if (oldPositionEdge && newPositionEdge) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n }\n }\n return true;\n };\n PositioningContainer.prototype._setTargetWindowAndElement = function (target) {\n var currentElement = this._positionedHost.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument();\n this._target = currentDoc ? currentDoc.querySelector(target) : null;\n this._targetWindow = getWindow(currentElement);\n // Cast to any prevents error about stopPropagation always existing\n }\n else if (target.stopPropagation) {\n this._targetWindow = getWindow(target.target);\n this._target = target;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (target.left !== undefined || target.x !== undefined) &&\n // eslint-disable-next-line deprecation/deprecation\n (target.top !== undefined || target.y !== undefined)) {\n this._targetWindow = getWindow(currentElement);\n this._target = target;\n }\n else {\n var targetElement = target;\n this._targetWindow = getWindow(targetElement);\n this._target = target;\n }\n }\n else {\n this._targetWindow = getWindow(currentElement);\n }\n };\n /**\n * Animates the height if finalHeight was given.\n */\n PositioningContainer.prototype._setHeightOffsetEveryFrame = function () {\n var _this = this;\n if (this._contentHost && this.props.finalHeight) {\n this._setHeightOffsetTimer = this._async.requestAnimationFrame(function () {\n if (!_this._contentHost.current) {\n return;\n }\n var positioningContainerMainElem = _this._contentHost.current.lastChild;\n var cardScrollHeight = positioningContainerMainElem.scrollHeight;\n var cardCurrHeight = positioningContainerMainElem.offsetHeight;\n var scrollDiff = cardScrollHeight - cardCurrHeight;\n _this.setState({\n heightOffset: _this.state.heightOffset + scrollDiff,\n });\n if (positioningContainerMainElem.offsetHeight < _this.props.finalHeight) {\n _this._setHeightOffsetEveryFrame();\n }\n else {\n _this._async.cancelAnimationFrame(_this._setHeightOffsetTimer);\n }\n });\n }\n };\n PositioningContainer.prototype._getTarget = function (props) {\n if (props === void 0) { props = this.props; }\n var target = props.target;\n return target;\n };\n PositioningContainer.defaultProps = {\n preventDismissOnScroll: false,\n offsetFromTarget: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n };\n return PositioningContainer;\n}(React.Component));\nexport { PositioningContainer };\n//# sourceMappingURL=PositioningContainer.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyleSets, focusClear, HighContrastSelector } from '../../../Styling';\nexport var getClassNames = memoizeFunction(function () {\n var _a;\n return mergeStyleSets({\n root: [\n {\n position: 'absolute',\n boxSizing: 'border-box',\n border: '1px solid ${}',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n },\n _a),\n },\n focusClear(),\n ],\n container: {\n position: 'relative',\n },\n main: {\n backgroundColor: '#ffffff',\n overflowX: 'hidden',\n overflowY: 'hidden',\n position: 'relative',\n },\n overFlowYHidden: {\n overflowY: 'hidden',\n },\n });\n});\n//# sourceMappingURL=PositioningContainer.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, on, initializeComponentRef, KeyCodes, getId } from '../../../Utilities';\nimport { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from '../../../utilities/color/consts';\nimport { getFullColorString } from '../../../utilities/color/getFullColorString';\nimport { updateSV } from '../../../utilities/color/updateSV';\nimport { clamp } from '../../../utilities/color/clamp';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorRectangleBase = /** @class */ (function (_super) {\n __extends(ColorRectangleBase, _super);\n function ColorRectangleBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._root = React.createRef();\n _this._isAdjustingSaturation = true;\n _this._descriptionId = getId('ColorRectangle-description');\n _this._onKeyDown = function (ev) {\n var color = _this.state.color;\n var s = color.s, v = color.v;\n var increment = ev.shiftKey ? 10 : 1;\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n switch (ev.which) {\n case KeyCodes.up: {\n _this._isAdjustingSaturation = false;\n v += increment; // V = 100 (lightest) is at the top\n break;\n }\n case KeyCodes.down: {\n _this._isAdjustingSaturation = false;\n v -= increment; // V = 0 (darkest) is at the bottom\n break;\n }\n case KeyCodes.left: {\n _this._isAdjustingSaturation = true;\n s -= increment;\n break;\n }\n case KeyCodes.right: {\n _this._isAdjustingSaturation = true;\n s += increment;\n break;\n }\n default:\n return;\n }\n _this._updateColor(ev, updateSV(color, clamp(s, MAX_COLOR_SATURATION), clamp(v, MAX_COLOR_VALUE)));\n };\n _this._onMouseDown = function (ev) {\n _this._disposables.push(on(window, 'mousemove', _this._onMouseMove, true), on(window, 'mouseup', _this._disposeListeners, true));\n _this._onMouseMove(ev);\n };\n _this._onMouseMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // Leaving the following commented code which is sometimes necessary for debugging:\n // If the primary button (1) isn't pressed, the user is no longer dragging, so turn off\n // the event handlers and exit.\n // if (!(ev.buttons & 1)) {\n // this._disposeListeners();\n // return;\n // }\n var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n if (newColor) {\n _this._updateColor(ev, newColor);\n }\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n initializeComponentRef(_this);\n _this.state = { color: props.color };\n return _this;\n }\n Object.defineProperty(ColorRectangleBase.prototype, \"color\", {\n get: function () {\n return this.state.color;\n },\n enumerable: true,\n configurable: true\n });\n ColorRectangleBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), set the value\n // TODO: switch to strict controlled pattern instead\n if (prevProps !== this.props && this.props.color) {\n this.setState({ color: this.props.color });\n }\n };\n ColorRectangleBase.prototype.componentWillUnmount = function () {\n this._disposeListeners();\n };\n ColorRectangleBase.prototype.render = function () {\n var _a = this.props, minSize = _a.minSize, theme = _a.theme, className = _a.className, styles = _a.styles, ariaValueFormat = _a.ariaValueFormat, ariaLabel = _a.ariaLabel, ariaDescription = _a.ariaDescription;\n var color = this.state.color;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n minSize: minSize,\n });\n var valueText = ariaValueFormat.replace('{0}', String(color.s)).replace('{1}', String(color.v));\n return (React.createElement(\"div\", { ref: this._root, tabIndex: 0, className: classNames.root, style: { backgroundColor: getFullColorString(color) }, onMouseDown: this._onMouseDown, onKeyDown: this._onKeyDown, role: \"slider\", \"aria-valuetext\": valueText, \"aria-valuenow\": this._isAdjustingSaturation ? color.s : color.v, \"aria-valuemin\": 0, \"aria-valuemax\": MAX_COLOR_VALUE, \"aria-label\": ariaLabel, \"aria-describedby\": this._descriptionId, \"data-is-focusable\": true },\n React.createElement(\"div\", { className: classNames.description, id: this._descriptionId }, ariaDescription),\n React.createElement(\"div\", { className: classNames.light }),\n React.createElement(\"div\", { className: classNames.dark }),\n React.createElement(\"div\", { className: classNames.thumb, style: { left: color.s + '%', top: MAX_COLOR_VALUE - color.v + '%', backgroundColor: color.str } })));\n };\n ColorRectangleBase.prototype._updateColor = function (ev, color) {\n var onChange = this.props.onChange;\n var oldColor = this.state.color;\n if (color.s === oldColor.s && color.v === oldColor.v) {\n return; // no change\n }\n if (onChange) {\n onChange(ev, color);\n }\n if (!ev.defaultPrevented) {\n this.setState({ color: color });\n ev.preventDefault();\n }\n };\n ColorRectangleBase.defaultProps = {\n minSize: 220,\n ariaLabel: 'Saturation and brightness',\n ariaValueFormat: 'Saturation {0} brightness {1}',\n ariaDescription: 'Use left and right arrow keys to set saturation. Use up and down arrow keys to set brightness.',\n };\n return ColorRectangleBase;\n}(React.Component));\nexport { ColorRectangleBase };\n/**\n * Exported for testing only.\n * @internal\n */\nexport function _getNewColor(ev, prevColor, root) {\n var rectSize = root.getBoundingClientRect();\n var sPercentage = (ev.clientX - rectSize.left) / rectSize.width;\n var vPercentage = (ev.clientY - rectSize.top) / rectSize.height;\n return updateSV(prevColor, clamp(Math.round(sPercentage * MAX_COLOR_SATURATION), MAX_COLOR_SATURATION), clamp(Math.round(MAX_COLOR_VALUE - vPercentage * MAX_COLOR_VALUE), MAX_COLOR_VALUE));\n}\n//# sourceMappingURL=ColorRectangle.base.js.map","import { styled } from '../../../Utilities';\nimport { ColorRectangleBase } from './ColorRectangle.base';\nimport { getStyles } from './ColorRectangle.styles';\nexport var ColorRectangle = styled(ColorRectangleBase, getStyles, undefined, { scope: 'ColorRectangle' });\n//# sourceMappingURL=ColorRectangle.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nimport { hiddenContentStyle } from '@uifabric/styling';\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, minSize = props.minSize;\n var palette = theme.palette, effects = theme.effects;\n return {\n root: [\n 'ms-ColorPicker-colorRect',\n {\n position: 'relative',\n marginBottom: 8,\n border: \"1px solid \" + palette.neutralLighter,\n borderRadius: effects.roundedCorner2,\n minWidth: minSize,\n minHeight: minSize,\n outline: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n outline: \"1px solid \" + palette.neutralSecondary,\n },\n _a),\n },\n className,\n ],\n light: [\n 'ms-ColorPicker-light',\n {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n background: 'linear-gradient(to right, white 0%, transparent 100%) /*@noflip*/',\n },\n ],\n dark: [\n 'ms-ColorPicker-dark',\n {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n background: 'linear-gradient(to bottom, transparent 0, #000 100%)',\n },\n ],\n thumb: [\n 'ms-ColorPicker-thumb',\n {\n position: 'absolute',\n width: 20,\n height: 20,\n background: 'white',\n border: \"1px solid \" + palette.neutralSecondaryAlt,\n borderRadius: '50%',\n boxShadow: effects.elevation8,\n transform: 'translate(-50%, -50%)',\n selectors: {\n ':before': {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n border: \"2px solid \" + palette.white,\n borderRadius: '50%',\n boxSizing: 'border-box',\n content: '\"\"',\n },\n },\n },\n ],\n description: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=ColorRectangle.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, on, KeyCodes, getWindow, warnDeprecations, warn, } from '../../../Utilities';\nimport { clamp } from '../../../utilities/color/clamp';\nimport { MAX_COLOR_HUE, MAX_COLOR_ALPHA } from '../../../utilities/color/consts';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorSliderBase = /** @class */ (function (_super) {\n __extends(ColorSliderBase, _super);\n function ColorSliderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._root = React.createRef();\n _this._onKeyDown = function (ev) {\n var currentValue = _this.value;\n var maxValue = _this._maxValue;\n var increment = ev.shiftKey ? 10 : 1;\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n switch (ev.which) {\n case KeyCodes.left: {\n currentValue -= increment;\n break;\n }\n case KeyCodes.right: {\n currentValue += increment;\n break;\n }\n case KeyCodes.home: {\n currentValue = 0;\n break;\n }\n case KeyCodes.end: {\n currentValue = maxValue;\n break;\n }\n default: {\n return;\n }\n }\n _this._updateValue(ev, clamp(currentValue, maxValue));\n };\n _this._onMouseDown = function (ev) {\n var win = getWindow(_this);\n if (win) {\n _this._disposables.push(on(win, 'mousemove', _this._onMouseMove, true), on(win, 'mouseup', _this._disposeListeners, true));\n }\n _this._onMouseMove(ev);\n };\n _this._onMouseMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var maxValue = _this._maxValue;\n var rectSize = _this._root.current.getBoundingClientRect();\n var currentPercentage = (ev.clientX - rectSize.left) / rectSize.width;\n var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n _this._updateValue(ev, newValue);\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n initializeComponentRef(_this);\n warnDeprecations('ColorSlider', props, {\n thumbColor: 'styles.sliderThumb',\n overlayStyle: 'overlayColor',\n isAlpha: 'type',\n maxValue: 'type',\n minValue: 'type',\n });\n // eslint-disable-next-line deprecation/deprecation\n if (_this._type !== 'hue' && !(props.overlayColor || props.overlayStyle)) {\n warn(\"ColorSlider: 'overlayColor' is required when 'type' is \\\"alpha\\\" or \\\"transparency\\\"\");\n }\n _this.state = {\n currentValue: props.value || 0,\n };\n return _this;\n }\n Object.defineProperty(ColorSliderBase.prototype, \"value\", {\n get: function () {\n return this.state.currentValue;\n },\n enumerable: true,\n configurable: true\n });\n ColorSliderBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), set the value\n // TODO: switch to strict controlled pattern instead\n if (prevProps !== this.props && this.props.value !== undefined) {\n this.setState({ currentValue: this.props.value });\n }\n };\n ColorSliderBase.prototype.componentWillUnmount = function () {\n this._disposeListeners();\n };\n ColorSliderBase.prototype.render = function () {\n var type = this._type;\n var maxValue = this._maxValue;\n var _a = this.props, \n // eslint-disable-next-line deprecation/deprecation\n overlayStyle = _a.overlayStyle, overlayColor = _a.overlayColor, theme = _a.theme, className = _a.className, styles = _a.styles, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? type : _b;\n var currentValue = this.value;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n type: type,\n });\n var currentPercentage = (100 * currentValue) / maxValue;\n return (React.createElement(\"div\", { ref: this._root, className: classNames.root, tabIndex: 0, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, role: \"slider\", \"aria-valuenow\": currentValue, \"aria-valuetext\": String(currentValue), \"aria-valuemin\": 0, \"aria-valuemax\": maxValue, \"aria-label\": ariaLabel, \"data-is-focusable\": true },\n !!(overlayColor || overlayStyle) && (React.createElement(\"div\", { className: classNames.sliderOverlay, \n // this isn't included in getStyles because it may change frequently\n style: overlayColor\n ? {\n background: type === 'transparency'\n ? \"linear-gradient(to right, #\" + overlayColor + \", transparent)\"\n : \"linear-gradient(to right, transparent, #\" + overlayColor + \")\",\n }\n : overlayStyle })),\n React.createElement(\"div\", { className: classNames.sliderThumb, style: { left: currentPercentage + '%' } })));\n };\n Object.defineProperty(ColorSliderBase.prototype, \"_type\", {\n get: function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, isAlpha = _a.isAlpha, _b = _a.type, type = _b === void 0 ? isAlpha ? 'alpha' : 'hue' : _b;\n return type;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColorSliderBase.prototype, \"_maxValue\", {\n get: function () {\n return this._type === 'hue' ? MAX_COLOR_HUE : MAX_COLOR_ALPHA;\n },\n enumerable: true,\n configurable: true\n });\n ColorSliderBase.prototype._updateValue = function (ev, newValue) {\n if (newValue === this.value) {\n return;\n }\n var onChange = this.props.onChange;\n if (onChange) {\n onChange(ev, newValue);\n }\n if (!ev.defaultPrevented) {\n this.setState({\n currentValue: newValue,\n });\n ev.preventDefault();\n }\n };\n ColorSliderBase.defaultProps = {\n value: 0,\n };\n return ColorSliderBase;\n}(React.Component));\nexport { ColorSliderBase };\n//# sourceMappingURL=ColorSlider.base.js.map","import { IsFocusVisibleClassName } from '../../../Utilities';\nvar hueStyle = {\n background: \"linear-gradient(\" + [\n 'to left',\n 'red 0',\n '#f09 10%',\n '#cd00ff 20%',\n '#3200ff 30%',\n '#06f 40%',\n '#00fffd 50%',\n '#0f6 60%',\n '#35ff00 70%',\n '#cdff00 80%',\n '#f90 90%',\n 'red 100%',\n ].join(',') + \")\",\n};\nvar alphaStyle = {\n backgroundImage: 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJUlEQVQYV2N89erVfwY0ICYmxoguxjgUFKI7GsTH5m4M3w1ChQC1/Ca8i2n1WgAAAABJRU5ErkJggg==)',\n};\nexport var getStyles = function (props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, className = props.className, _b = props.type, type = _b === void 0 ? 'hue' : _b, _c = props.isAlpha, useAlphaBackground = _c === void 0 ? type !== 'hue' : _c;\n var palette = theme.palette, effects = theme.effects;\n return {\n root: [\n 'ms-ColorPicker-slider',\n {\n position: 'relative',\n height: 20,\n marginBottom: 8,\n border: \"1px solid \" + palette.neutralLight,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n outline: 'none',\n selectors: (_a = {},\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n outline: \"1px solid \" + palette.neutralSecondary,\n },\n _a),\n },\n useAlphaBackground ? alphaStyle : hueStyle,\n className,\n ],\n sliderOverlay: [\n 'ms-ColorPicker-sliderOverlay',\n {\n content: '',\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n ],\n sliderThumb: [\n 'ms-ColorPicker-thumb',\n 'is-slider',\n {\n position: 'absolute',\n width: 20,\n height: 20,\n background: 'white',\n border: \"1px solid \" + palette.neutralSecondaryAlt,\n borderRadius: '50%',\n boxShadow: effects.elevation8,\n transform: 'translate(-50%, -50%)',\n top: '50%',\n },\n ],\n };\n};\n//# sourceMappingURL=ColorSlider.styles.js.map","import { styled } from '../../../Utilities';\nimport { ColorSliderBase } from './ColorSlider.base';\nimport { getStyles } from './ColorSlider.styles';\nexport var ColorSlider = styled(ColorSliderBase, getStyles, undefined, { scope: 'ColorSlider' });\n//# sourceMappingURL=ColorSlider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, warnDeprecations, warn } from '../../Utilities';\nimport { TextField } from '../../TextField';\nimport { ColorRectangle } from './ColorRectangle/ColorRectangle';\nimport { ColorSlider } from './ColorSlider/ColorSlider';\nimport { MAX_COLOR_ALPHA, MAX_COLOR_RGB, MAX_HEX_LENGTH, MAX_RGBA_LENGTH, MIN_HEX_LENGTH, MIN_RGBA_LENGTH, HEX_REGEX, RGBA_REGEX, } from '../../utilities/color/consts';\nimport { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { getColorFromRGBA } from '../../utilities/color/getColorFromRGBA';\nimport { clamp } from '../../utilities/color/clamp';\nimport { updateA } from '../../utilities/color/updateA';\nimport { updateT } from '../../utilities/color/updateT';\nimport { updateH } from '../../utilities/color/updateH';\nimport { correctRGB } from '../../utilities/color/correctRGB';\nimport { correctHex } from '../../utilities/color/correctHex';\nimport { ColorRectangleBase } from './ColorRectangle/ColorRectangle.base';\nvar getClassNames = classNamesFunction();\nvar allColorComponents = ['hex', 'r', 'g', 'b', 'a', 't'];\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorPickerBase = /** @class */ (function (_super) {\n __extends(ColorPickerBase, _super);\n function ColorPickerBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onSVChanged = function (ev, color) {\n _this._updateColor(ev, color);\n };\n _this._onHChanged = function (ev, h) {\n _this._updateColor(ev, updateH(_this.state.color, h));\n };\n /** Callback for when the alpha/transparency slider changes */\n _this._onATChanged = function (ev, value) {\n var updater = _this.props.alphaType === 'transparency' ? updateT : updateA;\n _this._updateColor(ev, updater(_this.state.color, Math.round(value)));\n };\n _this._onBlur = function (event) {\n var _a;\n var _b = _this.state, color = _b.color, editingColor = _b.editingColor;\n if (!editingColor) {\n return;\n }\n // If there was an intermediate incorrect value (such as too large or empty), correct it.\n var value = editingColor.value, component = editingColor.component;\n var isHex = component === 'hex';\n var isAlpha = component === 'a';\n var isTransparency = component === 't';\n var minLength = isHex ? MIN_HEX_LENGTH : MIN_RGBA_LENGTH;\n if (value.length >= minLength && (isHex || !isNaN(Number(value)))) {\n // Real value. Clamp to appropriate length (hex) or range (rgba).\n var newColor = void 0;\n if (isHex) {\n newColor = getColorFromString('#' + correctHex(value));\n }\n else if (isAlpha || isTransparency) {\n var updater = isAlpha ? updateA : updateT;\n newColor = updater(color, clamp(Number(value), MAX_COLOR_ALPHA));\n }\n else {\n newColor = getColorFromRGBA(correctRGB(__assign(__assign({}, color), (_a = {}, _a[component] = Number(value), _a))));\n }\n // Update state and call onChange\n _this._updateColor(event, newColor);\n }\n else {\n // Intermediate value was an empty string or too short (hex only).\n // Just clear the intermediate state and revert to the previous value.\n _this.setState({ editingColor: undefined });\n }\n };\n initializeComponentRef(_this);\n var strings = props.strings; // always defined since it's in defaultProps\n warnDeprecations('ColorPicker', props, {\n hexLabel: 'strings.hex',\n redLabel: 'strings.red',\n greenLabel: 'strings.green',\n blueLabel: 'strings.blue',\n alphaLabel: 'strings.alpha',\n alphaSliderHidden: 'alphaType',\n });\n // eslint-disable-next-line deprecation/deprecation\n if (strings.hue) {\n // warnDeprecations can't handle nested deprecated props\n warn(\"ColorPicker property 'strings.hue' was used but has been deprecated. Use 'strings.hueAriaLabel' instead.\");\n }\n _this.state = {\n color: _getColorFromProps(props) || getColorFromString('#ffffff'),\n };\n _this._textChangeHandlers = {};\n for (var _i = 0, allColorComponents_1 = allColorComponents; _i < allColorComponents_1.length; _i++) {\n var component = allColorComponents_1[_i];\n _this._textChangeHandlers[component] = _this._onTextChange.bind(_this, component);\n }\n var defaultStrings = ColorPickerBase.defaultProps.strings;\n _this._textLabels = {\n /* eslint-disable deprecation/deprecation */\n r: props.redLabel || strings.red || defaultStrings.red,\n g: props.greenLabel || strings.green || defaultStrings.green,\n b: props.blueLabel || strings.blue || defaultStrings.blue,\n a: props.alphaLabel || strings.alpha || defaultStrings.alpha,\n hex: props.hexLabel || strings.hex || defaultStrings.hex,\n t: strings.transparency || defaultStrings.transparency,\n };\n _this._strings = __assign(__assign(__assign({}, defaultStrings), { \n // these aria labels default to the visible labels\n alphaAriaLabel: _this._textLabels.a, transparencyAriaLabel: _this._textLabels.t }), strings);\n return _this;\n }\n Object.defineProperty(ColorPickerBase.prototype, \"color\", {\n get: function () {\n return this.state.color;\n },\n enumerable: true,\n configurable: true\n });\n ColorPickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), update the color\n if (prevProps !== this.props) {\n var color = _getColorFromProps(this.props);\n if (color) {\n this._updateColor(undefined, color);\n }\n }\n };\n ColorPickerBase.prototype.render = function () {\n var _this = this;\n var props = this.props;\n var strings = this._strings;\n var textLabels = this._textLabels;\n var theme = props.theme, className = props.className, styles = props.styles, alphaType = props.alphaType, \n // eslint-disable-next-line deprecation/deprecation\n _a = props.alphaSliderHidden, \n // eslint-disable-next-line deprecation/deprecation\n alphaSliderHidden = _a === void 0 ? alphaType === 'none' : _a;\n var color = this.state.color;\n var useTransparency = alphaType === 'transparency';\n var colorComponents = ['hex', 'r', 'g', 'b', useTransparency ? 't' : 'a'];\n var atValue = useTransparency ? color.t : color.a;\n var atLabel = useTransparency ? textLabels.t : textLabels.a;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n alphaType: alphaType,\n });\n var selectedColorAriaParts = [textLabels.r, color.r, textLabels.g, color.g, textLabels.b, color.b];\n if (!alphaSliderHidden && typeof atValue === 'number') {\n selectedColorAriaParts.push(atLabel, atValue + \"%\");\n }\n var ariaLabel = strings.rootAriaLabelFormat.replace('{0}', selectedColorAriaParts.join(' '));\n return (React.createElement(\"div\", { className: classNames.root, role: \"group\", \"aria-label\": ariaLabel },\n React.createElement(\"div\", { className: classNames.panel },\n React.createElement(ColorRectangle, { color: color, onChange: this._onSVChanged, ariaLabel: strings.svAriaLabel, ariaDescription: strings.svAriaDescription, ariaValueFormat: strings.svAriaValueFormat, className: classNames.colorRectangle }),\n React.createElement(\"div\", { className: classNames.flexContainer },\n React.createElement(\"div\", { className: classNames.flexSlider },\n React.createElement(ColorSlider, { className: \"is-hue\", type: \"hue\", \n // eslint-disable-next-line deprecation/deprecation\n ariaLabel: strings.hue || strings.hueAriaLabel, value: color.h, onChange: this._onHChanged }),\n !alphaSliderHidden && (React.createElement(ColorSlider, { className: \"is-alpha\", type: alphaType, ariaLabel: useTransparency ? strings.transparencyAriaLabel : strings.alphaAriaLabel, overlayColor: color.hex, value: atValue, onChange: this._onATChanged }))),\n props.showPreview && (React.createElement(\"div\", { className: classNames.flexPreviewBox },\n React.createElement(\"div\", { className: classNames.colorSquare + ' is-preview', style: {\n backgroundColor: color.str,\n } })))),\n React.createElement(\"table\", { className: classNames.table, role: \"group\", cellPadding: \"0\", cellSpacing: \"0\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: classNames.tableHeader },\n React.createElement(\"td\", { className: classNames.tableHexCell }, textLabels.hex),\n React.createElement(\"td\", null, textLabels.r),\n React.createElement(\"td\", null, textLabels.g),\n React.createElement(\"td\", null, textLabels.b),\n !alphaSliderHidden && React.createElement(\"td\", { className: classNames.tableAlphaCell }, atLabel))),\n React.createElement(\"tbody\", null,\n React.createElement(\"tr\", null, colorComponents.map(function (comp) {\n if ((comp === 'a' || comp === 't') && alphaSliderHidden) {\n return null;\n }\n return (React.createElement(\"td\", { key: comp },\n React.createElement(TextField, { className: classNames.input, onChange: _this._textChangeHandlers[comp], onBlur: _this._onBlur, value: _this._getDisplayValue(comp), spellCheck: false, ariaLabel: textLabels[comp], \"aria-live\": comp !== 'hex' ? 'assertive' : undefined, autoComplete: \"off\" })));\n })))))));\n };\n ColorPickerBase.prototype._getDisplayValue = function (component) {\n var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n if (editingColor && editingColor.component === component) {\n return editingColor.value;\n }\n if (component === 'hex') {\n return color[component] || '';\n }\n else if (typeof color[component] === 'number' && !isNaN(color[component])) {\n return String(color[component]);\n }\n return '';\n };\n ColorPickerBase.prototype._onTextChange = function (component, event, newValue) {\n var _a;\n var color = this.state.color;\n var isHex = component === 'hex';\n var isAlpha = component === 'a';\n var isTransparency = component === 't';\n newValue = (newValue || '').substr(0, isHex ? MAX_HEX_LENGTH : MAX_RGBA_LENGTH);\n // Ignore what the user typed if it contains invalid characters\n var validCharsRegex = isHex ? HEX_REGEX : RGBA_REGEX;\n if (!validCharsRegex.test(newValue)) {\n return;\n }\n // Determine if the entry is valid (different methods for hex, alpha, and RGB)\n var isValid;\n if (newValue === '') {\n // Empty string is obviously not valid\n isValid = false;\n }\n else if (isHex) {\n // Technically hex values of length 3 are also valid, but committing the value here would\n // cause it to be automatically converted to a value of length 6, which may not be what the\n // user wanted if they're not finished typing. (Values of length 3 will be committed on blur.)\n isValid = newValue.length === MAX_HEX_LENGTH;\n }\n else if (isAlpha || isTransparency) {\n isValid = Number(newValue) <= MAX_COLOR_ALPHA;\n }\n else {\n isValid = Number(newValue) <= MAX_COLOR_RGB;\n }\n if (!isValid) {\n // If the new value is an empty string or other invalid value, save that to display.\n // (if the user still hasn't entered anything on blur, the last value is restored)\n this.setState({ editingColor: { component: component, value: newValue } });\n }\n else if (String(color[component]) === newValue) {\n // If the new value is the same as the current value, mostly ignore it.\n // Exception is that if the user was previously editing the value (but hadn't yet entered\n // a new valid value), we should clear the intermediate value.\n if (this.state.editingColor) {\n this.setState({ editingColor: undefined });\n }\n }\n else {\n // Should be a valid color. Update the value.\n var newColor = isHex\n ? getColorFromString('#' + newValue)\n : isTransparency\n ? updateT(color, Number(newValue))\n : getColorFromRGBA(__assign(__assign({}, color), (_a = {}, _a[component] = Number(newValue), _a)));\n this._updateColor(event, newColor);\n }\n };\n /**\n * Update the displayed color and call change handlers if appropriate.\n * @param ev - Event if call was triggered by an event (undefined if triggered by props change)\n * @param newColor - Updated color\n */\n ColorPickerBase.prototype._updateColor = function (ev, newColor) {\n if (!newColor) {\n return;\n }\n var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n // For black or white, the hue can change without changing the string.\n var isDifferentColor = newColor.h !== color.h || newColor.str !== color.str;\n if (isDifferentColor || editingColor) {\n // If ev is undefined, it's an update from props (which should be unconditionally respected\n // and not call onChange).\n if (ev && this.props.onChange) {\n this.props.onChange(ev, newColor);\n if (ev.defaultPrevented) {\n return;\n }\n }\n this.setState({ color: newColor, editingColor: undefined });\n }\n };\n ColorPickerBase.defaultProps = {\n alphaType: 'alpha',\n strings: {\n rootAriaLabelFormat: 'Color picker, {0} selected.',\n hex: 'Hex',\n red: 'Red',\n green: 'Green',\n blue: 'Blue',\n alpha: 'Alpha',\n transparency: 'Transparency',\n hueAriaLabel: 'Hue',\n svAriaLabel: ColorRectangleBase.defaultProps.ariaLabel,\n svAriaValueFormat: ColorRectangleBase.defaultProps.ariaValueFormat,\n svAriaDescription: ColorRectangleBase.defaultProps.ariaDescription,\n },\n };\n return ColorPickerBase;\n}(React.Component));\nexport { ColorPickerBase };\nfunction _getColorFromProps(props) {\n var color = props.color;\n return typeof color === 'string' ? getColorFromString(color) : color;\n}\n//# sourceMappingURL=ColorPicker.base.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerBase } from './ColorPicker.base';\nimport { getStyles } from './ColorPicker.styles';\nexport var ColorPicker = styled(ColorPickerBase, getStyles, undefined, { scope: 'ColorPicker' });\n//# sourceMappingURL=ColorPicker.js.map","export var getStyles = function (props) {\n var className = props.className, theme = props.theme, alphaType = props.alphaType;\n return {\n root: [\n 'ms-ColorPicker',\n theme.fonts.medium,\n {\n position: 'relative',\n maxWidth: 300,\n },\n className,\n ],\n panel: [\n 'ms-ColorPicker-panel',\n {\n padding: '16px',\n },\n ],\n table: [\n 'ms-ColorPicker-table',\n {\n tableLayout: 'fixed',\n width: '100%',\n selectors: {\n 'tbody td:last-of-type .ms-ColorPicker-input': {\n paddingRight: 0,\n },\n },\n },\n ],\n tableHeader: [\n theme.fonts.small,\n {\n selectors: {\n td: {\n paddingBottom: 4,\n },\n },\n },\n ],\n tableHexCell: {\n width: '25%',\n },\n // Account for \"Transparency\" being a longer word\n tableAlphaCell: alphaType === 'transparency' && {\n width: '22%',\n },\n colorSquare: [\n 'ms-ColorPicker-colorSquare',\n {\n width: 48,\n height: 48,\n margin: '0 0 0 8px',\n border: '1px solid #c8c6c4',\n },\n ],\n flexContainer: {\n display: 'flex',\n },\n flexSlider: {\n flexGrow: '1',\n },\n flexPreviewBox: {\n flexGrow: '0',\n },\n input: [\n 'ms-ColorPicker-input',\n {\n width: '100%',\n border: 'none',\n boxSizing: 'border-box',\n height: 30,\n selectors: {\n '&.ms-TextField': {\n paddingRight: 4,\n },\n '& .ms-TextField-field': {\n minWidth: 'auto',\n padding: 5,\n textOverflow: 'clip',\n },\n },\n },\n ],\n };\n};\n//# sourceMappingURL=ColorPicker.styles.js.map","var _a, _b;\nimport { __assign } from \"tslib\";\nimport { FontWeights, concatStyleSets, getFocusStyle, HighContrastSelector, getPlaceholderStyles, hiddenContentStyle, getInputFocusStyle, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar ComboBoxHeight = 32;\nvar ComboBoxLineHeight = 30;\nvar ComboBoxCaretDownWidth = 32;\nvar ComboBoxOptionHeight = 36;\nvar getDisabledStyles = memoizeFunction(function (theme) {\n var _a;\n var semanticColors = theme.semanticColors;\n return {\n backgroundColor: semanticColors.disabledBackground,\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_a = {\n ':after': {\n borderColor: semanticColors.disabledBackground,\n }\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n selectors: {\n ':after': {\n borderColor: 'GrayText',\n },\n },\n },\n _a),\n };\n});\nvar listOptionHighContrastStyles = {\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n};\nvar inputHighContrastStyles = {\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _b),\n};\nexport var getOptionStyles = memoizeFunction(function (theme, customStylesForAllOptions, customOptionStylesForCurrentOption, isPending, isHidden) {\n var _a;\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var option = {\n textHoveredColor: semanticColors.menuItemTextHovered,\n textSelectedColor: palette.neutralDark,\n textDisabledColor: semanticColors.disabledText,\n backgroundHoveredColor: semanticColors.menuItemBackgroundHovered,\n backgroundPressedColor: semanticColors.menuItemBackgroundPressed,\n };\n var optionStyles = {\n root: [\n theme.fonts.medium,\n {\n backgroundColor: isPending ? option.backgroundHoveredColor : 'transparent',\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: isHidden ? 'none' : 'block',\n width: '100%',\n height: 'auto',\n minHeight: ComboBoxOptionHeight,\n lineHeight: '20px',\n padding: '0 8px',\n position: 'relative',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'transparent',\n borderRadius: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n textAlign: 'left',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 'none',\n borderColor: 'Background',\n },\n _a['&.ms-Checkbox'] = {\n display: 'flex',\n alignItems: 'center',\n },\n _a['&.ms-Button--command:hover:active'] = {\n backgroundColor: option.backgroundPressedColor,\n },\n _a['.ms-Checkbox-label'] = {\n width: '100%',\n },\n _a),\n },\n ],\n rootHovered: {\n backgroundColor: option.backgroundHoveredColor,\n color: option.textHoveredColor,\n },\n rootFocused: {\n backgroundColor: option.backgroundHoveredColor,\n },\n rootChecked: [\n {\n backgroundColor: 'transparent',\n color: option.textSelectedColor,\n selectors: {\n ':hover': [\n {\n backgroundColor: option.backgroundHoveredColor,\n },\n listOptionHighContrastStyles,\n ],\n },\n },\n getFocusStyle(theme, { inset: -1, isFocusedOnly: false }),\n listOptionHighContrastStyles,\n ],\n rootDisabled: {\n color: option.textDisabledColor,\n cursor: 'default',\n },\n optionText: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n minWidth: '0px',\n maxWidth: '100%',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n display: 'inline-block',\n },\n optionTextWrapper: {\n maxWidth: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n };\n return concatStyleSets(optionStyles, customStylesForAllOptions, customOptionStylesForCurrentOption);\n});\nexport var getCaretDownButtonStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var caret = {\n buttonTextColor: semanticColors.bodySubtext,\n buttonTextHoveredCheckedColor: semanticColors.buttonTextChecked,\n buttonBackgroundHoveredColor: semanticColors.listItemBackgroundHovered,\n buttonBackgroundCheckedColor: semanticColors.listItemBackgroundChecked,\n buttonBackgroundCheckedHoveredColor: semanticColors.listItemBackgroundCheckedHovered,\n };\n var buttonHighContrastStyles = {\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n };\n var styles = {\n root: {\n color: caret.buttonTextColor,\n fontSize: fonts.small.fontSize,\n position: 'absolute',\n top: 0,\n height: '100%',\n lineHeight: ComboBoxLineHeight,\n width: ComboBoxCaretDownWidth,\n textAlign: 'center',\n cursor: 'default',\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ backgroundColor: 'ButtonFace', borderColor: 'ButtonText', color: 'ButtonText' }, getHighContrastNoAdjustStyle()),\n _b),\n },\n icon: {\n fontSize: fonts.small.fontSize,\n },\n rootHovered: [\n {\n backgroundColor: caret.buttonBackgroundHoveredColor,\n color: caret.buttonTextHoveredCheckedColor,\n cursor: 'pointer',\n },\n buttonHighContrastStyles,\n ],\n rootPressed: [\n {\n backgroundColor: caret.buttonBackgroundCheckedColor,\n color: caret.buttonTextHoveredCheckedColor,\n },\n buttonHighContrastStyles,\n ],\n rootChecked: [\n {\n backgroundColor: caret.buttonBackgroundCheckedColor,\n color: caret.buttonTextHoveredCheckedColor,\n },\n buttonHighContrastStyles,\n ],\n rootCheckedHovered: [\n {\n backgroundColor: caret.buttonBackgroundCheckedHoveredColor,\n color: caret.buttonTextHoveredCheckedColor,\n },\n buttonHighContrastStyles,\n ],\n rootDisabled: [\n getDisabledStyles(theme),\n {\n position: 'absolute',\n },\n ],\n };\n return concatStyleSets(styles, customStyles);\n});\nexport var getStyles = memoizeFunction(function (theme, customStyles, comboBoxOptionWidth) {\n var _a, _b, _c, _d, _e, _f;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n var root = {\n textColor: semanticColors.inputText,\n borderColor: semanticColors.inputBorder,\n borderHoveredColor: semanticColors.inputBorderHovered,\n borderPressedColor: semanticColors.inputFocusBorderAlt,\n borderFocusedColor: semanticColors.inputFocusBorderAlt,\n backgroundColor: semanticColors.inputBackground,\n erroredColor: semanticColors.errorText,\n };\n var option = {\n headerTextColor: semanticColors.menuHeader,\n dividerBorderColor: semanticColors.bodyDivider,\n };\n // placeholder style variables\n var placeholderHighContrastStyles = {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n };\n var placeholderStyles = [\n {\n color: semanticColors.inputPlaceholderText,\n },\n placeholderHighContrastStyles,\n ];\n var placeholderStylesHovered = [\n {\n color: semanticColors.inputTextHovered,\n },\n placeholderHighContrastStyles,\n ];\n var disabledPlaceholderStyles = [\n {\n color: semanticColors.disabledText,\n },\n placeholderHighContrastStyles,\n ];\n var ComboBoxRootHighContrastFocused = __assign(__assign({ color: 'HighlightText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()), { selectors: {\n ':after': {\n borderColor: 'Highlight',\n },\n } });\n var focusBorderStyles = getInputFocusStyle(root.borderPressedColor, effects.roundedCorner2, 'border', 0);\n var styles = {\n container: {},\n label: {},\n labelDisabled: {},\n root: [\n theme.fonts.medium,\n {\n boxShadow: 'none',\n marginLeft: '0',\n paddingRight: ComboBoxCaretDownWidth,\n paddingLeft: 9,\n color: root.textColor,\n position: 'relative',\n outline: '0',\n userSelect: 'none',\n backgroundColor: root.backgroundColor,\n cursor: 'text',\n display: 'block',\n height: ComboBoxHeight,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n boxSizing: 'border-box',\n selectors: {\n '.ms-Label': {\n display: 'inline-block',\n marginBottom: '8px',\n },\n '&.is-open': {\n selectors: (_b = {},\n _b[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n _b),\n },\n // setting border using pseudo-element here in order to\n // prevent chevron button to overlap ComboBox border under certain resolutions\n ':after': {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: root.borderColor,\n borderRadius: effects.roundedCorner2,\n },\n },\n },\n ],\n rootHovered: {\n selectors: (_c = {\n ':after': {\n borderColor: root.borderHoveredColor,\n },\n '.ms-ComboBox-Input': [\n {\n color: semanticColors.inputTextHovered,\n },\n getPlaceholderStyles(placeholderStylesHovered),\n inputHighContrastStyles,\n ]\n },\n _c[HighContrastSelector] = __assign(__assign({ color: 'HighlightText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()), { selectors: {\n ':after': {\n borderColor: 'Highlight',\n },\n } }),\n _c),\n },\n rootPressed: [\n {\n position: 'relative',\n selectors: (_d = {},\n _d[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n _d),\n },\n ],\n rootFocused: [\n {\n selectors: (_e = {\n '.ms-ComboBox-Input': [\n {\n color: semanticColors.inputTextHovered,\n },\n inputHighContrastStyles,\n ]\n },\n _e[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n _e),\n },\n focusBorderStyles,\n ],\n rootDisabled: getDisabledStyles(theme),\n rootError: {\n selectors: {\n ':after': {\n borderColor: root.erroredColor,\n },\n ':hover:after': {\n borderColor: semanticColors.inputBorderHovered,\n },\n },\n },\n rootDisallowFreeForm: {},\n input: [\n getPlaceholderStyles(placeholderStyles),\n {\n backgroundColor: root.backgroundColor,\n color: root.textColor,\n boxSizing: 'border-box',\n width: '100%',\n height: '100%',\n borderStyle: 'none',\n outline: 'none',\n font: 'inherit',\n textOverflow: 'ellipsis',\n padding: '0',\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n inputHighContrastStyles,\n ],\n inputDisabled: [getDisabledStyles(theme), getPlaceholderStyles(disabledPlaceholderStyles)],\n errorMessage: [\n theme.fonts.small,\n {\n color: root.erroredColor,\n marginTop: '5px',\n },\n ],\n callout: {\n boxShadow: effects.elevation8,\n },\n optionsContainerWrapper: {\n width: comboBoxOptionWidth,\n },\n optionsContainer: {\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n header: [\n fonts.medium,\n {\n fontWeight: FontWeights.semibold,\n color: option.headerTextColor,\n backgroundColor: 'none',\n borderStyle: 'none',\n height: ComboBoxOptionHeight,\n lineHeight: ComboBoxOptionHeight,\n cursor: 'default',\n padding: '0 8px',\n userSelect: 'none',\n textAlign: 'left',\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n ],\n divider: {\n height: 1,\n backgroundColor: option.dividerBorderColor,\n },\n };\n return concatStyleSets(styles, customStyles);\n});\n//# sourceMappingURL=ComboBox.styles.js.map","import { __assign, __decorate, __extends, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { Autofill } from '../Autofill/index';\nimport { initializeComponentRef, css, customizable, divProperties, findElementRecursive, findIndex, focusAsync, getId, getNativeProps, isIOS, isMac, KeyCodes, shallowCompare, mergeAriaAttributeValues, warnMutuallyExclusive, Async, EventGroup, } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { Checkbox } from '../../Checkbox';\nimport { CommandButton, IconButton } from '../../Button';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getCaretDownButtonStyles, getOptionStyles, getStyles } from './ComboBox.styles';\nimport { getClassNames, getComboBoxOptionClassNames } from './ComboBox.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { Label } from '../../Label';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../utilities/selectableOption/index';\nvar SearchDirection;\n(function (SearchDirection) {\n SearchDirection[SearchDirection[\"backward\"] = -1] = \"backward\";\n SearchDirection[SearchDirection[\"none\"] = 0] = \"none\";\n SearchDirection[SearchDirection[\"forward\"] = 1] = \"forward\";\n})(SearchDirection || (SearchDirection = {}));\nvar HoverStatus;\n(function (HoverStatus) {\n /** Used when the user was hovering and has since moused out of the menu items */\n HoverStatus[HoverStatus[\"clearAll\"] = -2] = \"clearAll\";\n /** Default \"normal\" state, when no hover has happened or a hover is in progress */\n HoverStatus[HoverStatus[\"default\"] = -1] = \"default\";\n})(HoverStatus || (HoverStatus = {}));\nvar ScrollIdleDelay = 250; /* ms */\nvar TouchIdleDelay = 500; /* ms */\n/**\n * This is used to clear any pending autocomplete text (used when autocomplete is true and\n * allowFreeform is false)\n */\nvar ReadOnlyPendingAutoCompleteTimeout = 1000; /* ms */\n/**\n * Internal class that is used to wrap all ComboBox options.\n * This is used to customize when we want to rerender components,\n * so we don't rerender every option every time render is executed.\n */\nvar ComboBoxOptionWrapper = /** @class */ (function (_super) {\n __extends(ComboBoxOptionWrapper, _super);\n function ComboBoxOptionWrapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComboBoxOptionWrapper.prototype.render = function () {\n return this.props.render();\n };\n ComboBoxOptionWrapper.prototype.shouldComponentUpdate = function (newProps) {\n // The render function will always be different, so we ignore that prop\n return !shallowCompare(__assign(__assign({}, this.props), { render: undefined }), __assign(__assign({}, newProps), { render: undefined }));\n };\n return ComboBoxOptionWrapper;\n}(React.Component));\nvar COMPONENT_NAME = 'ComboBox';\nvar ComboBox = /** @class */ (function (_super) {\n __extends(ComboBox, _super);\n function ComboBox(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n /** The input aspect of the comboBox */\n _this._autofill = React.createRef();\n /** The wrapping div of the input and button */\n _this._comboBoxWrapper = React.createRef();\n /** The callout element */\n _this._comboBoxMenu = React.createRef();\n /** The menu item element that is currently selected */\n _this._selectedElement = React.createRef();\n /**\n * {@inheritdoc}\n */\n _this.focus = function (shouldOpenOnFocus, useFocusAsync) {\n if (_this.props.disabled === true) {\n return;\n }\n if (_this._autofill.current) {\n if (useFocusAsync) {\n focusAsync(_this._autofill.current);\n }\n else {\n _this._autofill.current.focus();\n }\n if (shouldOpenOnFocus) {\n _this.setState({\n isOpen: true,\n });\n }\n }\n // Programatically setting focus means that there is nothing else that needs to be done\n // Focus is now contained\n if (!_this._hasFocus()) {\n _this.setState({ focusState: 'focused' });\n }\n };\n /**\n * Close menu callout if it is open\n */\n _this.dismissMenu = function () {\n var isOpen = _this.state.isOpen;\n isOpen && _this.setState({ isOpen: false });\n };\n /**\n * componentWillReceiveProps handler for the auto fill component\n * Checks/updates the iput value to set, if needed\n * @param defaultVisibleValue - the defaultVisibleValue that got passed\n * in to the auto fill's componentWillReceiveProps\n * @returns - the updated value to set, if needed\n */\n _this._onUpdateValueInAutofillWillReceiveProps = function () {\n var comboBox = _this._autofill.current;\n if (!comboBox) {\n return null;\n }\n if (comboBox.value === null || comboBox.value === undefined) {\n return null;\n }\n var visibleValue = _this._normalizeToString(_this._currentVisibleValue);\n if (comboBox.value !== visibleValue) {\n // If visibleValue is empty, ensure that the empty string is used\n return visibleValue || '';\n }\n return comboBox.value;\n };\n _this._renderComboBoxWrapper = function (multiselectAccessibleText, errorMessageId, keytipAttributes) {\n if (keytipAttributes === void 0) { keytipAttributes = {}; }\n var _a = _this.props, label = _a.label, disabled = _a.disabled, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, required = _a.required, errorMessage = _a.errorMessage, buttonIconProps = _a.buttonIconProps, _b = _a.isButtonAriaHidden, isButtonAriaHidden = _b === void 0 ? true : _b, title = _a.title, placeholderProp = _a.placeholder, tabIndex = _a.tabIndex, autofill = _a.autofill, iconButtonProps = _a.iconButtonProps;\n var _c = _this.state, isOpen = _c.isOpen, suggestedDisplayValue = _c.suggestedDisplayValue;\n // If the combobox has focus, is multiselect, and has a display string, then use that placeholder\n // so that the selected items don't appear to vanish. This is not ideal but it's the only reasonable way\n // to correct the behavior where the input is cleared so the user can type. If a full refactor is done, then this\n // should be removed and the multiselect combobox should behave like a picker.\n var placeholder = _this._hasFocus() && _this.props.multiSelect && multiselectAccessibleText\n ? multiselectAccessibleText\n : placeholderProp;\n return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: _this._comboBoxWrapper, id: _this._id + 'wrapper', className: _this._classNames.root },\n React.createElement(Autofill, __assign({ \"data-ktp-execute-target\": keytipAttributes['data-ktp-execute-target'], \"data-is-interactable\": !disabled, componentRef: _this._autofill, id: _this._id + '-input', className: _this._classNames.input, type: \"text\", onFocus: _this._onFocus, onBlur: _this._onBlur, onKeyDown: _this._onInputKeyDown, onKeyUp: _this._onInputKeyUp, onClick: _this._onAutofillClick, onTouchStart: _this._onTouchStart, onInputValueChange: _this._onInputChange, \"aria-expanded\": isOpen, \"aria-autocomplete\": _this._getAriaAutoCompleteValue(), role: \"combobox\", readOnly: disabled, \"aria-labelledby\": label && _this._id + '-label', \"aria-label\": ariaLabel && !label ? ariaLabel : undefined, \"aria-describedby\": errorMessage !== undefined\n ? mergeAriaAttributeValues(ariaDescribedBy, keytipAttributes['aria-describedby'], errorMessageId)\n : mergeAriaAttributeValues(ariaDescribedBy, keytipAttributes['aria-describedby']), \"aria-activedescendant\": _this._getAriaActiveDescendantValue(), \"aria-required\": required, \"aria-disabled\": disabled, \"aria-owns\": isOpen ? _this._id + '-list' : undefined, spellCheck: false, defaultVisibleValue: _this._currentVisibleValue, suggestedDisplayValue: suggestedDisplayValue, updateValueInWillReceiveProps: _this._onUpdateValueInAutofillWillReceiveProps, shouldSelectFullInputValueInComponentDidUpdate: _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate, title: title, preventValueSelection: !_this._hasFocus(), placeholder: placeholder, tabIndex: tabIndex }, autofill)),\n React.createElement(IconButton, __assign({ className: 'ms-ComboBox-CaretDown-button', styles: _this._getCaretButtonStyles(), role: \"presentation\", \"aria-hidden\": isButtonAriaHidden, \"data-is-focusable\": false, tabIndex: -1, onClick: _this._onComboBoxClick, onBlur: _this._onBlur, iconProps: buttonIconProps, disabled: disabled, checked: isOpen }, iconButtonProps))));\n };\n /**\n * componentDidUpdate handler for the auto fill component\n *\n * @param defaultVisibleValue - the current defaultVisibleValue in the auto fill's componentDidUpdate\n * @param suggestedDisplayValue - the current suggestedDisplayValue in the auto fill's componentDidUpdate\n * @returns - should the full value of the input be selected?\n * True if the defaultVisibleValue equals the suggestedDisplayValue, false otherwise\n */\n _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate = function () {\n return _this._currentVisibleValue === _this.state.suggestedDisplayValue;\n };\n /**\n * Get the correct value to pass to the input\n * to show to the user based off of the current props and state\n * @returns the value to pass to the input\n */\n _this._getVisibleValue = function () {\n var _a = _this.props, text = _a.text, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;\n var _b = _this.state, selectedIndices = _b.selectedIndices, currentPendingValueValidIndex = _b.currentPendingValueValidIndex, currentOptions = _b.currentOptions, currentPendingValue = _b.currentPendingValue, suggestedDisplayValue = _b.suggestedDisplayValue, isOpen = _b.isOpen;\n var currentPendingIndexValid = _this._indexWithinBounds(currentOptions, currentPendingValueValidIndex);\n // If the user passed is a value prop, use that\n // unless we are open and have a valid current pending index\n if (!(isOpen && currentPendingIndexValid) &&\n text &&\n (currentPendingValue === null || currentPendingValue === undefined)) {\n return text;\n }\n if (_this.props.multiSelect) {\n // Multi-select\n if (_this._hasFocus()) {\n var index = -1;\n if (autoComplete === 'on' && currentPendingIndexValid) {\n index = currentPendingValueValidIndex;\n }\n return _this._getPendingString(currentPendingValue, currentOptions, index);\n }\n else {\n return _this._getMultiselectDisplayString(selectedIndices, currentOptions, suggestedDisplayValue);\n }\n }\n else {\n // Single-select\n var index = _this._getFirstSelectedIndex();\n if (allowFreeform) {\n // If we are allowing freeform and autocomplete is also true\n // and we've got a pending value that matches an option, remember\n // the matched option's index\n if (autoComplete === 'on' && currentPendingIndexValid) {\n index = currentPendingValueValidIndex;\n }\n // Since we are allowing freeform, if there is currently a pending value, use that\n // otherwise use the index determined above (falling back to '' if we did not get a valid index)\n return _this._getPendingString(currentPendingValue, currentOptions, index);\n }\n else {\n // If we are not allowing freeform and have a\n // valid index that matches the pending value,\n // we know we will need some version of the pending value\n if (currentPendingIndexValid && autoComplete === 'on') {\n // If autoComplete is on, return the\n // raw pending value, otherwise remember\n // the matched option's index\n index = currentPendingValueValidIndex;\n return _this._normalizeToString(currentPendingValue);\n }\n else if (!_this.state.isOpen && currentPendingValue) {\n return _this._indexWithinBounds(currentOptions, index)\n ? currentPendingValue\n : _this._normalizeToString(suggestedDisplayValue);\n }\n else {\n return _this._indexWithinBounds(currentOptions, index)\n ? currentOptions[index].text\n : _this._normalizeToString(suggestedDisplayValue);\n }\n }\n }\n };\n /**\n * Handler for typing changes on the input\n * @param updatedValue - the newly changed value\n */\n _this._onInputChange = function (updatedValue) {\n if (_this.props.disabled) {\n _this._handleInputWhenDisabled(null /* event */);\n return;\n }\n if (_this.props.onInputValueChange) {\n _this.props.onInputValueChange(updatedValue);\n }\n _this.props.allowFreeform\n ? _this._processInputChangeWithFreeform(updatedValue)\n : _this._processInputChangeWithoutFreeform(updatedValue);\n };\n /**\n * Focus (and select) the content of the input\n * and set the focused state\n */\n _this._onFocus = function () {\n if (_this._autofill.current && _this._autofill.current.inputElement) {\n _this._autofill.current.inputElement.select();\n }\n if (!_this._hasFocus()) {\n _this.setState({ focusState: 'focusing' });\n }\n };\n /**\n * Callback issued when the options should be resolved, if they have been updated or\n * if they need to be passed in the first time. This only does work if an onResolveOptions\n * callback was passed in\n */\n _this._onResolveOptions = function () {\n if (_this.props.onResolveOptions) {\n // get the options\n var newOptions = _this.props.onResolveOptions(__spreadArrays(_this.state.currentOptions));\n // Check to see if the returned value is an array, if it is update the state\n // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n // If it is then resolve it asynchronously.\n if (Array.isArray(newOptions)) {\n _this.setState({\n currentOptions: newOptions,\n });\n }\n else if (newOptions && newOptions.then) {\n // Ensure that the promise will only use the callback if it was the most recent one\n // and update the state when the promise returns\n var promise_1 = (_this._currentPromise = newOptions);\n promise_1.then(function (newOptionsFromPromise) {\n if (promise_1 === _this._currentPromise) {\n _this.setState({\n currentOptions: newOptionsFromPromise,\n });\n }\n });\n }\n }\n };\n /**\n * OnBlur handler. Set the focused state to false\n * and submit any pending value\n */\n // eslint-disable-next-line deprecation/deprecation\n _this._onBlur = function (event) {\n // Do nothing if the blur is coming from something\n // inside the comboBox root or the comboBox menu since\n // it we are not really bluring from the whole comboBox\n var relatedTarget = event.relatedTarget;\n if (event.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = document.activeElement;\n }\n if (relatedTarget &&\n // when event coming from withing the comboBox title\n ((_this._root.current && _this._root.current.contains(relatedTarget)) ||\n // when event coming from within the comboBox list menu\n (_this._comboBoxMenu.current &&\n (_this._comboBoxMenu.current.contains(relatedTarget) ||\n // when event coming from the callout containing the comboBox list menu (ex: when scrollBar of the\n // Callout is clicked) checks if the relatedTarget is a parent of _comboBoxMenu\n findElementRecursive(_this._comboBoxMenu.current, function (element) { return element === relatedTarget; }))))) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (_this._hasFocus()) {\n _this.setState({ focusState: 'none' });\n if (!_this.props.multiSelect || _this.props.allowFreeform) {\n _this._submitPendingValue(event);\n }\n }\n };\n // Render Callout container and pass in list\n _this._onRenderContainer = function (props) {\n var onRenderList = props.onRenderList, calloutProps = props.calloutProps, dropdownWidth = props.dropdownWidth, dropdownMaxWidth = props.dropdownMaxWidth, _a = props.onRenderUpperContent, onRenderUpperContent = _a === void 0 ? _this._onRenderUpperContent : _a, _b = props.onRenderLowerContent, onRenderLowerContent = _b === void 0 ? _this._onRenderLowerContent : _b, useComboBoxAsMenuWidth = props.useComboBoxAsMenuWidth, persistMenu = props.persistMenu, _c = props.shouldRestoreFocus, shouldRestoreFocus = _c === void 0 ? true : _c;\n var isOpen = _this.state.isOpen;\n var id = _this._id;\n var comboBoxMenuWidth = useComboBoxAsMenuWidth && _this._comboBoxWrapper.current\n ? _this._comboBoxWrapper.current.clientWidth + 2\n : undefined;\n return (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintFixed: false }, calloutProps, { onLayerMounted: _this._onLayerMounted, className: css(_this._classNames.callout, calloutProps ? calloutProps.className : undefined), target: _this._comboBoxWrapper.current, onDismiss: _this._onDismiss, onMouseDown: _this._onCalloutMouseDown, onScroll: _this._onScroll, setInitialFocus: false, calloutWidth: useComboBoxAsMenuWidth && _this._comboBoxWrapper.current\n ? comboBoxMenuWidth && comboBoxMenuWidth\n : dropdownWidth, calloutMaxWidth: dropdownMaxWidth ? dropdownMaxWidth : comboBoxMenuWidth, hidden: persistMenu ? !isOpen : undefined, shouldRestoreFocus: shouldRestoreFocus }),\n onRenderUpperContent(_this.props, _this._onRenderUpperContent),\n React.createElement(\"div\", { className: _this._classNames.optionsContainerWrapper, ref: _this._comboBoxMenu }, onRenderList(__assign(__assign({}, props), { id: id }), _this._onRenderList)),\n onRenderLowerContent(_this.props, _this._onRenderLowerContent)));\n };\n _this._onLayerMounted = function () {\n _this._onCalloutLayerMounted();\n if (_this.props.calloutProps && _this.props.calloutProps.onLayerMounted) {\n _this.props.calloutProps.onLayerMounted();\n }\n };\n _this._onRenderLabel = function (onRenderLabelProps) {\n var _a = onRenderLabelProps.props, label = _a.label, disabled = _a.disabled, required = _a.required;\n if (label) {\n return (React.createElement(Label, { id: _this._id + '-label', disabled: disabled, required: required, className: _this._classNames.label },\n label,\n onRenderLabelProps.multiselectAccessibleText && (React.createElement(\"span\", { className: _this._classNames.screenReaderText }, onRenderLabelProps.multiselectAccessibleText))));\n }\n return null;\n };\n // Render List of items\n _this._onRenderList = function (props) {\n var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a, label = props.label, ariaLabel = props.ariaLabel;\n var queue = { items: [] };\n var renderedList = [];\n var id = _this._id;\n var emptyQueue = function () {\n var newGroup = queue.id\n ? [\n React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n ]\n : queue.items;\n renderedList = __spreadArrays(renderedList, newGroup);\n // Flush items and id\n queue = { items: [] };\n };\n var placeRenderedOptionIntoQueue = function (item, index) {\n /*\n Case Header\n empty queue if it's not already empty\n ensure unique ID for header and set queue ID\n push header into queue\n Case Divider\n push divider into queue if not first item\n empty queue if not already empty\n Default\n push item into queue\n */\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Header:\n queue.items.length > 0 && emptyQueue();\n id = id + item.key;\n queue.items.push(onRenderItem(__assign(__assign({ id: id }, item), { index: index }), _this._onRenderItem));\n queue.id = id;\n break;\n case SelectableOptionMenuItemType.Divider:\n index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n queue.items.length > 0 && emptyQueue();\n break;\n default:\n queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n }\n };\n // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n props.options.forEach(function (item, index) {\n placeRenderedOptionIntoQueue(item, index);\n });\n // Push remaining items into all renderedList\n queue.items.length > 0 && emptyQueue();\n return (React.createElement(\"div\", { id: id + '-list', className: _this._classNames.optionsContainer, \"aria-labelledby\": label && id + '-label', \"aria-label\": ariaLabel && !label ? ariaLabel : undefined, role: \"listbox\" }, renderedList));\n };\n // Render items\n _this._onRenderItem = function (item) {\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Divider:\n return _this._renderSeparator(item);\n case SelectableOptionMenuItemType.Header:\n return _this._renderHeader(item);\n default:\n return _this._renderOption(item);\n }\n };\n // Default _onRenderLowerContent function returns nothing\n _this._onRenderLowerContent = function () {\n return null;\n };\n // Default _onRenderUpperContent function returns nothing\n _this._onRenderUpperContent = function () {\n return null;\n };\n _this._renderOption = function (item) {\n var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOptionContent : _a;\n var id = _this._id;\n var isSelected = _this._isOptionSelected(item.index);\n var isChecked = _this._isOptionChecked(item.index);\n var optionStyles = _this._getCurrentOptionStyles(item);\n var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n var title = _this._getPreviewText(item);\n var onRenderCheckboxLabel = function () { return onRenderOption(item, _this._onRenderOptionContent); };\n var getOptionComponent = function () {\n return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: id + '-list' + item.index, key: item.key, \"data-index\": item.index, styles: optionStyles, checked: isSelected, className: 'ms-ComboBox-option', onClick: _this._onItemClick(item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseEnter: _this._onOptionMouseEnter.bind(_this, item.index), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseMove: _this._onOptionMouseMove.bind(_this, item.index), onMouseLeave: _this._onOptionMouseLeave, role: \"option\", \"aria-selected\": isChecked ? 'true' : 'false', ariaLabel: item.ariaLabel, disabled: item.disabled, title: title }, React.createElement(\"span\", { className: optionClassNames.optionTextWrapper, ref: isSelected ? _this._selectedElement : undefined }, onRenderOption(item, _this._onRenderOptionContent)))) : (React.createElement(Checkbox, { id: id + '-list' + item.index, ariaLabel: item.ariaLabel, key: item.key, styles: optionStyles, className: 'ms-ComboBox-option', onChange: _this._onItemClick(item), label: item.text, checked: isChecked, title: title, disabled: item.disabled, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderLabel: onRenderCheckboxLabel, inputProps: __assign({ \n // aria-selected should only be applied to checked items, not hovered items\n 'aria-selected': isChecked ? 'true' : 'false', role: 'option' }, {\n 'data-index': item.index,\n 'data-is-focusable': true,\n }) }));\n };\n return (React.createElement(ComboBoxOptionWrapper, { key: item.key, index: item.index, disabled: item.disabled, isSelected: isSelected, isChecked: isChecked, text: item.text, \n // eslint-disable-next-line react/jsx-no-bind\n render: getOptionComponent, data: item.data }));\n };\n /**\n * Mouse clicks to headers, dividers and scrollbar should not make input lose focus\n */\n _this._onCalloutMouseDown = function (ev) {\n ev.preventDefault();\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n _this._async.clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {\n _this._isScrollIdle = true;\n }, ScrollIdleDelay);\n };\n _this._onRenderOptionContent = function (item) {\n var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n return React.createElement(\"span\", { className: optionClassNames.optionText }, item.text);\n };\n /**\n * Handles dismissing (cancelling) the menu\n */\n _this._onDismiss = function () {\n var onMenuDismiss = _this.props.onMenuDismiss;\n if (onMenuDismiss) {\n onMenuDismiss();\n }\n // In persistMode we need to simulate callout layer mount\n // since that only happens once. We do it on dismiss since\n // it works either way.\n if (_this.props.persistMenu) {\n _this._onCalloutLayerMounted();\n }\n // close the menu\n _this._setOpenStateAndFocusOnClose(false /* isOpen */, false /* focusInputAfterClose */);\n // reset the selected index\n // to the last value state\n _this._resetSelectedIndex();\n };\n _this._onAfterClearPendingInfo = function () {\n _this._processingClearPendingInfo = false;\n };\n /**\n * Handle keydown on the input\n * @param ev - The keyboard event that was fired\n */\n _this._onInputKeyDown = function (ev) {\n var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;\n var _b = _this.state, isOpen = _b.isOpen, currentOptions = _b.currentOptions, currentPendingValueValidIndexOnHover = _b.currentPendingValueValidIndexOnHover;\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _onInputKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n if (disabled) {\n _this._handleInputWhenDisabled(ev);\n return;\n }\n var index = _this._getPendingSelectedIndex(false /* includeCurrentPendingValue */);\n switch (ev.which) {\n case KeyCodes.enter:\n if (_this._autofill.current && _this._autofill.current.inputElement) {\n _this._autofill.current.inputElement.select();\n }\n _this._submitPendingValue(ev);\n if (_this.props.multiSelect && isOpen) {\n _this.setState({\n currentPendingValueValidIndex: index,\n });\n }\n else {\n // On enter submit the pending value\n if (isOpen ||\n ((!allowFreeform ||\n _this.state.currentPendingValue === undefined ||\n _this.state.currentPendingValue === null ||\n _this.state.currentPendingValue.length <= 0) &&\n _this.state.currentPendingValueValidIndex < 0)) {\n // if we are open or\n // if we are not allowing freeform or\n // our we have no pending value\n // and no valid pending index\n // flip the open state\n _this.setState({\n isOpen: !isOpen,\n });\n }\n }\n break;\n case KeyCodes.tab:\n // On enter submit the pending value\n if (!_this.props.multiSelect) {\n _this._submitPendingValue(ev);\n }\n // If we are not allowing freeform\n // or the comboBox is open, flip the open state\n if (isOpen) {\n _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);\n }\n // Allow TAB to propigate\n return;\n case KeyCodes.escape:\n // reset the selected index\n _this._resetSelectedIndex();\n // Close the menu if opened\n if (isOpen) {\n _this.setState({\n isOpen: false,\n });\n }\n else {\n return;\n }\n break;\n case KeyCodes.up:\n // if we are in clearAll state (e.g. the user as hovering\n // and has since mousedOut of the menu items),\n // go to the last index\n if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n index = _this.state.currentOptions.length;\n }\n if (ev.altKey || ev.metaKey) {\n // Close the menu if it is open and break so\n // that the event get stopPropagation and prevent default.\n // Otherwise, we need to let the event continue to propagate\n if (isOpen) {\n _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);\n break;\n }\n return;\n }\n // Go to the previous option\n _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.backward);\n break;\n case KeyCodes.down:\n // Expand the comboBox on ALT + DownArrow\n if (ev.altKey || ev.metaKey) {\n _this._setOpenStateAndFocusOnClose(true /* isOpen */, true /* focusInputAfterClose */);\n }\n else {\n // if we are in clearAll state (e.g. the user as hovering\n // and has since mousedOut of the menu items),\n // go to the first index\n if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n index = -1;\n }\n // Got to the next option\n _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.forward);\n }\n break;\n case KeyCodes.home:\n case KeyCodes.end:\n if (allowFreeform) {\n return;\n }\n // Set the initial values to respond to HOME\n // which goes to the first selectable option\n index = -1;\n var directionToSearch = SearchDirection.forward;\n // If end, update the values to respond to END\n // which goes to the last selectable option\n if (ev.which === KeyCodes.end) {\n index = currentOptions.length;\n directionToSearch = SearchDirection.backward;\n }\n _this._setPendingInfoFromIndexAndDirection(index, directionToSearch);\n break;\n /* eslint-disable no-fallthrough */\n case KeyCodes.space:\n // event handled in _onComboBoxKeyUp\n if (!allowFreeform && autoComplete === 'off') {\n break;\n }\n default:\n /* eslint-enable no-fallthrough */\n // are we processing a function key? if so bail out\n if (ev.which >= 112 /* F1 */ && ev.which <= 123 /* F12 */) {\n return;\n }\n // If we get here and we got either and ALT key\n // or meta key, let the event propagate\n if (ev.keyCode === KeyCodes.alt || ev.key === 'Meta' /* && isOpen */) {\n return;\n }\n // If we are not allowing freeform and\n // allowing autoComplete, handle the input here\n // since we have marked the input as readonly\n if (!allowFreeform && autoComplete === 'on') {\n _this._onInputChange(ev.key);\n break;\n }\n // allow the key to propagate by default\n return;\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n /**\n * Handle keyup on the input\n * @param ev - the keyboard event that was fired\n */\n _this._onInputKeyUp = function (ev) {\n var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;\n var isOpen = _this.state.isOpen;\n // We close the menu on key up only if ALL of the following are true:\n // - Most recent key down was alt or meta (command)\n // - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n // expand/collapse the menu)\n // - We're not on a Mac (or iOS)\n // This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n // closing any open context menus. There is not a similar behavior on Macs.\n var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && _this._isAltOrMeta(ev);\n _this._lastKeyDownWasAltOrMeta = false;\n var shouldHandleKey = keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n if (disabled) {\n _this._handleInputWhenDisabled(ev);\n return;\n }\n switch (ev.which) {\n case KeyCodes.space:\n // If we are not allowing freeform and are not autoComplete\n // make space expand/collapse the comboBox\n // and allow the event to propagate\n if (!allowFreeform && autoComplete === 'off') {\n _this._setOpenStateAndFocusOnClose(!isOpen, !!isOpen);\n }\n return;\n default:\n if (shouldHandleKey && isOpen) {\n _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);\n }\n else {\n if (_this.state.focusState === 'focusing' && _this.props.openOnKeyboardFocus) {\n _this.setState({ isOpen: true });\n }\n if (_this.state.focusState !== 'focused') {\n _this.setState({ focusState: 'focused' });\n }\n }\n return;\n }\n };\n _this._onOptionMouseLeave = function () {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n // Ignore the event in persistMenu mode if the callout has\n // closed. This is to avoid clearing the visuals on item click.\n if (_this.props.persistMenu && !_this.state.isOpen) {\n return;\n }\n _this.setState({\n currentPendingValueValidIndexOnHover: HoverStatus.clearAll,\n });\n };\n /**\n * Click handler for the button of the comboBox\n * and the input when not allowing freeform. This\n * toggles the expand/collapse state of the comboBox (if enbled)\n */\n _this._onComboBoxClick = function () {\n var disabled = _this.props.disabled;\n var isOpen = _this.state.isOpen;\n if (!disabled) {\n _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);\n _this.setState({ focusState: 'focused' });\n }\n };\n /**\n * Click handler for the autofill.\n */\n _this._onAutofillClick = function () {\n var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform;\n if (allowFreeform && !disabled) {\n _this.focus(_this.state.isOpen || _this._processingTouch);\n }\n else {\n _this._onComboBoxClick();\n }\n };\n _this._onTouchStart = function () {\n if (_this._comboBoxWrapper.current && !('onpointerdown' in _this._comboBoxWrapper)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n defaultSelectedKey: 'selectedKey',\n text: 'defaultSelectedKey',\n selectedKey: 'value',\n dropdownWidth: 'useComboBoxAsMenuWidth',\n ariaLabel: 'label',\n });\n _this._id = props.id || getId('ComboBox');\n var selectedKeys = _this._buildDefaultSelectedKeys(props.defaultSelectedKey, props.selectedKey);\n _this._isScrollIdle = true;\n _this._processingTouch = false;\n _this._gotMouseMove = false;\n _this._processingClearPendingInfo = false;\n var initialSelectedIndices = _this._getSelectedIndices(props.options, selectedKeys);\n _this.state = {\n isOpen: false,\n selectedIndices: initialSelectedIndices,\n focusState: 'none',\n suggestedDisplayValue: undefined,\n currentOptions: _this.props.options,\n currentPendingValueValidIndex: -1,\n currentPendingValue: undefined,\n currentPendingValueValidIndexOnHover: HoverStatus.default,\n };\n return _this;\n }\n Object.defineProperty(ComboBox.prototype, \"selectedOptions\", {\n /**\n * All selected options\n */\n get: function () {\n var _a = this.state, currentOptions = _a.currentOptions, selectedIndices = _a.selectedIndices;\n return getAllSelectedOptions(currentOptions, selectedIndices);\n },\n enumerable: true,\n configurable: true\n });\n ComboBox.prototype.componentDidMount = function () {\n if (this._comboBoxWrapper.current && !this.props.disabled) {\n // hook up resolving the options if needed on focus\n this._events.on(this._comboBoxWrapper.current, 'focus', this._onResolveOptions, true);\n if ('onpointerdown' in this._comboBoxWrapper.current) {\n // For ComboBoxes, touching anywhere in the combo box should drop the dropdown, including the input element.\n // This gives more hit target space for touch environments. We're setting the onpointerdown here, because React\n // does not support Pointer events yet.\n this._events.on(this._comboBoxWrapper.current, 'pointerdown', this._onPointerDown, true);\n }\n }\n };\n ComboBox.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n // Update the selectedIndex and currentOptions state if\n // the selectedKey, value, or options have changed\n if (newProps.selectedKey !== this.props.selectedKey ||\n newProps.text !== this.props.text ||\n newProps.options !== this.props.options) {\n var selectedKeys = this._buildSelectedKeys(newProps.selectedKey);\n var indices = this._getSelectedIndices(newProps.options, selectedKeys);\n this.setState({\n selectedIndices: indices,\n currentOptions: newProps.options,\n });\n if (newProps.selectedKey === null) {\n this.setState({\n suggestedDisplayValue: undefined,\n });\n }\n }\n };\n ComboBox.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _this = this;\n var _a = this.props, allowFreeform = _a.allowFreeform, text = _a.text, onMenuOpen = _a.onMenuOpen, onMenuDismissed = _a.onMenuDismissed;\n var _b = this.state, isOpen = _b.isOpen, selectedIndices = _b.selectedIndices, currentPendingValueValidIndex = _b.currentPendingValueValidIndex;\n // If we are newly open or are open and the pending valid index changed,\n // make sure the currently selected/pending option is scrolled into view\n if (isOpen && (!prevState.isOpen || prevState.currentPendingValueValidIndex !== currentPendingValueValidIndex)) {\n // Need this timeout so that the selectedElement ref is correctly updated\n this._async.setTimeout(function () { return _this._scrollIntoView(); }, 0);\n }\n // if an action is taken that put focus in the ComboBox\n // and If we are open or we are just closed, shouldFocusAfterClose is set,\n // but we are not the activeElement set focus on the input\n if (this._hasFocus() &&\n (isOpen ||\n (prevState.isOpen &&\n !isOpen &&\n this._focusInputAfterClose &&\n this._autofill.current &&\n document.activeElement !== this._autofill.current.inputElement))) {\n this.focus(undefined /*shouldOpenOnFocus*/, true /*useFocusAsync*/);\n }\n // If we should focusAfterClose AND\n // just opened/closed the menu OR\n // are focused AND\n // updated the selectedIndex with the menu closed OR\n // are not allowing freeform OR\n // the value changed\n // we need to set selection\n if (this._focusInputAfterClose &&\n ((prevState.isOpen && !isOpen) ||\n (this._hasFocus() &&\n ((!isOpen &&\n !this.props.multiSelect &&\n prevState.selectedIndices &&\n selectedIndices &&\n prevState.selectedIndices[0] !== selectedIndices[0]) ||\n !allowFreeform ||\n text !== prevProps.text)))) {\n this._onFocus();\n }\n this._notifyPendingValueChanged(prevState);\n if (isOpen && !prevState.isOpen && onMenuOpen) {\n onMenuOpen();\n }\n if (!isOpen && prevState.isOpen && onMenuDismissed) {\n onMenuDismissed();\n }\n };\n ComboBox.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n // Primary Render\n ComboBox.prototype.render = function () {\n var _this = this;\n var id = this._id;\n var errorMessageId = id + '-error';\n var _a = this.props, className = _a.className, disabled = _a.disabled, required = _a.required, errorMessage = _a.errorMessage, _b = _a.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = _a.onRenderLabel, onRenderLabel = _c === void 0 ? this._onRenderLabel : _c, _d = _a.onRenderList, onRenderList = _d === void 0 ? this._onRenderList : _d, _e = _a.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, _f = _a.onRenderOption, onRenderOption = _f === void 0 ? this._onRenderOptionContent : _f, allowFreeform = _a.allowFreeform, customStyles = _a.styles, theme = _a.theme, keytipProps = _a.keytipProps, persistMenu = _a.persistMenu, multiSelect = _a.multiSelect;\n var _g = this.state, isOpen = _g.isOpen, suggestedDisplayValue = _g.suggestedDisplayValue;\n this._currentVisibleValue = this._getVisibleValue();\n // Single select is already accessible since the whole text is selected\n // when focus enters the input. Since multiselect appears to clear the input\n // it needs special accessible text\n var multiselectAccessibleText = multiSelect\n ? this._getMultiselectDisplayString(this.state.selectedIndices, this.state.currentOptions, suggestedDisplayValue)\n : undefined;\n var divProps = getNativeProps(this.props, divProperties, [\n 'onChange',\n 'value',\n ]);\n var hasErrorMessage = errorMessage && errorMessage.length > 0 ? true : false;\n this._classNames = this.props.getClassNames\n ? this.props.getClassNames(theme, !!isOpen, !!disabled, !!required, !!this._hasFocus(), !!allowFreeform, !!hasErrorMessage, className)\n : getClassNames(getStyles(theme, customStyles), className, !!isOpen, !!disabled, !!required, !!this._hasFocus(), !!allowFreeform, !!hasErrorMessage);\n var comboBoxWrapper = keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) {\n return _this._renderComboBoxWrapper(multiselectAccessibleText, errorMessageId, keytipAttributes);\n })) : (this._renderComboBoxWrapper(multiselectAccessibleText, errorMessageId));\n return (React.createElement(\"div\", __assign({}, divProps, { ref: this._root, className: this._classNames.container }),\n onRenderLabel({ props: this.props, multiselectAccessibleText: multiselectAccessibleText }, this._onRenderLabel),\n comboBoxWrapper,\n (persistMenu || isOpen) &&\n onRenderContainer(__assign(__assign({}, this.props), { onRenderList: onRenderList,\n onRenderItem: onRenderItem,\n onRenderOption: onRenderOption, options: this.state.currentOptions.map(function (item, index) { return (__assign(__assign({}, item), { index: index })); }), onDismiss: this._onDismiss }), this._onRenderContainer),\n hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n };\n ComboBox.prototype._getPendingString = function (currentPendingValue, currentOptions, index) {\n return currentPendingValue !== null && currentPendingValue !== undefined\n ? currentPendingValue\n : this._indexWithinBounds(currentOptions, index)\n ? currentOptions[index].text\n : '';\n };\n /**\n * Returns a string that concatenates all of the selected values\n * for multiselect combobox.\n */\n ComboBox.prototype._getMultiselectDisplayString = function (selectedIndices, currentOptions, suggestedDisplayValue) {\n var displayValues = [];\n for (var idx = 0; selectedIndices && idx < selectedIndices.length; idx++) {\n var index = selectedIndices[idx];\n displayValues.push(this._indexWithinBounds(currentOptions, index)\n ? currentOptions[index].text\n : this._normalizeToString(suggestedDisplayValue));\n }\n var _a = this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n return displayValues.join(multiSelectDelimiter);\n };\n /**\n * Is the index within the bounds of the array?\n * @param options - options to check if the index is valid for\n * @param index - the index to check\n * @returns - true if the index is valid for the given options, false otherwise\n */\n ComboBox.prototype._indexWithinBounds = function (options, index) {\n if (!options) {\n return false;\n }\n return index >= 0 && index < options.length;\n };\n /**\n * Process the new input's new value when the comboBox\n * allows freeform entry\n * @param updatedValue - the input's newly changed value\n */\n ComboBox.prototype._processInputChangeWithFreeform = function (updatedValue) {\n var _this = this;\n var currentOptions = this.state.currentOptions;\n var newCurrentPendingValueValidIndex = -1;\n // if the new value is empty, see if we have an exact match\n // and then set the pending info\n if (updatedValue === '') {\n var items = currentOptions\n .map(function (item, index) {\n return __assign(__assign({}, item), { index: index });\n })\n .filter(function (option) {\n return option.itemType !== SelectableOptionMenuItemType.Header &&\n option.itemType !== SelectableOptionMenuItemType.Divider;\n })\n .filter(function (option) { return _this._getPreviewText(option) === updatedValue; });\n // if we found a match remember the index\n if (items.length === 1) {\n newCurrentPendingValueValidIndex = items[0].index;\n }\n this._setPendingInfo(updatedValue, newCurrentPendingValueValidIndex, updatedValue);\n return;\n }\n // Remember the original value and then,\n // make the value lowercase for comparison\n var originalUpdatedValue = updatedValue;\n updatedValue = updatedValue.toLocaleLowerCase();\n var newSuggestedDisplayValue = '';\n // If autoComplete is on, attempt to find a match from the available options\n if (this.props.autoComplete === 'on') {\n // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value\n var items = currentOptions\n .map(function (item, index) {\n return __assign(__assign({}, item), { index: index });\n })\n .filter(function (option) {\n return option.itemType !== SelectableOptionMenuItemType.Header &&\n option.itemType !== SelectableOptionMenuItemType.Divider;\n })\n .filter(function (option) {\n return _this._getPreviewText(option)\n .toLocaleLowerCase()\n .indexOf(updatedValue) === 0;\n });\n if (items.length > 0) {\n // use ariaLabel as the value when the option is set\n var text = this._getPreviewText(items[0]);\n // If the user typed out the complete option text, we don't need any suggested display text anymore\n newSuggestedDisplayValue = text.toLocaleLowerCase() !== updatedValue ? text : '';\n // remember the index of the match we found\n newCurrentPendingValueValidIndex = items[0].index;\n }\n }\n else {\n // If autoComplete is off, attempt to find a match only when the value is exactly equal to the text of an option\n var items = currentOptions\n .map(function (item, index) {\n return __assign(__assign({}, item), { index: index });\n })\n .filter(function (option) {\n return option.itemType !== SelectableOptionMenuItemType.Header &&\n option.itemType !== SelectableOptionMenuItemType.Divider;\n })\n .filter(function (option) { return _this._getPreviewText(option).toLocaleLowerCase() === updatedValue; });\n // if we found a match remember the index\n if (items.length === 1) {\n newCurrentPendingValueValidIndex = items[0].index;\n }\n }\n // Set the updated state\n this._setPendingInfo(originalUpdatedValue, newCurrentPendingValueValidIndex, newSuggestedDisplayValue);\n };\n /**\n * Process the new input's new value when the comboBox\n * does not allow freeform entry\n * @param updatedValue - the input's newly changed value\n */\n ComboBox.prototype._processInputChangeWithoutFreeform = function (updatedValue) {\n var _this = this;\n var _a = this.state, currentPendingValue = _a.currentPendingValue, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentOptions = _a.currentOptions;\n if (this.props.autoComplete === 'on') {\n // If autoComplete is on while allow freeform is off,\n // we will remember the keypresses and build up a string to attempt to match\n // as long as characters are typed within a the timeout span of each other,\n // otherwise we will clear the string and start building a new one on the next keypress.\n // Also, only do this processing if we have a non-empty value\n if (updatedValue !== '') {\n // If we have a pending autocomplete clearing task,\n // we know that the user is typing with keypresses happening\n // within the timeout of each other so remove the clearing task\n // and continue building the pending value with the udpated value\n if (this._lastReadOnlyAutoCompleteChangeTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastReadOnlyAutoCompleteChangeTimeoutId);\n this._lastReadOnlyAutoCompleteChangeTimeoutId = undefined;\n updatedValue = this._normalizeToString(currentPendingValue) + updatedValue;\n }\n var originalUpdatedValue = updatedValue;\n updatedValue = updatedValue.toLocaleLowerCase();\n // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value\n var items = currentOptions\n .map(function (item, i) {\n return __assign(__assign({}, item), { index: i });\n })\n .filter(function (option) {\n return option.itemType !== SelectableOptionMenuItemType.Header &&\n option.itemType !== SelectableOptionMenuItemType.Divider;\n })\n .filter(function (option) { return option.text.toLocaleLowerCase().indexOf(updatedValue) === 0; });\n // If we found a match, udpdate the state\n if (items.length > 0) {\n this._setPendingInfo(originalUpdatedValue, items[0].index, this._getPreviewText(items[0]));\n }\n // Schedule a timeout to clear the pending value after the timeout span\n this._lastReadOnlyAutoCompleteChangeTimeoutId = this._async.setTimeout(function () {\n _this._lastReadOnlyAutoCompleteChangeTimeoutId = undefined;\n }, ReadOnlyPendingAutoCompleteTimeout);\n return;\n }\n }\n // If we get here, either autoComplete is on or we did not find a match with autoComplete on.\n // Remember we are not allowing freeform, so at this point, if we have a pending valid value index\n // use that; otherwise use the selectedIndex\n var index = currentPendingValueValidIndex >= 0 ? currentPendingValueValidIndex : this._getFirstSelectedIndex();\n // Since we are not allowing freeform, we need to\n // set both the pending and suggested values/index\n // to allow us to select all content in the input to\n // give the illusion that we are readonly (e.g. freeform off)\n this._setPendingInfoFromIndex(index);\n };\n ComboBox.prototype._getFirstSelectedIndex = function () {\n return this.state.selectedIndices && this.state.selectedIndices.length > 0 ? this.state.selectedIndices[0] : -1;\n };\n /**\n * Walk along the options starting at the index, stepping by the delta (positive or negative)\n * looking for the next valid selectable index (e.g. skipping headings and dividers)\n * @param index - the index to get the next selectable index from\n * @param delta - optional delta to step by when finding the next index, defaults to 0\n * @returns - the next valid selectable index. If the new index is outside of the bounds,\n * it will snap to the edge of the options array. If delta == 0 and the given index is not selectable\n */\n ComboBox.prototype._getNextSelectableIndex = function (index, searchDirection) {\n var currentOptions = this.state.currentOptions;\n var newIndex = index + searchDirection;\n newIndex = Math.max(0, Math.min(currentOptions.length - 1, newIndex));\n if (!this._indexWithinBounds(currentOptions, newIndex)) {\n return -1;\n }\n var option = currentOptions[newIndex];\n if (option.itemType === SelectableOptionMenuItemType.Header ||\n option.itemType === SelectableOptionMenuItemType.Divider ||\n option.hidden === true) {\n // Should we continue looking for an index to select?\n if (searchDirection !== SearchDirection.none &&\n ((newIndex > 0 && searchDirection < SearchDirection.none) ||\n (newIndex >= 0 && newIndex < currentOptions.length && searchDirection > SearchDirection.none))) {\n newIndex = this._getNextSelectableIndex(newIndex, searchDirection);\n }\n else {\n // If we cannot perform a useful search just return the index we were given\n return index;\n }\n }\n // We have the next valid selectable index, return it\n return newIndex;\n };\n /**\n * Set the selected index. Note, this is\n * the \"real\" selected index, not the pending selected index\n * @param index - the index to set (or the index to set from if a search direction is provided)\n * @param searchDirection - the direction to search along the options from the given index\n */\n ComboBox.prototype._setSelectedIndex = function (index, submitPendingValueEvent, searchDirection) {\n var _this = this;\n if (searchDirection === void 0) { searchDirection = SearchDirection.none; }\n var _a = this.props, onChange = _a.onChange, onPendingValueChanged = _a.onPendingValueChanged;\n var currentOptions = this.state.currentOptions;\n var initialIndices = this.state.selectedIndices;\n // Clone selectedIndices so we don't mutate state\n var selectedIndices = initialIndices ? initialIndices.slice() : [];\n // Find the next selectable index, if searchDirection is none\n // we will get our starting index back\n index = this._getNextSelectableIndex(index, searchDirection);\n if (!this._indexWithinBounds(currentOptions, index)) {\n return;\n }\n // Are we at a new index? If so, update the state, otherwise\n // there is nothing to do\n if (this.props.multiSelect ||\n selectedIndices.length < 1 ||\n (selectedIndices.length === 1 && selectedIndices[0] !== index)) {\n var option_1 = __assign({}, currentOptions[index]);\n // if option doesn't existing, or option is disabled, we noop\n if (!option_1 || option_1.disabled) {\n return;\n }\n if (this.props.multiSelect) {\n // Setting the initial state of option.selected in Multi-select combobox by checking the\n // selectedIndices array and overriding the undefined issue\n option_1.selected = option_1.selected !== undefined ? !option_1.selected : selectedIndices.indexOf(index) < 0;\n if (option_1.selected && selectedIndices.indexOf(index) < 0) {\n selectedIndices.push(index);\n }\n else if (!option_1.selected && selectedIndices.indexOf(index) >= 0) {\n selectedIndices = selectedIndices.filter(function (value) { return value !== index; });\n }\n }\n else {\n selectedIndices[0] = index;\n }\n submitPendingValueEvent.persist();\n // Only setstate if combobox is uncontrolled.\n if (this.props.selectedKey || this.props.selectedKey === null) {\n // If ComboBox value is changed, revert preview first\n if (this._hasPendingValue && onPendingValueChanged) {\n onPendingValueChanged();\n this._hasPendingValue = false;\n }\n if (onChange) {\n onChange(submitPendingValueEvent, option_1, index, undefined);\n }\n }\n else {\n // Update current options\n var changedOptions = currentOptions.slice();\n changedOptions[index] = option_1;\n // Call onChange after state is updated\n this.setState({\n selectedIndices: selectedIndices,\n currentOptions: changedOptions,\n }, function () {\n // If ComboBox value is changed, revert preview first\n if (_this._hasPendingValue && onPendingValueChanged) {\n onPendingValueChanged();\n _this._hasPendingValue = false;\n }\n if (onChange) {\n onChange(submitPendingValueEvent, option_1, index, undefined);\n }\n });\n }\n }\n if (this.props.multiSelect && this.state.isOpen) {\n return;\n }\n // clear all of the pending info\n this._clearPendingInfo();\n };\n /**\n * Submit a pending value if there is one\n */\n ComboBox.prototype._submitPendingValue = function (submitPendingValueEvent) {\n var _a = this.props, onChange = _a.onChange, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;\n var _b = this.state, currentPendingValue = _b.currentPendingValue, currentPendingValueValidIndex = _b.currentPendingValueValidIndex, currentOptions = _b.currentOptions, currentPendingValueValidIndexOnHover = _b.currentPendingValueValidIndexOnHover;\n var selectedIndices = this.state.selectedIndices;\n // Do not submit any pending value if we\n // have already initiated clearing the pending info\n if (this._processingClearPendingInfo) {\n return;\n }\n // If we allow freeform we need to handle that\n if (allowFreeform) {\n // if currentPendingValue is null or undefined the user did not submit anything\n // (not even empty because we would have stored that as the pending value)\n if (currentPendingValue === null || currentPendingValue === undefined) {\n // if a user did not type anything they may just hovered over an item\n if (currentPendingValueValidIndexOnHover >= 0) {\n this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);\n this._clearPendingInfo();\n }\n return;\n }\n // Check to see if the user typed an exact match\n if (this._indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {\n var pendingOptionText = this._getPreviewText(currentOptions[currentPendingValueValidIndex]).toLocaleLowerCase();\n // By exact match, that means: our pending value is the same as the pending option text OR\n // the pending option starts with the pending value and we have an \"autoComplete\" selection\n // where the total length is equal to pending option length OR\n // the live value in the underlying input matches the pending option; update the state\n if (currentPendingValue.toLocaleLowerCase() === pendingOptionText ||\n (autoComplete &&\n pendingOptionText.indexOf(currentPendingValue.toLocaleLowerCase()) === 0 &&\n this._autofill.current &&\n this._autofill.current.isValueSelected &&\n currentPendingValue.length +\n (this._autofill.current.selectionEnd - this._autofill.current.selectionStart) ===\n pendingOptionText.length) ||\n (this._autofill.current &&\n this._autofill.current.inputElement &&\n this._autofill.current.inputElement.value.toLocaleLowerCase() === pendingOptionText)) {\n this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);\n if (this.props.multiSelect && this.state.isOpen) {\n return;\n }\n this._clearPendingInfo();\n return;\n }\n }\n if (onChange) {\n if (onChange) {\n // trigger onChange to clear value\n onChange(submitPendingValueEvent, undefined, undefined, currentPendingValue);\n }\n }\n else {\n // If we are not controlled, create a new selected option\n var newOption = {\n key: currentPendingValue || getId(),\n text: this._normalizeToString(currentPendingValue),\n };\n // If it's multiselect, set selected state to true\n if (this.props.multiSelect) {\n newOption.selected = true;\n }\n var newOptions = currentOptions.concat([newOption]);\n if (selectedIndices) {\n if (!this.props.multiSelect) {\n selectedIndices = [];\n }\n selectedIndices.push(newOptions.length - 1);\n }\n this.setState({\n currentOptions: newOptions,\n selectedIndices: selectedIndices,\n });\n }\n }\n else if (currentPendingValueValidIndex >= 0) {\n // Since we are not allowing freeform, we must have a matching\n // to be able to update state\n this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);\n }\n else if (currentPendingValueValidIndexOnHover >= 0) {\n // If all else failed and we were hovering over an item, select it\n this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);\n }\n // Finally, clear the pending info\n this._clearPendingInfo();\n };\n ComboBox.prototype._onCalloutLayerMounted = function () {\n // In persistMenu mode _onLayerMounted is only called once for the lifetime\n // of the component. Any functionality required for callout \"on mount\" can\n // go here so that we can also call it again during callout dismissal to reset\n // object state.\n this._gotMouseMove = false;\n };\n // Render separator\n ComboBox.prototype._renderSeparator = function (item) {\n var index = item.index, key = item.key;\n if (index && index > 0) {\n return React.createElement(\"div\", { role: \"separator\", key: key, className: this._classNames.divider });\n }\n return null;\n };\n ComboBox.prototype._renderHeader = function (item) {\n var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOptionContent : _a;\n return (React.createElement(\"div\", { id: item.id, key: item.key, className: this._classNames.header }, onRenderOption(item, this._onRenderOptionContent)));\n };\n /**\n * If we are coming from a mouseOut:\n * there is no visible selected option.\n *\n * Else if We are hovering over an item:\n * that gets the selected look.\n *\n * Else:\n * Use the current valid pending index if it exists OR\n * we do not have a valid index and we currently have a pending input value,\n * otherwise use the selected index\n * */\n ComboBox.prototype._isOptionSelected = function (index) {\n var currentPendingValueValidIndexOnHover = this.state.currentPendingValueValidIndexOnHover;\n // If the hover state is set to clearAll, don't show a selected index.\n // Note, this happens when the user moused out of the menu items\n if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n return false;\n }\n return this._getPendingSelectedIndex(true /* includePendingValue */) === index ? true : false;\n };\n ComboBox.prototype._isOptionChecked = function (index) {\n if (this.props.multiSelect && index !== undefined && this.state.selectedIndices) {\n var idxOfSelectedIndex = -1;\n idxOfSelectedIndex = this.state.selectedIndices.indexOf(index);\n return idxOfSelectedIndex >= 0;\n }\n return false;\n };\n /**\n * Gets the pending selected index taking into account hover, valueValidIndex, and selectedIndex\n * @param includeCurrentPendingValue - Should we include the currentPendingValue when\n * finding the index\n */\n ComboBox.prototype._getPendingSelectedIndex = function (includeCurrentPendingValue) {\n var _a = this.state, currentPendingValueValidIndexOnHover = _a.currentPendingValueValidIndexOnHover, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValue = _a.currentPendingValue;\n return currentPendingValueValidIndexOnHover >= 0\n ? currentPendingValueValidIndexOnHover\n : currentPendingValueValidIndex >= 0 ||\n (includeCurrentPendingValue && currentPendingValue !== null && currentPendingValue !== undefined)\n ? currentPendingValueValidIndex\n : this.props.multiSelect\n ? 0\n : this._getFirstSelectedIndex();\n };\n /**\n * Scroll the selected element into view\n */\n ComboBox.prototype._scrollIntoView = function () {\n var _a = this.props, onScrollToItem = _a.onScrollToItem, scrollSelectedToTop = _a.scrollSelectedToTop;\n var _b = this.state, currentPendingValueValidIndex = _b.currentPendingValueValidIndex, currentPendingValue = _b.currentPendingValue;\n if (onScrollToItem) {\n // Use the custom scroll handler\n onScrollToItem(currentPendingValueValidIndex >= 0 || currentPendingValue !== ''\n ? currentPendingValueValidIndex\n : this._getFirstSelectedIndex());\n }\n else if (this._selectedElement.current && this._selectedElement.current.offsetParent) {\n // We are using refs, scroll the ref into view\n if (scrollSelectedToTop) {\n this._selectedElement.current.offsetParent.scrollIntoView(true);\n }\n else {\n var alignToTop = true;\n if (this._comboBoxMenu.current && this._comboBoxMenu.current.offsetParent) {\n var scrollableParentRect = this._comboBoxMenu.current.offsetParent.getBoundingClientRect();\n var selectedElementRect = this._selectedElement.current.offsetParent.getBoundingClientRect();\n // If we are completely in view then we do not need to scroll\n if (scrollableParentRect.top <= selectedElementRect.top &&\n scrollableParentRect.top + scrollableParentRect.height >=\n selectedElementRect.top + selectedElementRect.height) {\n return;\n }\n // If we are lower than the scrollable parent viewport then we should align to the bottom\n if (scrollableParentRect.top + scrollableParentRect.height <=\n selectedElementRect.top + selectedElementRect.height) {\n alignToTop = false;\n }\n }\n this._selectedElement.current.offsetParent.scrollIntoView(alignToTop);\n }\n }\n };\n /**\n * Click handler for the menu items\n * to select the item and also close the menu\n * @param index - the index of the item that was clicked\n */\n ComboBox.prototype._onItemClick = function (item) {\n var _this = this;\n var onItemClick = this.props.onItemClick;\n var index = item.index;\n return function (ev) {\n // only close the callout when it's in single-select mode\n if (!_this.props.multiSelect) {\n // ensure that focus returns to the input, not the button\n _this._autofill.current && _this._autofill.current.focus();\n _this.setState({\n isOpen: false,\n });\n }\n // Continue processing the click only after\n // performing menu close / control focus(inner working)\n onItemClick && onItemClick(ev, item, index);\n _this._setSelectedIndex(index, ev);\n };\n };\n /**\n * Get the indices of the options that are marked as selected\n * @param options - the comboBox options\n * @param selectedKeys - the known selected keys to find\n * @returns - an array of the indices of the selected options, empty array if nothing is selected\n */\n ComboBox.prototype._getSelectedIndices = function (options, selectedKeys) {\n if (!options || !selectedKeys) {\n return [];\n }\n var selectedIndices = {};\n options.forEach(function (option, index) {\n if (option.selected) {\n selectedIndices[index] = true;\n }\n });\n var _loop_1 = function (selectedKey) {\n var index = findIndex(options, function (option) { return option.key === selectedKey; });\n if (index > -1) {\n selectedIndices[index] = true;\n }\n };\n for (var _i = 0, selectedKeys_1 = selectedKeys; _i < selectedKeys_1.length; _i++) {\n var selectedKey = selectedKeys_1[_i];\n _loop_1(selectedKey);\n }\n return Object.keys(selectedIndices)\n .map(Number)\n .sort();\n };\n /**\n * Reset the selected index by clearing the\n * input (of any pending text), clearing the pending state,\n * and setting the suggested display value to the last\n * selected state text\n */\n ComboBox.prototype._resetSelectedIndex = function () {\n var currentOptions = this.state.currentOptions;\n this._clearPendingInfo();\n var selectedIndex = this._getFirstSelectedIndex();\n if (selectedIndex > 0 && selectedIndex < currentOptions.length) {\n this.setState({\n suggestedDisplayValue: currentOptions[selectedIndex].text,\n });\n }\n else if (this.props.text) {\n // If we had a value initially, restore it\n this.setState({\n suggestedDisplayValue: this.props.text,\n });\n }\n };\n /**\n * Clears the pending info state\n */\n ComboBox.prototype._clearPendingInfo = function () {\n this._processingClearPendingInfo = true;\n this.setState({\n currentPendingValue: undefined,\n currentPendingValueValidIndex: -1,\n suggestedDisplayValue: undefined,\n currentPendingValueValidIndexOnHover: HoverStatus.default,\n }, this._onAfterClearPendingInfo);\n };\n /**\n * Set the pending info\n * @param currentPendingValue - new pending value to set\n * @param currentPendingValueValidIndex - new pending value index to set\n * @param suggestedDisplayValue - new suggest display value to set\n */\n ComboBox.prototype._setPendingInfo = function (currentPendingValue, currentPendingValueValidIndex, suggestedDisplayValue) {\n if (currentPendingValueValidIndex === void 0) { currentPendingValueValidIndex = -1; }\n if (this._processingClearPendingInfo) {\n return;\n }\n this.setState({\n currentPendingValue: this._normalizeToString(currentPendingValue),\n currentPendingValueValidIndex: currentPendingValueValidIndex,\n suggestedDisplayValue: suggestedDisplayValue,\n currentPendingValueValidIndexOnHover: HoverStatus.default,\n });\n };\n /**\n * Set the pending info from the given index\n * @param index - the index to set the pending info from\n */\n ComboBox.prototype._setPendingInfoFromIndex = function (index) {\n var currentOptions = this.state.currentOptions;\n if (index >= 0 && index < currentOptions.length) {\n var option = currentOptions[index];\n this._setPendingInfo(this._getPreviewText(option), index, this._getPreviewText(option));\n }\n else {\n this._clearPendingInfo();\n }\n };\n /**\n * Sets the pending info for the comboBox\n * @param index - the index to search from\n * @param searchDirection - the direction to search\n */\n ComboBox.prototype._setPendingInfoFromIndexAndDirection = function (index, searchDirection) {\n var currentOptions = this.state.currentOptions;\n // update index to allow content to wrap\n if (searchDirection === SearchDirection.forward && index >= currentOptions.length - 1) {\n index = -1;\n }\n else if (searchDirection === SearchDirection.backward && index <= 0) {\n index = currentOptions.length;\n }\n // get the next \"valid\" index\n var indexUpdate = this._getNextSelectableIndex(index, searchDirection);\n // if the two indicies are equal we didn't move and\n // we should attempt to get get the first/last \"valid\" index to use\n // (Note, this takes care of the potential cases where the first/last\n // item is not focusable), otherwise use the updated index\n if (index === indexUpdate) {\n if (searchDirection === SearchDirection.forward) {\n index = this._getNextSelectableIndex(-1, searchDirection);\n }\n else if (searchDirection === SearchDirection.backward) {\n index = this._getNextSelectableIndex(currentOptions.length, searchDirection);\n }\n }\n else {\n index = indexUpdate;\n }\n if (this._indexWithinBounds(currentOptions, index)) {\n this._setPendingInfoFromIndex(index);\n }\n };\n ComboBox.prototype._notifyPendingValueChanged = function (prevState) {\n var onPendingValueChanged = this.props.onPendingValueChanged;\n if (!onPendingValueChanged) {\n return;\n }\n var _a = this.state, currentPendingValue = _a.currentPendingValue, currentOptions = _a.currentOptions, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValueValidIndexOnHover = _a.currentPendingValueValidIndexOnHover;\n var newPendingIndex = undefined;\n var newPendingValue = undefined;\n if (currentPendingValueValidIndexOnHover !== prevState.currentPendingValueValidIndexOnHover &&\n this._indexWithinBounds(currentOptions, currentPendingValueValidIndexOnHover)) {\n // Set new pending index if hover index was changed\n newPendingIndex = currentPendingValueValidIndexOnHover;\n }\n else if (currentPendingValueValidIndex !== prevState.currentPendingValueValidIndex &&\n this._indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {\n // Set new pending index if currentPendingValueValidIndex was changed\n newPendingIndex = currentPendingValueValidIndex;\n }\n else if (currentPendingValue !== prevState.currentPendingValue) {\n // Set pendingValue in the case it was changed and no index was changed\n newPendingValue = currentPendingValue;\n }\n // Notify when there is a new pending index/value. Also, if there is a pending value, it needs to send undefined.\n if (newPendingIndex !== undefined || newPendingValue !== undefined || this._hasPendingValue) {\n onPendingValueChanged(newPendingIndex !== undefined ? currentOptions[newPendingIndex] : undefined, newPendingIndex, newPendingValue);\n this._hasPendingValue = newPendingIndex !== undefined || newPendingValue !== undefined;\n }\n };\n /**\n * Sets the isOpen state and updates focusInputAfterClose\n */\n ComboBox.prototype._setOpenStateAndFocusOnClose = function (isOpen, focusInputAfterClose) {\n this._focusInputAfterClose = focusInputAfterClose;\n this.setState({\n isOpen: isOpen,\n });\n };\n /**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\n ComboBox.prototype._isAltOrMeta = function (ev) {\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n };\n ComboBox.prototype._onOptionMouseEnter = function (index) {\n if (this._shouldIgnoreMouseEvent()) {\n return;\n }\n this.setState({\n currentPendingValueValidIndexOnHover: index,\n });\n };\n ComboBox.prototype._onOptionMouseMove = function (index) {\n this._gotMouseMove = true;\n if (!this._isScrollIdle || this.state.currentPendingValueValidIndexOnHover === index) {\n return;\n }\n this.setState({\n currentPendingValueValidIndexOnHover: index,\n });\n };\n ComboBox.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\n };\n /**\n * Handle dismissing the menu and\n * eating the required key event when disabled\n * @param ev - the keyboard event that was fired\n */\n ComboBox.prototype._handleInputWhenDisabled = function (ev) {\n // If we are disabled, close the menu (if needed)\n // and eat all keystokes other than TAB or ESC\n if (this.props.disabled) {\n if (this.state.isOpen) {\n this.setState({ isOpen: false });\n }\n // When disabled stop propagation and prevent default\n // of the event unless we have a tab, escape, or function key\n if (ev !== null &&\n ev.which !== KeyCodes.tab &&\n ev.which !== KeyCodes.escape &&\n (ev.which < 112 /* F1 */ || ev.which > 123) /* F12 */) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n }\n };\n ComboBox.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeeout from a previous touch and pointer event\n // cancel that timeout so we can set a nwe one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n /**\n * Get the styles for the current option.\n * @param item - Item props for the current option\n */\n ComboBox.prototype._getCaretButtonStyles = function () {\n var customCaretDownButtonStyles = this.props.caretDownButtonStyles;\n return getCaretDownButtonStyles(this.props.theme, customCaretDownButtonStyles);\n };\n /**\n * Get the styles for the current option.\n * @param item - Item props for the current option\n */\n ComboBox.prototype._getCurrentOptionStyles = function (item) {\n var customStylesForAllOptions = this.props.comboBoxOptionStyles;\n var customStylesForCurrentOption = item.styles;\n return getOptionStyles(this.props.theme, customStylesForAllOptions, customStylesForCurrentOption, this._isPendingOption(item), item.hidden);\n };\n /**\n * Get the aria-activedescendant value for the comboxbox.\n * @returns the id of the current focused combo item, otherwise the id of the currently selected element,\n * null otherwise\n */\n ComboBox.prototype._getAriaActiveDescendantValue = function () {\n var descendantText = this.state.isOpen && this.state.selectedIndices && this.state.selectedIndices.length > 0\n ? this._id + '-list' + this.state.selectedIndices[0]\n : undefined;\n if (this.state.isOpen && this._hasFocus() && this.state.currentPendingValueValidIndex !== -1) {\n descendantText = this._id + '-list' + this.state.currentPendingValueValidIndex;\n }\n return descendantText;\n };\n /**\n * Get the aria autocomplete value for the Combobox\n * @returns 'inline' if auto-complete automatically dynamic, 'both' if we have a list of possible values to pick from\n * and can dynamically populate input, and 'none' if auto-complete is not enabled as we can't give user inputs.\n */\n ComboBox.prototype._getAriaAutoCompleteValue = function () {\n var autoComplete = !this.props.disabled && this.props.autoComplete === 'on';\n return autoComplete ? (this.props.allowFreeform ? 'inline' : 'both') : 'none';\n };\n ComboBox.prototype._isPendingOption = function (item) {\n return item && item.index === this.state.currentPendingValueValidIndex;\n };\n /**\n * Given default selected key(s) and selected key(s), return the selected keys(s).\n * When default selected key(s) are available, they take precedence and return them instead of selected key(s).\n *\n * @returns No matter what specific types the input parameters are, always return an array of\n * either strings or numbers instead of premitive type. This normlization makes caller's logic easier.\n */\n ComboBox.prototype._buildDefaultSelectedKeys = function (defaultSelectedKey, selectedKey) {\n var selectedKeys = this._buildSelectedKeys(defaultSelectedKey);\n if (selectedKeys.length) {\n return selectedKeys;\n }\n return this._buildSelectedKeys(selectedKey);\n };\n ComboBox.prototype._buildSelectedKeys = function (selectedKey) {\n if (selectedKey === undefined) {\n return [];\n }\n // need to cast here so typescript does not complain\n return (selectedKey instanceof Array ? selectedKey : [selectedKey]);\n };\n // For scenarios where the option's text prop contains embedded styles, we use the option's\n // ariaLabel value as the text in the input and for autocomplete matching. We know to use this\n // when the useAriaLabelAsText prop is set to true\n ComboBox.prototype._getPreviewText = function (item) {\n return item.useAriaLabelAsText && item.ariaLabel ? item.ariaLabel : item.text;\n };\n ComboBox.prototype._normalizeToString = function (value) {\n return value || '';\n };\n /**\n * Returns true if the component has some kind of focus. If it's either focusing or if it's focused\n */\n ComboBox.prototype._hasFocus = function () {\n return this.state.focusState !== 'none';\n };\n ComboBox.defaultProps = {\n options: [],\n allowFreeform: false,\n autoComplete: 'on',\n buttonIconProps: { iconName: 'ChevronDown' },\n };\n ComboBox = __decorate([\n customizable('ComboBox', ['theme', 'styles'], true)\n ], ComboBox);\n return ComboBox;\n}(React.Component));\nexport { ComboBox };\n//# sourceMappingURL=ComboBox.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (styles, className, isOpen, disabled, required, focused, allowFreeForm, hasErrorMessage) {\n return {\n container: mergeStyles('ms-ComboBox-container', className, styles.container),\n label: mergeStyles(styles.label, disabled && styles.labelDisabled),\n root: mergeStyles('ms-ComboBox', hasErrorMessage ? styles.rootError : isOpen && 'is-open', required && 'is-required', styles.root, !allowFreeForm && styles.rootDisallowFreeForm, hasErrorMessage && !focused ? styles.rootError : !disabled && focused && styles.rootFocused, !disabled && {\n selectors: {\n ':hover': hasErrorMessage ? styles.rootError : !isOpen && !focused && styles.rootHovered,\n ':active': hasErrorMessage ? styles.rootError : styles.rootPressed,\n ':focus': hasErrorMessage ? styles.rootError : styles.rootFocused,\n },\n }, disabled && ['is-disabled', styles.rootDisabled]),\n input: mergeStyles('ms-ComboBox-Input', styles.input, disabled && styles.inputDisabled),\n errorMessage: mergeStyles(styles.errorMessage),\n callout: mergeStyles('ms-ComboBox-callout', styles.callout),\n optionsContainerWrapper: mergeStyles('ms-ComboBox-optionsContainerWrapper', styles.optionsContainerWrapper),\n optionsContainer: mergeStyles('ms-ComboBox-optionsContainer', styles.optionsContainer),\n header: mergeStyles('ms-ComboBox-header', styles.header),\n divider: mergeStyles('ms-ComboBox-divider', styles.divider),\n screenReaderText: mergeStyles(styles.screenReaderText),\n };\n});\nexport var getComboBoxOptionClassNames = memoizeFunction(function (styles) {\n return {\n optionText: mergeStyles('ms-ComboBox-optionText', styles.optionText),\n root: mergeStyles('ms-ComboBox-option', styles.root, {\n selectors: {\n ':hover': styles.rootHovered,\n ':focus': styles.rootFocused,\n ':active': styles.rootPressed,\n },\n }),\n optionTextWrapper: mergeStyles(styles.optionTextWrapper),\n };\n});\n//# sourceMappingURL=ComboBox.classNames.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { ComboBox } from './ComboBox';\nimport { List } from '../../List';\nimport { initializeComponentRef } from '../../Utilities';\nvar VirtualizedComboBox = /** @class */ (function (_super) {\n __extends(VirtualizedComboBox, _super);\n function VirtualizedComboBox(props) {\n var _this = _super.call(this, props) || this;\n /** The combo box element */\n _this._comboBox = React.createRef();\n /** The virtualized list element */\n _this._list = React.createRef();\n _this._onRenderList = function (props) {\n var id = props.id, onRenderItem = props.onRenderItem;\n // Render virtualized list\n return (React.createElement(List, { componentRef: _this._list, role: \"listbox\", id: id + \"-list\", \"aria-labelledby\": id + \"-label\", items: props.options, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderCell: onRenderItem ? function (item) { return onRenderItem(item); } : function () { return null; } }));\n };\n _this._onScrollToItem = function (itemIndex) {\n // We are using the List component, call scrollToIndex\n _this._list.current && _this._list.current.scrollToIndex(itemIndex);\n };\n initializeComponentRef(_this);\n return _this;\n }\n Object.defineProperty(VirtualizedComboBox.prototype, \"selectedOptions\", {\n /**\n * All selected options\n */\n get: function () {\n if (this._comboBox.current) {\n return this._comboBox.current.selectedOptions;\n }\n return [];\n },\n enumerable: true,\n configurable: true\n });\n VirtualizedComboBox.prototype.dismissMenu = function () {\n if (this._comboBox.current) {\n return this._comboBox.current.dismissMenu();\n }\n };\n VirtualizedComboBox.prototype.focus = function (shouldOpenOnFocus, useFocusAsync) {\n if (this._comboBox.current) {\n this._comboBox.current.focus(shouldOpenOnFocus, useFocusAsync);\n return true;\n }\n return false;\n };\n VirtualizedComboBox.prototype.render = function () {\n return (React.createElement(ComboBox, __assign({}, this.props, { componentRef: this._comboBox, onRenderList: this._onRenderList, onScrollToItem: this._onScrollToItem })));\n };\n return VirtualizedComboBox;\n}(React.Component));\nexport { VirtualizedComboBox };\n//# sourceMappingURL=VirtualizedComboBox.js.map","import { __assign, __extends, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, nullRender, getNativeProps, divProperties, composeComponentAs, initializeComponentRef, } from '../../Utilities';\nimport { OverflowSet } from '../../OverflowSet';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { CommandBarButton } from '../../Button';\nimport { TooltipHost } from '../../Tooltip';\nimport { getCommandButtonStyles } from './CommandBar.styles';\nvar getClassNames = classNamesFunction();\nvar CommandBarBase = /** @class */ (function (_super) {\n __extends(CommandBarBase, _super);\n function CommandBarBase(props) {\n var _this = _super.call(this, props) || this;\n _this._overflowSet = React.createRef();\n _this._resizeGroup = React.createRef();\n _this._onRenderData = function (data) {\n return (React.createElement(FocusZone, { className: css(_this._classNames.root), direction: FocusZoneDirection.horizontal, role: 'menubar', \"aria-label\": _this.props.ariaLabel },\n React.createElement(OverflowSet, { role: \"none\", componentRef: _this._overflowSet, className: css(_this._classNames.primarySet), doNotContainWithinFocusZone: true, items: data.primaryItems, overflowItems: data.overflowItems.length ? data.overflowItems : undefined, onRenderItem: _this._onRenderItem, onRenderOverflowButton: _this._onRenderOverflowButton }),\n data.farItems && data.farItems.length > 0 && (React.createElement(OverflowSet, { role: \"none\", className: css(_this._classNames.secondarySet), doNotContainWithinFocusZone: true, items: data.farItems, onRenderItem: _this._onRenderItem, onRenderOverflowButton: nullRender }))));\n };\n _this._onRenderItem = function (item) {\n if (item.onRender) {\n // These are the top level items, there is no relevant menu dismissing function to\n // provide for the IContextualMenuItem onRender function. Pass in a no op function instead.\n return item.onRender(item, function () { return undefined; });\n }\n // eslint-disable-next-line deprecation/deprecation\n var itemText = item.text || item.name;\n var commandButtonProps = __assign(__assign({ allowDisabledFocus: true, role: 'menuitem' }, item), { styles: getCommandButtonStyles(item.buttonStyles), className: css('ms-CommandBarItem-link', item.className), text: !item.iconOnly ? itemText : undefined, menuProps: item.subMenuProps, onClick: _this._onButtonClick(item) });\n if (item.iconOnly && (itemText !== undefined || item.tooltipHostProps)) {\n return (React.createElement(TooltipHost, __assign({ content: itemText }, item.tooltipHostProps), _this._commandButton(item, commandButtonProps)));\n }\n return _this._commandButton(item, commandButtonProps);\n };\n _this._commandButton = function (item, props) {\n var ButtonAs = _this.props.buttonAs;\n var CommandBarButtonAs = item.commandBarButtonAs;\n var DefaultButtonAs = CommandBarButton;\n // The prop types between these three possible implementations overlap enough that a force-cast is safe.\n var Type = DefaultButtonAs;\n if (CommandBarButtonAs) {\n Type = composeComponentAs(CommandBarButtonAs, Type);\n }\n if (ButtonAs) {\n Type = composeComponentAs(ButtonAs, Type);\n }\n // Always pass the default implementation to the override so it may be composed.\n return React.createElement(Type, __assign({}, props));\n };\n _this._onRenderOverflowButton = function (overflowItems) {\n var _a = _this.props.overflowButtonProps, overflowButtonProps = _a === void 0 ? {} : _a;\n var combinedOverflowItems = __spreadArrays((overflowButtonProps.menuProps ? overflowButtonProps.menuProps.items : []), overflowItems);\n var overflowProps = __assign(__assign({ role: 'menuitem' }, overflowButtonProps), { styles: __assign({ menuIcon: { fontSize: '17px' } }, overflowButtonProps.styles), className: css('ms-CommandBar-overflowButton', overflowButtonProps.className), menuProps: __assign(__assign({}, overflowButtonProps.menuProps), { items: combinedOverflowItems }), menuIconProps: __assign({ iconName: 'More' }, overflowButtonProps.menuIconProps) });\n var OverflowButtonType = _this.props.overflowButtonAs\n ? composeComponentAs(_this.props.overflowButtonAs, CommandBarButton)\n : CommandBarButton;\n return React.createElement(OverflowButtonType, __assign({}, overflowProps));\n };\n _this._onReduceData = function (data) {\n var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataReduced = _a.onDataReduced;\n var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;\n // Use first item if shiftOnReduce, otherwise use last item\n var movedItem = primaryItems[shiftOnReduce ? 0 : primaryItems.length - 1];\n if (movedItem !== undefined) {\n movedItem.renderedInOverflow = true;\n overflowItems = __spreadArrays([movedItem], overflowItems);\n primaryItems = shiftOnReduce ? primaryItems.slice(1) : primaryItems.slice(0, -1);\n var newData = __assign(__assign({}, data), { primaryItems: primaryItems, overflowItems: overflowItems });\n cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, overflow: overflowItems.length > 0 });\n if (onDataReduced) {\n onDataReduced(movedItem);\n }\n newData.cacheKey = cacheKey;\n return newData;\n }\n return undefined;\n };\n _this._onGrowData = function (data) {\n var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataGrown = _a.onDataGrown;\n var minimumOverflowItems = data.minimumOverflowItems;\n var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;\n var movedItem = overflowItems[0];\n // Make sure that moved item exists and is not one of the original overflow items\n if (movedItem !== undefined && overflowItems.length > minimumOverflowItems) {\n movedItem.renderedInOverflow = false;\n overflowItems = overflowItems.slice(1);\n // if shiftOnReduce, movedItem goes first, otherwise, last.\n primaryItems = shiftOnReduce ? __spreadArrays([movedItem], primaryItems) : __spreadArrays(primaryItems, [movedItem]);\n var newData = __assign(__assign({}, data), { primaryItems: primaryItems, overflowItems: overflowItems });\n cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, overflow: overflowItems.length > 0 });\n if (onDataGrown) {\n onDataGrown(movedItem);\n }\n newData.cacheKey = cacheKey;\n return newData;\n }\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n CommandBarBase.prototype.render = function () {\n var _a = this.props, items = _a.items, overflowItems = _a.overflowItems, farItems = _a.farItems, styles = _a.styles, theme = _a.theme, dataDidRender = _a.dataDidRender, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c;\n var commandBarData = {\n primaryItems: __spreadArrays(items),\n overflowItems: __spreadArrays(overflowItems),\n minimumOverflowItems: __spreadArrays(overflowItems).length,\n farItems: farItems,\n cacheKey: this._computeCacheKey({\n primaryItems: __spreadArrays(items),\n overflow: overflowItems && overflowItems.length > 0,\n }),\n };\n this._classNames = getClassNames(styles, { theme: theme });\n // ResizeGroup will render these attributes to the root <div>.\n // TODO We may need to elevate classNames from <FocusZone> into <ResizeGroup> ?\n var nativeProps = getNativeProps(this.props, divProperties);\n return (React.createElement(ResizeGroup, __assign({}, nativeProps, { componentRef: this._resizeGroup, data: commandBarData, onReduceData: onReduceData, onGrowData: onGrowData, onRenderData: this._onRenderData, dataDidRender: dataDidRender })));\n };\n CommandBarBase.prototype.focus = function () {\n var overflowSet = this._overflowSet.current;\n overflowSet && overflowSet.focus();\n };\n CommandBarBase.prototype.remeasure = function () {\n this._resizeGroup.current && this._resizeGroup.current.remeasure();\n };\n CommandBarBase.prototype._onButtonClick = function (item) {\n return function (ev) {\n // inactive is deprecated. remove check in 7.0\n // eslint-disable-next-line deprecation/deprecation\n if (item.inactive) {\n return;\n }\n if (item.onClick) {\n item.onClick(ev, item);\n }\n };\n };\n CommandBarBase.prototype._computeCacheKey = function (data) {\n var primaryItems = data.primaryItems, overflow = data.overflow;\n var returnKey = function (acc, current) {\n var _a = current.cacheKey, cacheKey = _a === void 0 ? current.key : _a;\n return acc + cacheKey;\n };\n var primaryKey = primaryItems && primaryItems.reduce(returnKey, '');\n var overflowKey = overflow ? 'overflow' : '';\n return [primaryKey, overflowKey].join('');\n };\n CommandBarBase.defaultProps = {\n items: [],\n overflowItems: [],\n };\n return CommandBarBase;\n}(React.Component));\nexport { CommandBarBase };\n//# sourceMappingURL=CommandBar.base.js.map","import { styled } from '../../Utilities';\nimport { CommandBarBase } from './CommandBar.base';\nimport { getStyles } from './CommandBar.styles';\n// Create a CommandBar variant which uses these default styles and this styled subcomponent.\nexport var CommandBar = styled(CommandBarBase, getStyles, undefined, {\n scope: 'CommandBar',\n});\n//# sourceMappingURL=CommandBar.js.map","import { __assign, __rest } from \"tslib\";\nimport { memoizeFunction } from '../../Utilities';\nvar COMMAND_BAR_HEIGHT = 44;\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var semanticColors = theme.semanticColors;\n return {\n root: [\n theme.fonts.medium,\n 'ms-CommandBar',\n {\n display: 'flex',\n backgroundColor: semanticColors.bodyBackground,\n padding: '0 14px 0 24px',\n height: COMMAND_BAR_HEIGHT,\n },\n className,\n ],\n primarySet: [\n 'ms-CommandBar-primaryCommand',\n {\n flexGrow: '1',\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n secondarySet: [\n 'ms-CommandBar-secondaryCommand',\n {\n flexShrink: '0',\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n };\n};\nexport var getCommandButtonStyles = memoizeFunction(function (customStyles) {\n var rootStyles = {\n height: '100%',\n };\n var labelStyles = {\n whiteSpace: 'nowrap',\n };\n var _a = customStyles || {}, root = _a.root, label = _a.label, restCustomStyles = __rest(_a, [\"root\", \"label\"]);\n return __assign(__assign({}, restCustomStyles), { root: root ? [rootStyles, root] : rootStyles, label: label ? [labelStyles, label] : labelStyles });\n});\n//# sourceMappingURL=CommandBar.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n __extends(ContextualMenuItemWrapper, _super);\n function ContextualMenuItemWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._onItemMouseEnter = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget);\n }\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget);\n }\n };\n _this._onItemMouseLeave = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._onItemMouseMove = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget);\n }\n };\n _this._getSubmenuTarget = function () {\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n return !shallowCompare(newProps, this.props);\n };\n return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n __extends(ContextualMenuAnchor, _super);\n function ContextualMenuAnchor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._anchor = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._getSubmenuTarget = function () {\n return _this._anchor.current ? _this._anchor.current : undefined;\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n return _this;\n }\n ContextualMenuAnchor.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var anchorRel = item.rel;\n if (item.target && item.target.toLowerCase() === '_blank') {\n anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n }\n var itemHasSubmenu = hasSubmenu(item);\n var nativeProps = getNativeProps(item, anchorProperties);\n var disabled = isItemDisabled(item);\n var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n return (React.createElement(\"div\", null,\n React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: nativeProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \"aria-describedby\": mergeAriaAttributeValues(ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), \n // eslint-disable-next-line deprecation/deprecation\n style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n };\n return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n __extends(ContextualMenuButton, _super);\n function ContextualMenuButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._btn = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._getSubmenuTarget = function () {\n return _this._btn.current ? _this._btn.current : undefined;\n };\n return _this;\n }\n ContextualMenuButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n var defaultRole = getMenuItemAriaRole(item);\n var itemHasSubmenu = hasSubmenu(item);\n var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n var buttonNativeProperties = getNativeProps(item, buttonProperties);\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n var itemRole = item.role || defaultRole;\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = ariaDescription ? this._ariaDescriptionId : undefined;\n var itemButtonProperties = {\n className: classNames.root,\n onClick: this._onItemClick,\n onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n onMouseEnter: this._onItemMouseEnter,\n onMouseLeave: this._onItemMouseLeave,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedByIds,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n 'aria-posinset': focusableElementIndex + 1,\n 'aria-setsize': totalItemCount,\n 'aria-disabled': isItemDisabled(item),\n 'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // eslint-disable-next-line deprecation/deprecation\n style: item.style,\n };\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: buttonNativeProperties['aria-describedby'], disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes, { \"aria-describedby\": mergeAriaAttributeValues(itemButtonProperties['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined) }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n __extends(ContextualMenuSplitButton, _super);\n function ContextualMenuSplitButton(props) {\n var _this = _super.call(this, props) || this;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n if (ev.which === KeyCodes.enter) {\n _this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._getSubmenuTarget = function () {\n return _this._splitButton;\n };\n _this._onItemMouseEnterPrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseEnterIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, _this._splitButton);\n }\n };\n _this._onItemMouseMovePrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseMoveIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, _this._splitButton);\n }\n };\n _this._onIconItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n }\n };\n _this._executeItemClick = function (ev) {\n var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (_this._processingTouch && onItemClick) {\n return onItemClick(item, ev);\n }\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n _this._onTouchStart = function (ev) {\n if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n _this._handleTouchAndPointerEvent(ev);\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n return _this;\n }\n ContextualMenuSplitButton.prototype.componentDidMount = function () {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n };\n ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ContextualMenuSplitButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, onItemMouseLeave = _a.onItemMouseLeave, expandedMenuItemKey = _a.expandedMenuItemKey;\n var itemHasSubmenu = hasSubmenu(item);\n var keytipProps = item.keytipProps;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n var ariaDescription = item.ariaDescription;\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": item.isChecked || item.checked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n _this._renderSplitDivider(item),\n _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n var itemProps = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n /* eslint-disable deprecation/deprecation */\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n /* eslint-enable deprecation/deprecation */\n className: classNames.splitPrimary,\n canCheck: item.canCheck,\n isChecked: item.isChecked,\n checked: item.checked,\n iconProps: item.iconProps,\n onRenderIcon: item.onRenderIcon,\n data: item.data,\n 'data-is-focusable': false,\n };\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n };\n ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, keytipAttributes) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var itemProps = {\n onClick: this._onIconItemClick,\n disabled: isItemDisabled(item),\n className: classNames.splitMenu,\n subMenuProps: item.subMenuProps,\n submenuIconProps: item.submenuIconProps,\n split: true,\n key: item.key,\n };\n var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMoveIcon,\n 'data-is-focusable': false,\n 'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n 'aria-hidden': true,\n });\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, buttonProps),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n var _this = this;\n var onTap = this.props.onTap;\n if (onTap) {\n onTap(ev);\n }\n // If we already have an existing timeout from a previous touch/pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import { __assign, __decorate, __extends, __rest, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType, } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, warnDeprecations, Async, EventGroup, assign, classNamesFunction, css, getDocument, getFirstFocusable, getId, getLastFocusable, getRTL, getWindow, KeyCodes, shouldWrapFocus, isIOS, isMac, initializeComponentRef, memoizeFunction, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { withResponsiveMode, ResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\nexport function getSubmenuItems(item, options) {\n var _a;\n var target = (_a = options) === null || _a === void 0 ? void 0 : _a.target;\n // eslint-disable-next-line deprecation/deprecation\n var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n if (items) {\n var overrideItems = [];\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var subItem = items_1[_i];\n if (subItem.preferMenuTargetAsEventTarget) {\n // For sub-items which need an overridden target, intercept `onClick`\n var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n }\n else {\n overrideItems.push(subItem);\n }\n }\n return overrideItems;\n }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n return items.some(function (item) {\n if (item.canCheck) {\n return true;\n }\n // If the item is a section, check if any of the items in the section can check.\n if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n return true;\n }\n return false;\n });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n var styles = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styles[_i] = arguments[_i];\n }\n return function (styleProps) {\n return concatStyleSetsWithProps.apply(void 0, __spreadArrays([styleProps, getItemStyles], styles));\n };\n});\nvar ContextualMenuBase = /** @class */ (function (_super) {\n __extends(ContextualMenuBase, _super);\n function ContextualMenuBase(props) {\n var _this = _super.call(this, props) || this;\n _this._mounted = false;\n _this.dismiss = function (ev, dismissAll) {\n var onDismiss = _this.props.onDismiss;\n if (onDismiss) {\n onDismiss(ev, dismissAll);\n }\n };\n _this._tryFocusPreviousActiveElement = function (options) {\n if (_this.props.onRestoreFocus) {\n _this.props.onRestoreFocus(options);\n }\n else {\n if (options && options.containsFocus && _this._previousActiveElement) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n if (_this._previousActiveElement.focus) {\n _this._previousActiveElement.focus();\n }\n }\n }\n };\n _this._onRenderMenuList = function (menuListProps, defaultRender) {\n var indexCorrection = 0;\n var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n return (React.createElement(\"ul\", { className: _this._classNames.list, onKeyDown: _this._onKeyDown, onKeyUp: _this._onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n var menuItem = _this._renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons);\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n indexCorrection += indexIncrease;\n }\n return menuItem;\n })));\n };\n /**\n * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n * cause the menu items to always re-render because the component update is based on shallow comparison.\n */\n _this._renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var _a;\n var renderedItems = [];\n var iconProps = item.iconProps || { iconName: 'None' };\n var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n itemProps = item.itemProps;\n var styles = itemProps ? itemProps.styles : undefined;\n // We only send a dividerClassName when the item to be rendered is a divider.\n // For all other cases, the default divider style is used.\n var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n // eslint-disable-next-line deprecation/deprecation\n var itemClassNames;\n // IContextualMenuItem#getItemClassNames for backwards compatibility\n // otherwise uses mergeStyles for class names.\n if (getItemClassNames) {\n itemClassNames = getItemClassNames(_this.props.theme, isItemDisabled(item), _this.state.expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n }\n else {\n var itemStyleProps = {\n theme: _this.props.theme,\n disabled: isItemDisabled(item),\n expanded: _this.state.expandedMenuItemKey === item.key,\n checked: !!getIsChecked(item),\n isAnchorLink: !!item.href,\n knownIcon: iconProps.iconName !== 'None',\n itemClassName: item.className,\n dividerClassName: dividerClassName,\n iconClassName: iconProps.className,\n subMenuClassName: subMenuIconClassName,\n primaryDisabled: item.primaryDisabled,\n };\n // We need to generate default styles then override if styles are provided\n // since the ContextualMenu currently handles item classNames.\n itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (item.text === '-' || item.name === '-') {\n item.itemType = ContextualMenuItemType.Divider;\n }\n switch (item.itemType) {\n case ContextualMenuItemType.Divider:\n renderedItems.push(_this._renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(_this._renderSeparator(index, itemClassNames));\n var headerItem = _this._renderHeaderMenuItem(item, itemClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(_this._renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(_this._renderSectionItem(item, itemClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n var menuItem = _this._renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n renderedItems.push(_this._renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n break;\n }\n // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n };\n _this._defaultMenuItemRenderer = function (item) {\n var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n return _this._renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n _this._onKeyDown = function (ev) {\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n // On Mac, pressing escape dismisses all levels of native context menus\n var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n return _this._keyHandler(ev, _this._shouldHandleKeyDown, dismissAllMenus);\n };\n _this._shouldHandleKeyDown = function (ev) {\n return (ev.which === KeyCodes.escape ||\n _this._shouldCloseSubMenu(ev) ||\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n };\n _this._onMenuFocusCapture = function (ev) {\n if (_this.props.delayUpdateFocusOnHover) {\n _this._shouldUpdateFocusOnMouseEvent = true;\n }\n };\n _this._onKeyUp = function (ev) {\n return _this._keyHandler(ev, _this._shouldHandleKeyUp, true /* dismissAllMenus */);\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n _this._shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && _this._isAltOrMeta(ev);\n _this._lastKeyDownWasAltOrMeta = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\n /**\n * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n * if so, stops event propagation and dismisses menu(s).\n * @param ev - The keyboard event.\n * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n * Only does anything if `shouldHandleKey` returns true.\n * @returns Whether the event was handled.\n */\n _this._keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n var handled = false;\n if (shouldHandleKey(ev)) {\n _this._focusingPreviousElement = true;\n _this.dismiss(ev, dismissAllMenus);\n ev.preventDefault();\n ev.stopPropagation();\n handled = true;\n }\n return handled;\n };\n /**\n * Checks if the submenu should be closed\n */\n _this._shouldCloseSubMenu = function (ev) {\n var submenuCloseKey = getRTL(_this.props.theme) ? KeyCodes.right : KeyCodes.left;\n if (ev.which !== submenuCloseKey || !_this.props.isSubMenu) {\n return false;\n }\n return (_this._adjustedFocusZoneProps.direction === FocusZoneDirection.vertical ||\n (!!_this._adjustedFocusZoneProps.checkForNoWrap &&\n !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n };\n _this._onMenuKeyDown = function (ev) {\n // Mark as handled if onKeyDown returns true (for handling collapse cases)\n // or if we are attempting to expand a submenu\n var handled = _this._onKeyDown(ev);\n if (handled || !_this._host) {\n return;\n }\n // If we have a modifier key being pressed, we do not want to move focus.\n // Otherwise, handle up and down keys.\n var hasModifier = !!(ev.altKey || ev.metaKey);\n var isUp = ev.which === KeyCodes.up;\n var isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n var elementToFocus = isUp\n ? getLastFocusable(_this._host, _this._host.lastChild, true)\n : getFirstFocusable(_this._host, _this._host.firstChild, true);\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n _this._async.clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {\n _this._isScrollIdle = true;\n }, NavigationIdleDelay);\n };\n _this._onItemMouseEnterBase = function (item, ev, target) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n _this._updateFocusOnMouseEvent(item, ev, target);\n };\n _this._onItemMouseMoveBase = function (item, ev, target) {\n var targetElement = ev.currentTarget;\n // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n if (_this._shouldUpdateFocusOnMouseEvent) {\n _this._gotMouseMove = true;\n }\n else {\n return;\n }\n if (!_this._isScrollIdle ||\n _this._enterTimerId !== undefined ||\n targetElement === _this._targetWindow.document.activeElement) {\n return;\n }\n _this._updateFocusOnMouseEvent(item, ev, target);\n };\n _this._onMouseItemLeave = function (item, ev) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n if (_this._enterTimerId !== undefined) {\n _this._async.clearTimeout(_this._enterTimerId);\n _this._enterTimerId = undefined;\n }\n if (_this.state.expandedMenuItemKey !== undefined) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (_this._host.setActive) {\n try {\n _this._host.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n _this._host.focus();\n }\n };\n _this._onItemMouseDown = function (item, ev) {\n if (item.onMouseDown) {\n item.onMouseDown(item, ev);\n }\n };\n _this._onItemClick = function (item, ev) {\n _this._onItemClickBase(item, ev, ev.currentTarget);\n };\n _this._onItemClickBase = function (item, ev, target) {\n var menuTarget = _this.props.target;\n var items = getSubmenuItems(item, { target: menuTarget });\n // Cancel a async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n _this._cancelSubMenuTimer();\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n _this._executeItemClick(item, ev);\n }\n else {\n if (item.key !== _this.state.expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n _this.setState({\n // When Edge + Narrator are used together (regardless of if the button is in a form or not), pressing\n // \"Enter\" fires this method and not _onMenuKeyDown. Checking ev.nativeEvent.detail differentiates\n // between a real click event and a keypress event (detail should be the number of mouse clicks).\n // ...Plot twist! For a real click event in IE 11, detail is always 0 (Edge sets it properly to 1).\n // So we also check the pointerType property, which both Edge and IE set to \"mouse\" for real clicks\n // and \"\" for pressing \"Enter\" with Narrator on.\n expandedByMouseClick: ev.nativeEvent.detail !== 0 || ev.nativeEvent.pointerType === 'mouse',\n });\n _this._onItemSubMenuExpand(item, target);\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onAnchorClick = function (item, ev) {\n _this._executeItemClick(item, ev);\n ev.stopPropagation();\n };\n _this._executeItemClick = function (item, ev) {\n var menuTarget = _this.props.target;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n var dismiss = false;\n if (item.onClick) {\n dismiss = !!item.onClick(ev, item);\n }\n else if (_this.props.onItemClick) {\n dismiss = !!_this.props.onItemClick(ev, item);\n }\n if (dismiss || !ev.defaultPrevented) {\n _this.dismiss(ev, true);\n // This should be removed whenever possible.\n // This ensures that the hidden dismissal action maintains the same behavior.\n // If the menu is being dismissed then the previously focused element should\n // get focused since the dismiss was triggered by a user click on an item\n // Rather than focus being lost.\n _this._focusingPreviousElement = true;\n }\n };\n _this._onItemKeyDown = function (item, ev) {\n var openKey = getRTL(_this.props.theme) ? KeyCodes.left : KeyCodes.right;\n if (!item.disabled &&\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n _this.setState({\n expandedByMouseClick: false,\n });\n _this._onItemSubMenuExpand(item, ev.currentTarget);\n ev.preventDefault();\n }\n };\n // Cancel a async menu item hover timeout action from being taken and instead\n // do new upcoming behavior\n _this._cancelSubMenuTimer = function () {\n if (_this._enterTimerId !== undefined) {\n _this._async.clearTimeout(_this._enterTimerId);\n _this._enterTimerId = undefined;\n }\n };\n _this._onItemSubMenuExpand = function (item, target) {\n if (_this.state.expandedMenuItemKey !== item.key) {\n if (_this.state.expandedMenuItemKey) {\n _this._onSubMenuDismiss();\n }\n // Focus the target to ensure when we close it, we're focusing on the correct element.\n target.focus();\n _this.setState({\n expandedMenuItemKey: item.key,\n submenuTarget: target,\n });\n }\n };\n /**\n * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n * after the component is unmounted. The _mounted property is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n _this._onSubMenuDismiss = function (ev, dismissAll) {\n if (dismissAll) {\n _this.dismiss(ev, dismissAll);\n }\n else if (_this._mounted) {\n _this.setState({\n dismissedMenuItemKey: _this.state.expandedMenuItemKey,\n expandedMenuItemKey: undefined,\n submenuTarget: undefined,\n });\n }\n };\n _this._onPointerAndTouchEvent = function (ev) {\n _this._cancelSubMenuTimer();\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n getMenuClassNames: 'styles',\n });\n _this.state = {\n contextualMenuItems: undefined,\n subMenuId: getId('ContextualMenu'),\n };\n _this._id = props.id || getId('ContextualMenu');\n _this._focusingPreviousElement = false;\n _this._isScrollIdle = true;\n _this._shouldUpdateFocusOnMouseEvent = !_this.props.delayUpdateFocusOnHover;\n _this._gotMouseMove = false;\n return _this;\n }\n ContextualMenuBase.prototype.shouldComponentUpdate = function (newProps, newState) {\n if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {\n // Do not update when hidden.\n return false;\n }\n return !shallowCompare(this.props, newProps) || !shallowCompare(this.state, newState);\n };\n ContextualMenuBase.prototype.UNSAFE_componentWillUpdate = function (newProps) {\n if (newProps.target !== this.props.target) {\n var newTarget = newProps.target;\n this._setTargetWindowAndElement(newTarget);\n }\n if (this._isHidden(newProps) !== this._isHidden(this.props)) {\n if (this._isHidden(newProps)) {\n this._onMenuClosed();\n }\n else {\n this._onMenuOpened();\n this._previousActiveElement = this._targetWindow\n ? this._targetWindow.document.activeElement\n : undefined;\n }\n }\n if (newProps.delayUpdateFocusOnHover !== this.props.delayUpdateFocusOnHover) {\n // update shouldUpdateFocusOnMouseEvent to follow what was passed in\n this._shouldUpdateFocusOnMouseEvent = !newProps.delayUpdateFocusOnHover;\n // If shouldUpdateFocusOnMouseEvent is false, we need to reset gotMouseMove to false\n this._gotMouseMove = this._shouldUpdateFocusOnMouseEvent && this._gotMouseMove;\n }\n };\n // Invoked once, both on the client and server, immediately before the initial rendering occurs.\n ContextualMenuBase.prototype.UNSAFE_componentWillMount = function () {\n var target = this.props.target;\n this._setTargetWindowAndElement(target);\n if (!this.props.hidden) {\n this._previousActiveElement = this._targetWindow\n ? this._targetWindow.document.activeElement\n : undefined;\n }\n };\n // Invoked once, only on the client (not on the server), immediately after the initial rendering occurs.\n ContextualMenuBase.prototype.componentDidMount = function () {\n if (!this.props.hidden) {\n this._onMenuOpened();\n }\n this._mounted = true;\n };\n // Invoked immediately before a component is unmounted from the DOM.\n ContextualMenuBase.prototype.componentWillUnmount = function () {\n if (this.props.onMenuDismissed) {\n this.props.onMenuDismissed(this.props);\n }\n this._events.dispose();\n this._async.dispose();\n this._mounted = false;\n };\n ContextualMenuBase.prototype.render = function () {\n var _this = this;\n var isBeakVisible = this.props.isBeakVisible;\n var _a = this.props, items = _a.items, labelElementId = _a.labelElementId, id = _a.id, className = _a.className, beakWidth = _a.beakWidth, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, alignTargetEdge = _a.alignTargetEdge, gapSpace = _a.gapSpace, coverTarget = _a.coverTarget, ariaLabel = _a.ariaLabel, doNotLayer = _a.doNotLayer, target = _a.target, bounds = _a.bounds, useTargetWidth = _a.useTargetWidth, useTargetAsMinWidth = _a.useTargetAsMinWidth, directionalHintFixed = _a.directionalHintFixed, shouldFocusOnMount = _a.shouldFocusOnMount, shouldFocusOnContainer = _a.shouldFocusOnContainer, title = _a.title, styles = _a.styles, theme = _a.theme, calloutProps = _a.calloutProps, _b = _a.onRenderSubMenu, onRenderSubMenu = _b === void 0 ? this._onRenderSubMenu : _b, _c = _a.onRenderMenuList, onRenderMenuList = _c === void 0 ? this._onRenderMenuList : _c, focusZoneProps = _a.focusZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames = _a.getMenuClassNames;\n this._classNames = getMenuClassNames\n ? getMenuClassNames(theme, className)\n : getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var hasIcons = itemsHaveIcons(items);\n function itemsHaveIcons(contextualMenuItems) {\n for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n var item = contextualMenuItems_1[_i];\n if (item.iconProps) {\n return true;\n }\n if (item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)) {\n return true;\n }\n }\n return false;\n }\n this._adjustedFocusZoneProps = __assign(__assign({}, focusZoneProps), { direction: this._getFocusZoneDirection() });\n var hasCheckmarks = canAnyMenuItemsCheck(items);\n var submenuProps = this.state.expandedMenuItemKey && this.props.hidden !== true ? this._getSubmenuProps() : null;\n isBeakVisible = isBeakVisible === undefined ? this.props.responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n /**\n * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n */\n var contextMenuStyle;\n var targetAsHtmlElement = this._target;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n }\n else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\n }\n }\n // The menu should only return if items were provided, if no items were provided then it should not appear.\n if (items && items.length > 0) {\n var totalItemCount = 0;\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var item = items_2[_i];\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount += itemCount;\n }\n }\n var calloutStyles = this._classNames.subComponentStyles\n ? this._classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(Callout, __assign({ styles: calloutStyles, onRestoreFocus: this._tryFocusPreviousActiveElement }, calloutProps, { target: target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: this.props.onDismiss, onScroll: this._onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: this.props.hidden }),\n React.createElement(\"div\", { style: contextMenuStyle, ref: function (host) { return (_this._host = host); }, id: id, className: this._classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: this._onMenuKeyDown, onKeyUp: this._onKeyUp, onFocusCapture: this._onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n title && React.createElement(\"div\", { className: this._classNames.title },\n \" \",\n title,\n \" \"),\n items && items.length ? (React.createElement(FocusZone, __assign({ className: this._classNames.root, isCircularNavigation: true, handleTabKey: FocusZoneTabbableElements.all }, this._adjustedFocusZoneProps), onRenderMenuList({\n ariaLabel: ariaLabel,\n items: items,\n totalItemCount: totalItemCount,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n defaultMenuItemRenderer: this._defaultMenuItemRenderer,\n labelElementId: labelElementId,\n }, this._onRenderMenuList))) : null,\n submenuProps && onRenderSubMenu(submenuProps, this._onRenderSubMenu))));\n }\n else {\n return null;\n }\n };\n /**\n * Return whether the contextual menu is hidden.\n * Undefined value for hidden is equivalent to hidden being false.\n * @param props - Props for the component\n */\n ContextualMenuBase.prototype._isHidden = function (props) {\n return !!props.hidden;\n };\n ContextualMenuBase.prototype._onMenuOpened = function () {\n this._events.on(this._targetWindow, 'resize', this.dismiss);\n this._shouldUpdateFocusOnMouseEvent = !this.props.delayUpdateFocusOnHover;\n this._gotMouseMove = false;\n this.props.onMenuOpened && this.props.onMenuOpened(this.props);\n };\n ContextualMenuBase.prototype._onMenuClosed = function () {\n this._events.off(this._targetWindow, 'resize', this.dismiss);\n // This is kept for backwards compatability with hidden for right now.\n // This preserves the way that this behaved in the past\n // TODO find a better way to handle this by using the same conventions that\n // Popup uses to determine if focus is contained when dismissal occurs\n this._tryFocusPreviousActiveElement({\n containsFocus: this._focusingPreviousElement,\n documentContainsFocus: this._targetWindow.document.hasFocus(),\n originalElement: this._previousActiveElement,\n });\n this._focusingPreviousElement = false;\n if (this.props.onMenuDismissed) {\n this.props.onMenuDismissed(this.props);\n }\n this._shouldUpdateFocusOnMouseEvent = !this.props.delayUpdateFocusOnHover;\n // We need to dismiss any submenu related state properties,\n // so that when the menu is shown again, the submenu is collapsed\n this.setState({\n expandedByMouseClick: undefined,\n dismissedMenuItemKey: undefined,\n expandedMenuItemKey: undefined,\n submenuTarget: undefined,\n });\n };\n /**\n * Gets the focusZoneDirection by using the arrowDirection if specified,\n * the direction specificed in the focusZoneProps, or defaults to FocusZoneDirection.vertical\n */\n ContextualMenuBase.prototype._getFocusZoneDirection = function () {\n var focusZoneProps = this.props.focusZoneProps;\n return focusZoneProps && focusZoneProps.direction !== undefined\n ? focusZoneProps.direction\n : FocusZoneDirection.vertical;\n };\n ContextualMenuBase.prototype._onRenderSubMenu = function (subMenuProps, defaultRender) {\n throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n 'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n };\n ContextualMenuBase.prototype._renderSectionItem = function (sectionItem, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var _this = this;\n var sectionProps = sectionItem.sectionProps;\n if (!sectionProps) {\n return;\n }\n var headerItem;\n var groupProps;\n if (sectionProps.title) {\n var headerContextualMenuItem = undefined;\n var ariaLabellledby = '';\n if (typeof sectionProps.title === 'string') {\n // Since title is a user-facing string, it needs to be stripped\n // of whitespace in order to build a valid element ID\n var id = this._id + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: \"section-\" + sectionProps.title + \"-title\",\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id,\n };\n ariaLabellledby = id;\n }\n else {\n var id = sectionProps.title.id || this._id + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id });\n ariaLabellledby = id;\n }\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabellledby,\n };\n headerItem = this._renderHeaderMenuItem(headerContextualMenuItem, menuClassNames, index, hasCheckmarks, hasIcons);\n }\n }\n if (sectionProps.items && sectionProps.items.length > 0) {\n return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\" + index },\n React.createElement(\"div\", __assign({}, groupProps),\n React.createElement(\"ul\", { className: this._classNames.list, role: \"presentation\" },\n sectionProps.topDivider && this._renderSeparator(index, menuClassNames, true, true),\n headerItem &&\n this._renderListItem(headerItem, sectionItem.key || index, menuClassNames, sectionItem.title),\n sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n return _this._renderMenuItem(contextualMenuItem, itemsIndex, itemsIndex, sectionProps.items.length, hasCheckmarks, hasIcons);\n }),\n sectionProps.bottomDivider && this._renderSeparator(index, menuClassNames, false, true)))));\n }\n };\n ContextualMenuBase.prototype._renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n title) {\n return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n };\n ContextualMenuBase.prototype._renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n top, fromSection) {\n if (fromSection || index > 0) {\n return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n }\n return null;\n };\n ContextualMenuBase.prototype._renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n if (item.onRender) {\n return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), this.dismiss);\n }\n if (item.href) {\n return this._renderAnchorMenuItem(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n }\n if (item.split && hasSubmenu(item)) {\n return this._renderSplitButton(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n }\n return this._renderButtonItem(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n ContextualMenuBase.prototype._renderHeaderMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.props.contextualMenuItemAs, ChildrenRenderer = _a === void 0 ? ContextualMenuItem : _a;\n var itemProps = item.itemProps, id = item.id;\n var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({ id: id, className: this._classNames.header }, divHtmlProperties, { style: item.style }),\n React.createElement(ChildrenRenderer, __assign({ item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks ? this._onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n };\n ContextualMenuBase.prototype._renderAnchorMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var contextualMenuItemAs = this.props.contextualMenuItemAs;\n var expandedMenuItemKey = this.state.expandedMenuItemKey;\n return (React.createElement(ContextualMenuAnchor, { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onAnchorClick, onItemKeyDown: this._onItemKeyDown, expandedMenuItemKey: expandedMenuItemKey, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss }));\n };\n ContextualMenuBase.prototype._renderButtonItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var contextualMenuItemAs = this.props.contextualMenuItemAs;\n var expandedMenuItemKey = this.state.expandedMenuItemKey;\n return (React.createElement(ContextualMenuButton, { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onItemClick, onItemClickBase: this._onItemClickBase, onItemKeyDown: this._onItemKeyDown, expandedMenuItemKey: expandedMenuItemKey, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss }));\n };\n ContextualMenuBase.prototype._renderSplitButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var contextualMenuItemAs = this.props.contextualMenuItemAs;\n var expandedMenuItemKey = this.state.expandedMenuItemKey;\n return (React.createElement(ContextualMenuSplitButton, { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onItemClick, onItemClickBase: this._onItemClickBase, onItemKeyDown: this._onItemKeyDown, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss, expandedMenuItemKey: expandedMenuItemKey, onTap: this._onPointerAndTouchEvent }));\n };\n /**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\n ContextualMenuBase.prototype._isAltOrMeta = function (ev) {\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n };\n ContextualMenuBase.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\n };\n /**\n * Handles updating focus when mouseEnter or mouseMove fire.\n * As part of updating focus, This function will also update\n * the expand/collapse state accordingly.\n */\n ContextualMenuBase.prototype._updateFocusOnMouseEvent = function (item, ev, target) {\n var _this = this;\n var targetElement = target ? target : ev.currentTarget;\n var _a = this.props.subMenuHoverDelay, timeoutDuration = _a === void 0 ? NavigationIdleDelay : _a;\n if (item.key === this.state.expandedMenuItemKey) {\n return;\n }\n if (this._enterTimerId !== undefined) {\n this._async.clearTimeout(this._enterTimerId);\n this._enterTimerId = undefined;\n }\n // If the menu is not expanded we can update focus without any delay\n if (this.state.expandedMenuItemKey === undefined) {\n targetElement.focus();\n }\n // Delay updating expanding/dismissing the submenu\n // and only set focus if we have not already done so\n if (hasSubmenu(item)) {\n ev.stopPropagation();\n this._enterTimerId = this._async.setTimeout(function () {\n targetElement.focus();\n _this.setState({\n expandedByMouseClick: true,\n });\n _this._onItemSubMenuExpand(item, targetElement);\n _this._enterTimerId = undefined;\n }, timeoutDuration);\n }\n else {\n this._enterTimerId = this._async.setTimeout(function () {\n _this._onSubMenuDismiss(ev);\n targetElement.focus();\n _this._enterTimerId = undefined;\n }, timeoutDuration);\n }\n };\n ContextualMenuBase.prototype._getSubmenuProps = function () {\n var _a = this.state, submenuTarget = _a.submenuTarget, expandedMenuItemKey = _a.expandedMenuItemKey;\n var item = this._findItemByKey(expandedMenuItemKey);\n var submenuProps = null;\n var menuTarget = this.props.target;\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget }),\n target: submenuTarget,\n onDismiss: this._onSubMenuDismiss,\n isSubMenu: true,\n id: this.state.subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer: this.state.expandedByMouseClick,\n directionalHint: getRTL(this.props.theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className: this.props.className,\n gapSpace: 0,\n isBeakVisible: false,\n };\n if (item.subMenuProps) {\n assign(submenuProps, item.subMenuProps);\n }\n if (item.preferMenuTargetAsEventTarget) {\n var onItemClick = item.onItemClick;\n submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n }\n }\n return submenuProps;\n };\n ContextualMenuBase.prototype._findItemByKey = function (key) {\n var items = this.props.items;\n return this._findItemByKeyFromItems(key, items);\n };\n /**\n * Returns the item that mathes a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\n ContextualMenuBase.prototype._findItemByKeyFromItems = function (key, items) {\n for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n var item = items_3[_i];\n if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n var match = this._findItemByKeyFromItems(key, item.sectionProps.items);\n if (match) {\n return match;\n }\n }\n else if (item.key && item.key === key) {\n return item;\n }\n }\n };\n ContextualMenuBase.prototype._setTargetWindowAndElement = function (target) {\n var currentElement = this._host;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n this._target = currentDoc ? currentDoc.querySelector(target) : null;\n this._targetWindow = getWindow(currentElement);\n // Cast to any prevents error about stopPropagation always existing\n }\n else if (target.stopPropagation) {\n this._targetWindow = getWindow(target.target);\n this._target = target;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (target.left !== undefined || target.x !== undefined) &&\n // eslint-disable-next-line deprecation/deprecation\n (target.top !== undefined || target.y !== undefined)) {\n this._targetWindow = getWindow(currentElement);\n this._target = target;\n }\n else if (target.current !== undefined) {\n this._target = target.current;\n this._targetWindow = getWindow(this._target);\n }\n else {\n var targetElement = target;\n this._targetWindow = getWindow(targetElement);\n this._target = target;\n }\n }\n else {\n this._targetWindow = getWindow(currentElement);\n }\n };\n // The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\n ContextualMenuBase.defaultProps = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n };\n ContextualMenuBase = __decorate([\n withResponsiveMode\n ], ContextualMenuBase);\n return ContextualMenuBase;\n}(React.Component));\nexport { ContextualMenuBase };\nfunction getOnClickWithOverrideTarget(onClick, target) {\n return onClick\n ? function (ev, item) {\n overrideTarget(ev, target);\n return onClick(ev, item);\n }\n : onClick;\n}\nfunction overrideTarget(ev, target) {\n if (ev && target) {\n ev.persist();\n if (target instanceof Event) {\n ev.target = target.target;\n }\n else if (target instanceof Element) {\n ev.target = target;\n }\n }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n var _a;\n return mergeStyleSets(getDividerClassNames(theme), {\n /* eslint-enable deprecation/deprecation */\n wrapper: {\n position: 'absolute',\n right: 28,\n selectors: (_a = {},\n _a[MediumScreenSelector] = {\n right: 32,\n },\n _a),\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n});\nvar GlobalClassNames = {\n item: 'ms-ContextualMenu-item',\n divider: 'ms-ContextualMenu-divider',\n root: 'ms-ContextualMenu-link',\n isChecked: 'is-checked',\n isExpanded: 'is-expanded',\n isDisabled: 'is-disabled',\n linkContent: 'ms-ContextualMenu-linkContent',\n linkContentMenu: 'ms-ContextualMenu-linkContent',\n icon: 'ms-ContextualMenu-icon',\n iconColor: 'ms-ContextualMenu-iconColor',\n checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n label: 'ms-ContextualMenu-itemText',\n secondaryText: 'ms-ContextualMenu-secondaryText',\n splitMenu: 'ms-ContextualMenu-splitMenu',\n screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated To be removed in 7.0.\n * @internal\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * It should be cleaned up in 7.0.\n *\n * TODO: Audit perf. impact of and potentially remove memoizeFunction.\n * https://github.com/microsoft/fluentui/issues/5534\n */\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n var _a, _b, _c, _d;\n var styles = getMenuItemStyles(theme);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return mergeStyleSets({\n item: [classNames.item, styles.item, itemClassName],\n divider: [classNames.divider, styles.divider, dividerClassName],\n root: [\n classNames.root,\n styles.root,\n checked && [classNames.isChecked, styles.rootChecked],\n isAnchorLink && styles.anchorLink,\n expanded && [classNames.isExpanded, styles.rootExpanded],\n disabled && [classNames.isDisabled, styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_a = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _a[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _a),\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: \"calc(100% - \" + CONTEXTUAL_SPLIT_MENU_MINWIDTH + \")\",\n },\n checked && ['is-checked', styles.rootChecked],\n (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n !(disabled || primaryDisabled) &&\n !checked && [\n {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n // when hovering over the splitPrimary also affect the splitMenu\n _b[\":hover ~ .\" + classNames.splitMenu] = styles.rootHovered,\n _b[':active'] = styles.rootPressed,\n _b[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _b[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _b),\n },\n ],\n ],\n splitMenu: [\n classNames.splitMenu,\n styles.root,\n {\n flexBasis: '0',\n padding: '0 8px',\n minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n },\n expanded && ['is-expanded', styles.rootExpanded],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_c = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _c[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _c[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _c),\n },\n ],\n ],\n anchorLink: styles.anchorLink,\n linkContent: [classNames.linkContent, styles.linkContent],\n linkContentMenu: [\n classNames.linkContentMenu,\n styles.linkContent,\n {\n justifyContent: 'center',\n },\n ],\n icon: [\n classNames.icon,\n knownIcon && styles.iconColor,\n styles.icon,\n iconClassName,\n disabled && [classNames.isDisabled, styles.iconDisabled],\n ],\n iconColor: styles.iconColor,\n checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n subMenuIcon: [\n classNames.subMenuIcon,\n styles.subMenuIcon,\n subMenuClassName,\n expanded && { color: theme.palette.neutralPrimary },\n disabled && [styles.iconDisabled],\n ],\n label: [classNames.label, styles.label],\n secondaryText: [classNames.secondaryText, styles.secondaryText],\n splitContainer: [\n styles.splitButtonFlexContainer,\n !disabled &&\n !checked && [\n {\n selectors: (_d = {},\n _d[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _d),\n },\n ],\n ],\n screenReaderText: [\n classNames.screenReaderText,\n styles.screenReaderText,\n hiddenContentStyle,\n { visibility: 'hidden' },\n ],\n });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n // eslint-disable-next-line deprecation/deprecation\n return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n var _a, _b, _c, _d, _e;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n var menuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px',\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ \n // ensure disabled text looks different than enabled\n color: 'GrayText', opacity: 1 }, getHighContrastNoAdjustStyle()),\n _a),\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: (_b = {\n '.ms-ContextualMenu-submenuIcon': (_c = {},\n _c[HighContrastSelector] = {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n _c)\n },\n _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _b),\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px',\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n secondaryText: {\n color: theme.palette.neutralSecondary,\n paddingLeft: '20px',\n textAlign: 'right',\n },\n icon: {\n display: 'inline-block',\n minHeight: '1px',\n maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n fontSize: IconFontSizes.medium,\n width: IconFontSizes.medium,\n margin: '0 4px',\n verticalAlign: 'middle',\n flexShrink: '0',\n selectors: (_d = {},\n _d[MediumScreenSelector] = {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n _d),\n },\n iconColor: {\n color: semanticColors.menuIcon,\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n },\n subMenuIcon: {\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n color: palette.neutralSecondary,\n textAlign: 'center',\n display: 'inline-block',\n verticalAlign: 'middle',\n flexShrink: '0',\n fontSize: IconFontSizes.small,\n selectors: (_e = {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n }\n },\n _e[MediumScreenSelector] = {\n fontSize: IconFontSizes.medium,\n },\n _e),\n },\n splitButtonFlexContainer: [\n getFocusStyle(theme),\n {\n display: 'flex',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n ],\n };\n return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n root: 'ms-ContextualMenu',\n container: 'ms-ContextualMenu-container',\n list: 'ms-ContextualMenu-list',\n header: 'ms-ContextualMenu-header',\n title: 'ms-ContextualMenu-title',\n isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n classNames.isopen,\n {\n backgroundColor: semanticColors.menuBackground,\n minWidth: '180px',\n },\n className,\n ],\n container: [\n classNames.container,\n {\n selectors: {\n ':focus': { outline: 0 },\n },\n },\n ],\n list: [\n classNames.list,\n classNames.isopen,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n },\n ],\n header: [\n classNames.header,\n fonts.small,\n {\n fontWeight: FontWeights.semibold,\n color: semanticColors.menuHeader,\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n cursor: 'default',\n padding: '0px 6px',\n userSelect: 'none',\n textAlign: 'left',\n },\n ],\n title: [\n classNames.title,\n {\n fontSize: fonts.mediumPlus.fontSize,\n paddingRight: '14px',\n paddingLeft: '14px',\n paddingBottom: '5px',\n paddingTop: '5px',\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n },\n ],\n subComponentStyles: {\n callout: {\n root: {\n boxShadow: effects.elevation8,\n },\n },\n menuItem: {},\n },\n };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n onRenderSubMenu: props.onRenderSubMenu\n ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\n//# sourceMappingURL=ContextualMenu.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons, classNames = props.classNames;\n var iconProps = item.iconProps;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props);\n }\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderCheckMarkIcon = function (_a) {\n var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n var isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n var onClick = function (e) { return onCheckmarkClick(item, e); };\n return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onClick }));\n }\n return null;\n};\nvar renderItemName = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\nvar renderSecondaryText = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n if (item.secondaryText) {\n return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n }\n return null;\n};\nvar renderSubMenuIcon = function (_a) {\n var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n if (hasSubmenu(item)) {\n return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n }\n return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n __extends(ContextualMenuItemBase, _super);\n function ContextualMenuItemBase(props) {\n var _this = _super.call(this, props) || this;\n _this.openSubMenu = function () {\n var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n if (getSubmenuTarget) {\n var submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n _this.dismissSubMenu = function () {\n var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n _this.dismissMenu = function (dismissAll) {\n var dismissMenu = _this.props.dismissMenu;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemBase.prototype.render = function () {\n var _a = this.props, item = _a.item, classNames = _a.classNames;\n var renderContent = item.onRenderContent || this._renderLayout;\n return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n renderCheckMarkIcon: renderCheckMarkIcon,\n renderItemIcon: renderItemIcon,\n renderItemName: renderItemName,\n renderSecondaryText: renderSecondaryText,\n renderSubMenuIcon: renderSubMenuIcon,\n })));\n };\n ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n return (React.createElement(React.Fragment, null,\n defaultRenders.renderCheckMarkIcon(props),\n defaultRenders.renderItemIcon(props),\n defaultRenders.renderItemName(props),\n defaultRenders.renderSecondaryText(props),\n defaultRenders.renderSubMenuIcon(props)));\n };\n return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, classNamesFunction, getId, getNativeProps, divProperties, css, initializeComponentRef, } from '../../Utilities';\nimport { Calendar, DayOfWeek } from '../../Calendar';\nimport { FirstWeekOfYear } from '../../utilities/dateValues/DateValues';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { TextField } from '../../TextField';\nimport { compareDates, compareDatePart } from '../../utilities/dateMath/DateMath';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_STRINGS = {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n goToToday: 'Go to today',\n prevMonthAriaLabel: 'Go to previous month',\n nextMonthAriaLabel: 'Go to next month',\n prevYearAriaLabel: 'Go to previous year',\n nextYearAriaLabel: 'Go to next year',\n prevYearRangeAriaLabel: 'Previous year range',\n nextYearRangeAriaLabel: 'Next year range',\n closeButtonAriaLabel: 'Close date picker',\n weekNumberFormatString: 'Week number {0}',\n};\nvar DatePickerBase = /** @class */ (function (_super) {\n __extends(DatePickerBase, _super);\n function DatePickerBase(props) {\n var _this = _super.call(this, props) || this;\n _this._calendar = React.createRef();\n _this._datePickerDiv = React.createRef();\n _this._textField = React.createRef();\n _this._onSelectDate = function (date) {\n var _a = _this.props, formatDate = _a.formatDate, onSelectDate = _a.onSelectDate;\n if (_this.props.calendarProps && _this.props.calendarProps.onSelectDate) {\n _this.props.calendarProps.onSelectDate(date);\n }\n _this.setState({\n selectedDate: date,\n formattedDate: formatDate && date ? formatDate(date) : '',\n });\n if (onSelectDate) {\n onSelectDate(date);\n }\n _this._calendarDismissed();\n };\n _this._onCalloutPositioned = function () {\n var shouldFocus = true;\n // If the user has specified that the callout shouldn't use initial focus, then respect\n // that and don't attempt to set focus. That will default to true within the callout\n // so we need to check if it's undefined here.\n if (_this.props.calloutProps && _this.props.calloutProps.setInitialFocus !== undefined) {\n shouldFocus = _this.props.calloutProps.setInitialFocus;\n }\n if (_this._calendar.current && shouldFocus) {\n _this._calendar.current.focus();\n }\n };\n _this._onTextFieldFocus = function (ev) {\n if (_this.props.disableAutoFocus) {\n return;\n }\n if (!_this.props.allowTextInput) {\n if (!_this._preventFocusOpeningPicker) {\n _this._showDatePickerPopup();\n }\n else {\n _this._preventFocusOpeningPicker = false;\n }\n }\n };\n _this._onTextFieldBlur = function (ev) {\n _this._validateTextInput();\n };\n _this._onTextFieldChanged = function (ev, newValue) {\n var _a = _this.props, allowTextInput = _a.allowTextInput, textField = _a.textField;\n if (allowTextInput) {\n if (_this.state.isDatePickerShown) {\n _this._dismissDatePickerPopup();\n }\n var _b = _this.props, isRequired = _b.isRequired, strings = _b.strings;\n _this.setState({\n errorMessage: isRequired && !newValue ? strings.isRequiredErrorMessage || ' ' : undefined,\n formattedDate: newValue,\n });\n }\n if (textField && textField.onChange) {\n textField.onChange(ev, newValue);\n }\n };\n _this._onTextFieldKeyDown = function (ev) {\n switch (ev.which) {\n case KeyCodes.enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!_this.state.isDatePickerShown) {\n _this._validateTextInput();\n _this._showDatePickerPopup();\n }\n else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (_this.props.allowTextInput) {\n _this._dismissDatePickerPopup();\n }\n }\n break;\n case KeyCodes.escape:\n _this._handleEscKey(ev);\n break;\n default:\n break;\n }\n };\n _this._onTextFieldClick = function (ev) {\n if (!_this.props.disableAutoFocus && !_this.state.isDatePickerShown && !_this.props.disabled) {\n _this._showDatePickerPopup();\n return;\n }\n if (_this.props.allowTextInput) {\n _this._dismissDatePickerPopup();\n }\n };\n _this._onIconClick = function (ev) {\n ev.stopPropagation();\n if (!_this.state.isDatePickerShown && !_this.props.disabled) {\n _this._showDatePickerPopup();\n }\n else if (_this.props.allowTextInput) {\n _this._dismissDatePickerPopup();\n }\n };\n _this._dismissDatePickerPopup = function () {\n if (_this.state.isDatePickerShown) {\n _this.setState({\n isDatePickerShown: false,\n }, function () {\n // setState is async, so we must call validate in a callback\n _this._validateTextInput();\n });\n }\n };\n /**\n * Callback for closing the calendar callout\n */\n _this._calendarDismissed = function () {\n _this._preventFocusOpeningPicker = true;\n _this._dismissDatePickerPopup();\n // don't need to focus the text box, if necessary the focusTrapZone will do it\n };\n _this._handleEscKey = function (ev) {\n if (_this.state.isDatePickerShown) {\n ev.stopPropagation();\n }\n _this._calendarDismissed();\n };\n _this._validateTextInput = function () {\n var _a = _this.props, isRequired = _a.isRequired, allowTextInput = _a.allowTextInput, strings = _a.strings, parseDateFromString = _a.parseDateFromString, onSelectDate = _a.onSelectDate, formatDate = _a.formatDate, minDate = _a.minDate, maxDate = _a.maxDate;\n var inputValue = _this.state.formattedDate;\n // Do validation only if DatePicker's popup is dismissed\n if (_this.state.isDatePickerShown) {\n return;\n }\n if (allowTextInput) {\n var date = null;\n if (inputValue) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (_this.state.selectedDate &&\n !_this.state.errorMessage &&\n formatDate &&\n formatDate(_this.state.selectedDate) === inputValue) {\n return;\n }\n date = parseDateFromString(inputValue);\n // Check if date is null, or date is Invalid Date\n if (!date || isNaN(date.getTime())) {\n // Reset invalid input field, if formatting is available\n if (formatDate) {\n date = _this.state.selectedDate;\n _this.setState({\n formattedDate: formatDate(date).toString(),\n });\n }\n _this.setState({\n errorMessage: strings.invalidInputErrorMessage || ' ',\n });\n }\n else {\n // Check against optional date boundaries\n if (_this._isDateOutOfBounds(date, minDate, maxDate)) {\n _this.setState({\n errorMessage: strings.isOutOfBoundsErrorMessage || ' ',\n });\n }\n else {\n _this.setState({\n selectedDate: date,\n errorMessage: '',\n });\n // When formatting is available:\n // If formatted date is valid, but is different from input, update with formatted date.\n // This occurs when an invalid date is entered twice.\n if (formatDate && formatDate(date) !== inputValue) {\n _this.setState({\n formattedDate: formatDate(date).toString(),\n });\n }\n }\n }\n }\n else {\n // Only show error for empty inputValue if it is a required field\n _this.setState({\n errorMessage: isRequired ? strings.isRequiredErrorMessage || ' ' : '',\n });\n }\n // Execute onSelectDate callback\n if (onSelectDate) {\n // If no input date string or input date string is invalid\n // date variable will be null, callback should expect null value for this case\n onSelectDate(date);\n }\n }\n else if (isRequired && !inputValue) {\n // Check when DatePicker is a required field but has NO input value\n _this.setState({\n errorMessage: strings.isRequiredErrorMessage || ' ',\n });\n }\n else {\n // Cleanup the error message\n _this.setState({\n errorMessage: '',\n });\n }\n };\n _this._renderReadOnlyInput = function (inputProps) {\n var formattedDate = _this.state.formattedDate;\n var _a = _this.props, styles = _a.styles, theme = _a.theme, placeholder = _a.placeholder, tabIndex = _a.tabIndex, underlined = _a.underlined;\n var classNames = getClassNames(styles, { theme: theme, underlined: underlined });\n var divProps = getNativeProps(inputProps, divProperties);\n // Talkback on Android treats readonly inputs as disabled, so swipe gestures to open the Calendar\n // don't register. Workaround is rendering a div with role=\"combobox\" (passed in via TextField props).\n return (React.createElement(\"div\", __assign({}, divProps, { className: css(divProps.className, classNames.readOnlyTextField), tabIndex: tabIndex || 0 }), formattedDate || (\n // Putting the placeholder in a separate span fixes specificity issues for the text color\n React.createElement(\"span\", { className: classNames.readOnlyPlaceholder }, placeholder))));\n };\n initializeComponentRef(_this);\n _this.state = _this._getDefaultState();\n _this._id = props.id || getId('DatePicker');\n _this._preventFocusOpeningPicker = false;\n return _this;\n }\n DatePickerBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n var formatDate = nextProps.formatDate, value = nextProps.value;\n if (compareDates(this.props.minDate, nextProps.minDate) &&\n compareDates(this.props.maxDate, nextProps.maxDate) &&\n this.props.isRequired === nextProps.isRequired &&\n compareDates(this.state.selectedDate, value) &&\n this.props.formatDate === formatDate) {\n // if the props we care about haven't changed, don't run validation or updates\n return;\n }\n this._setErrorMessage(true, nextProps);\n this._id = nextProps.id || this._id;\n // Issue# 1274: Check if the date value changed from old value, i.e., if indeed a new date is being\n // passed in or if the formatting function was modified. We only update the selected date if either of these\n // had a legit change. Note tha the bug will still repro when only the formatDate was passed in props and this\n // is the result of the onSelectDate callback, but this should be a rare scenario.\n var oldValue = this.state.selectedDate;\n if (!compareDates(oldValue, value) || this.props.formatDate !== formatDate) {\n this.setState({\n selectedDate: value || undefined,\n formattedDate: formatDate && value ? formatDate(value) : '',\n });\n }\n };\n DatePickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (prevState.isDatePickerShown && !this.state.isDatePickerShown) {\n // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n if (this.props.onAfterMenuDismiss) {\n this.props.onAfterMenuDismiss();\n }\n }\n };\n DatePickerBase.prototype.render = function () {\n var _a = this.props, firstDayOfWeek = _a.firstDayOfWeek, strings = _a.strings, label = _a.label, theme = _a.theme, className = _a.className, styles = _a.styles, initialPickerDate = _a.initialPickerDate, isRequired = _a.isRequired, disabled = _a.disabled, ariaLabel = _a.ariaLabel, pickerAriaLabel = _a.pickerAriaLabel, placeholder = _a.placeholder, allowTextInput = _a.allowTextInput, borderless = _a.borderless, minDate = _a.minDate, maxDate = _a.maxDate, showCloseButton = _a.showCloseButton, calendarProps = _a.calendarProps, calloutProps = _a.calloutProps, textFieldProps = _a.textField, underlined = _a.underlined, allFocusable = _a.allFocusable, _b = _a.calendarAs, CalendarType = _b === void 0 ? Calendar : _b, tabIndex = _a.tabIndex;\n var _c = this.state, isDatePickerShown = _c.isDatePickerShown, formattedDate = _c.formattedDate, selectedDate = _c.selectedDate;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n underlined: underlined,\n label: !!label,\n isDatePickerShown: isDatePickerShown,\n });\n var calloutId = getId('DatePicker-Callout');\n var nativeProps = getNativeProps(this.props, divProperties, ['value']);\n var iconProps = textFieldProps && textFieldProps.iconProps;\n var textFieldId = textFieldProps && textFieldProps.id && textFieldProps.id !== this._id ? textFieldProps.id : this._id + '-label';\n var readOnly = !allowTextInput && !disabled;\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n React.createElement(\"div\", { ref: this._datePickerDiv, \"aria-haspopup\": \"true\", \"aria-owns\": isDatePickerShown ? calloutId : undefined, className: classNames.wrapper },\n React.createElement(TextField, __assign({ role: \"combobox\", label: label, \"aria-expanded\": isDatePickerShown, ariaLabel: ariaLabel, \"aria-controls\": isDatePickerShown ? calloutId : undefined, required: isRequired, disabled: disabled, errorMessage: this._getErrorMessage(), placeholder: placeholder, borderless: borderless, value: formattedDate, componentRef: this._textField, underlined: underlined, tabIndex: tabIndex, readOnly: !allowTextInput }, textFieldProps, { id: textFieldId, className: css(classNames.textField, textFieldProps && textFieldProps.className), iconProps: __assign(__assign({ iconName: 'Calendar' }, iconProps), { className: css(classNames.icon, iconProps && iconProps.className), onClick: this._onIconClick }), onKeyDown: this._onTextFieldKeyDown, onFocus: this._onTextFieldFocus, onBlur: this._onTextFieldBlur, onClick: this._onTextFieldClick, onChange: this._onTextFieldChanged, onRenderInput: readOnly ? this._renderReadOnlyInput : undefined }))),\n isDatePickerShown && (React.createElement(Callout, __assign({ id: calloutId, role: \"dialog\", ariaLabel: pickerAriaLabel, isBeakVisible: false, gapSpace: 0, doNotLayer: false, target: this._datePickerDiv.current, directionalHint: DirectionalHint.bottomLeftEdge }, calloutProps, { className: css(classNames.callout, calloutProps && calloutProps.className), onDismiss: this._calendarDismissed, onPositioned: this._onCalloutPositioned }),\n React.createElement(FocusTrapZone, { isClickableOutsideFocusTrap: true, disableFirstFocus: this.props.disableAutoFocus, forceFocusInsideTrap: false },\n React.createElement(CalendarType, __assign({}, calendarProps, { onSelectDate: this._onSelectDate, onDismiss: this._calendarDismissed, isMonthPickerVisible: this.props.isMonthPickerVisible, showMonthPickerAsOverlay: this.props.showMonthPickerAsOverlay, today: this.props.today, value: selectedDate || initialPickerDate, firstDayOfWeek: firstDayOfWeek, strings: strings, highlightCurrentMonth: this.props.highlightCurrentMonth, highlightSelectedMonth: this.props.highlightSelectedMonth, showWeekNumbers: this.props.showWeekNumbers, firstWeekOfYear: this.props.firstWeekOfYear, showGoToToday: this.props.showGoToToday, dateTimeFormatter: this.props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: this._calendar, showCloseButton: showCloseButton, allFocusable: allFocusable })))))));\n };\n DatePickerBase.prototype.focus = function () {\n if (this._textField.current) {\n this._textField.current.focus();\n }\n };\n DatePickerBase.prototype.reset = function () {\n this.setState(this._getDefaultState());\n };\n DatePickerBase.prototype._setErrorMessage = function (setState, nextProps) {\n var _a = nextProps || this.props, isRequired = _a.isRequired, strings = _a.strings, value = _a.value, minDate = _a.minDate, maxDate = _a.maxDate, initialPickerDate = _a.initialPickerDate;\n var errorMessage = !initialPickerDate && isRequired && !value ? strings.isRequiredErrorMessage || ' ' : undefined;\n if (!errorMessage && value) {\n errorMessage = this._isDateOutOfBounds(value, minDate, maxDate)\n ? strings.isOutOfBoundsErrorMessage || ' '\n : undefined;\n }\n if (setState) {\n this.setState({\n errorMessage: errorMessage,\n });\n }\n return errorMessage;\n };\n DatePickerBase.prototype._showDatePickerPopup = function () {\n if (!this.state.isDatePickerShown) {\n this._preventFocusOpeningPicker = true;\n this.setState({\n isDatePickerShown: true,\n });\n }\n };\n DatePickerBase.prototype._getDefaultState = function (props) {\n if (props === void 0) { props = this.props; }\n return {\n selectedDate: props.value || undefined,\n formattedDate: props.formatDate && props.value ? props.formatDate(props.value) : '',\n isDatePickerShown: false,\n errorMessage: this._setErrorMessage(false),\n };\n };\n DatePickerBase.prototype._isDateOutOfBounds = function (date, minDate, maxDate) {\n return (!!minDate && compareDatePart(minDate, date) > 0) || (!!maxDate && compareDatePart(maxDate, date) < 0);\n };\n DatePickerBase.prototype._getErrorMessage = function () {\n if (this.state.isDatePickerShown) {\n return undefined;\n }\n return this.state.errorMessage;\n };\n DatePickerBase.defaultProps = {\n allowTextInput: false,\n formatDate: function (date) {\n if (date) {\n return date.toDateString();\n }\n return '';\n },\n parseDateFromString: function (dateStr) {\n var date = Date.parse(dateStr);\n if (date) {\n return new Date(date);\n }\n return null;\n },\n firstDayOfWeek: DayOfWeek.Sunday,\n initialPickerDate: new Date(),\n isRequired: false,\n isMonthPickerVisible: true,\n showMonthPickerAsOverlay: false,\n strings: DEFAULT_STRINGS,\n highlightCurrentMonth: false,\n highlightSelectedMonth: false,\n borderless: false,\n pickerAriaLabel: 'Calendar',\n showWeekNumbers: false,\n firstWeekOfYear: FirstWeekOfYear.FirstDay,\n showGoToToday: true,\n dateTimeFormatter: undefined,\n showCloseButton: false,\n underlined: false,\n allFocusable: false,\n };\n return DatePickerBase;\n}(React.Component));\nexport { DatePickerBase };\n//# sourceMappingURL=DatePicker.base.js.map","import { normalize, getGlobalClassNames, HighContrastSelector, getInputFocusStyle } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DatePicker',\n callout: 'ms-DatePicker-callout',\n withLabel: 'ms-DatePicker-event--with-label',\n withoutLabel: 'ms-DatePicker-event--without-label',\n disabled: 'msDatePickerDisabled ',\n};\nvar TEXTFIELD_HEIGHT = 32;\nexport var styles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme, disabled = props.disabled, underlined = props.underlined, label = props.label, isDatePickerShown = props.isDatePickerShown;\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var DatePickerIcon = {\n color: palette.neutralSecondary,\n fontSize: fonts.mediumPlus.fontSize,\n lineHeight: '18px',\n pointerEvents: 'none',\n position: 'absolute',\n right: '4px',\n padding: '5px',\n };\n return {\n root: [classNames.root, theme.fonts.medium, isDatePickerShown && 'is-open', normalize, className],\n textField: [\n {\n position: 'relative',\n selectors: {\n '& input[readonly]': {\n cursor: 'pointer',\n },\n input: {\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n },\n },\n disabled && {\n selectors: {\n '& input[readonly]': {\n cursor: 'default',\n },\n },\n },\n ],\n callout: [classNames.callout, { boxShadow: effects.elevation8 }],\n icon: [\n DatePickerIcon,\n label ? classNames.withLabel : classNames.withoutLabel,\n { paddingTop: '7px' },\n !disabled && [\n classNames.disabled,\n {\n pointerEvents: 'initial',\n cursor: 'pointer',\n },\n ],\n disabled && {\n color: semanticColors.disabledText,\n cursor: 'default',\n },\n ],\n readOnlyTextField: [\n {\n cursor: 'pointer',\n height: TEXTFIELD_HEIGHT,\n lineHeight: TEXTFIELD_HEIGHT - 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n selectors: (_a = {},\n _a['&:focus'] = getInputFocusStyle(semanticColors.inputFocusBorderAlt, effects.roundedCorner2),\n _a),\n },\n underlined && {\n lineHeight: TEXTFIELD_HEIGHT + 2,\n },\n ],\n readOnlyPlaceholder: (_b = {\n color: semanticColors.inputPlaceholderText\n },\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n };\n};\n//# sourceMappingURL=DatePicker.styles.js.map","import { styled } from '../../Utilities';\nimport { DatePickerBase } from './DatePicker.base';\nimport { styles } from './DatePicker.styles';\n/**\n * DatePicker description\n */\nexport var DatePicker = styled(DatePickerBase, styles, undefined, {\n scope: 'DatePicker',\n});\n//# sourceMappingURL=DatePicker.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { initializeComponentRef, EventGroup, Async, classNamesFunction, composeRenderFunction, } from '../../Utilities';\nimport { ColumnActionsMode } from './DetailsList.types';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar getClassNames = classNamesFunction();\nvar TRANSITION_DURATION_DRAG = 200; // ms\nvar TRANSITION_DURATION_DROP = 1500; // ms\nvar CLASSNAME_ADD_INTERVAL = 20; // ms\nvar defaultOnRenderHeader = function (classNames) { return function (props) {\n if (!props) {\n return null;\n }\n if (props.column.isIconOnly) {\n return React.createElement(\"span\", { className: classNames.accessibleLabel }, props.column.name);\n }\n return React.createElement(React.Fragment, null, props.column.name);\n}; };\n/**\n * Component for rendering columns in a `DetailsList`.\n *\n * {@docCategory DetailsList}\n */\nvar DetailsColumnBase = /** @class */ (function (_super) {\n __extends(DetailsColumnBase, _super);\n function DetailsColumnBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._onRenderFilterIcon = function (classNames) { return function (props) {\n var _a;\n var columnProps = props.columnProps, iconProps = __rest(props, [\"columnProps\"]);\n var IconComponent = ((_a = columnProps) === null || _a === void 0 ? void 0 : _a.useFastIcons) ? FontIcon : Icon;\n return React.createElement(IconComponent, __assign({}, iconProps));\n }; };\n _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {\n return React.createElement(\"span\", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);\n };\n _this._onColumnClick = function (ev) {\n var _a = _this.props, onColumnClick = _a.onColumnClick, column = _a.column;\n if (column.columnActionsMode === ColumnActionsMode.disabled) {\n return;\n }\n if (column.onColumnClick) {\n column.onColumnClick(ev, column);\n }\n if (onColumnClick) {\n onColumnClick(ev, column);\n }\n };\n _this._onDragStart = function (item, itemIndex, selectedItems, event) {\n var classNames = _this._classNames;\n if (itemIndex) {\n _this._updateHeaderDragInfo(itemIndex);\n _this._root.current.classList.add(classNames.borderWhileDragging);\n _this._async.setTimeout(function () {\n if (_this._root.current) {\n _this._root.current.classList.add(classNames.noBorderWhileDragging);\n }\n }, CLASSNAME_ADD_INTERVAL);\n }\n };\n _this._onDragEnd = function (item, event) {\n var classNames = _this._classNames;\n if (event) {\n _this._updateHeaderDragInfo(-1, event);\n }\n _this._root.current.classList.remove(classNames.borderWhileDragging);\n _this._root.current.classList.remove(classNames.noBorderWhileDragging);\n };\n _this._updateHeaderDragInfo = function (itemIndex, event) {\n /* eslint-disable deprecation/deprecation */\n if (_this.props.setDraggedItemIndex) {\n _this.props.setDraggedItemIndex(itemIndex);\n }\n /* eslint-enable deprecation/deprecation */\n if (_this.props.updateDragInfo) {\n _this.props.updateDragInfo({ itemIndex: itemIndex }, event);\n }\n };\n _this._onColumnContextMenu = function (ev) {\n var _a = _this.props, onColumnContextMenu = _a.onColumnContextMenu, column = _a.column;\n if (column.onColumnContextMenu) {\n column.onColumnContextMenu(column, ev);\n ev.preventDefault();\n }\n if (onColumnContextMenu) {\n onColumnContextMenu(column, ev);\n ev.preventDefault();\n }\n };\n _this._onRootMouseDown = function (ev) {\n var isDraggable = _this.props.isDraggable;\n // Ignore anything except the primary button.\n if (isDraggable && ev.button === MOUSEDOWN_PRIMARY_BUTTON) {\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n return _this;\n }\n DetailsColumnBase.prototype.render = function () {\n var _a = this.props, column = _a.column, columnIndex = _a.columnIndex, parentId = _a.parentId, isDraggable = _a.isDraggable, styles = _a.styles, theme = _a.theme, _b = _a.cellStyleProps, cellStyleProps = _b === void 0 ? DEFAULT_CELL_STYLE_PROPS : _b, _c = _a.useFastIcons, useFastIcons = _c === void 0 ? true : _c;\n var _d = this.props.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _d === void 0 ? this._onRenderColumnHeaderTooltip : _d;\n this._classNames = getClassNames(styles, {\n theme: theme,\n headerClassName: column.headerClassName,\n iconClassName: column.iconClassName,\n isActionable: column.columnActionsMode !== ColumnActionsMode.disabled,\n isEmpty: !column.name,\n isIconVisible: column.isSorted || column.isGrouped || column.isFiltered,\n isPadded: column.isPadded,\n isIconOnly: column.isIconOnly,\n cellStyleProps: cellStyleProps,\n transitionDurationDrag: TRANSITION_DURATION_DRAG,\n transitionDurationDrop: TRANSITION_DURATION_DROP,\n });\n var classNames = this._classNames;\n var IconComponent = useFastIcons ? FontIcon : Icon;\n var onRenderFilterIcon = column.onRenderFilterIcon\n ? composeRenderFunction(column.onRenderFilterIcon, this._onRenderFilterIcon(this._classNames))\n : this._onRenderFilterIcon(this._classNames);\n var onRenderHeader = column.onRenderHeader\n ? composeRenderFunction(column.onRenderHeader, defaultOnRenderHeader(this._classNames))\n : defaultOnRenderHeader(this._classNames);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { key: column.key, ref: this._root, role: 'columnheader', \"aria-sort\": column.isSorted ? (column.isSortedDescending ? 'descending' : 'ascending') : 'none', \"aria-colindex\": columnIndex, className: classNames.root, \"data-is-draggable\": isDraggable, draggable: isDraggable, style: {\n width: column.calculatedWidth +\n cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),\n }, \"data-automationid\": 'ColumnsHeaderColumn', \"data-item-key\": column.key },\n isDraggable && (React.createElement(IconComponent, { iconName: \"GripperBarVertical\", className: classNames.gripperBarVerticalStyle })),\n onRenderColumnHeaderTooltip({\n hostClassName: classNames.cellTooltip,\n id: parentId + \"-\" + column.key + \"-tooltip\",\n setAriaDescribedBy: false,\n column: column,\n content: column.columnActionsMode !== ColumnActionsMode.disabled ? column.ariaLabel : '',\n children: (React.createElement(\"span\", { id: parentId + \"-\" + column.key, \"aria-label\": column.isIconOnly ? column.name : undefined, \"aria-labelledby\": column.isIconOnly ? undefined : parentId + \"-\" + column.key + \"-name\", className: classNames.cellTitle, \"data-is-focusable\": column.columnActionsMode !== ColumnActionsMode.disabled, role: column.columnActionsMode !== ColumnActionsMode.disabled &&\n (column.onColumnClick !== undefined || this.props.onColumnClick !== undefined)\n ? 'button'\n : undefined, \"aria-describedby\": !this.props.onRenderColumnHeaderTooltip && this._hasAccessibleLabel()\n ? parentId + \"-\" + column.key + \"-tooltip\"\n : undefined, onContextMenu: this._onColumnContextMenu, onClick: this._onColumnClick, \"aria-haspopup\": column.columnActionsMode === ColumnActionsMode.hasDropdown, \"aria-expanded\": column.columnActionsMode === ColumnActionsMode.hasDropdown ? !!column.isMenuOpen : undefined },\n React.createElement(\"span\", { id: parentId + \"-\" + column.key + \"-name\", className: classNames.cellName },\n (column.iconName || column.iconClassName) && (React.createElement(IconComponent, { className: classNames.iconClassName, iconName: column.iconName })),\n onRenderHeader(this.props)),\n column.isFiltered && React.createElement(IconComponent, { className: classNames.nearIcon, iconName: \"Filter\" }),\n column.isSorted && (React.createElement(IconComponent, { className: classNames.sortIcon, iconName: column.isSortedDescending ? 'SortDown' : 'SortUp' })),\n column.isGrouped && React.createElement(IconComponent, { className: classNames.nearIcon, iconName: \"GroupedDescending\" }),\n column.columnActionsMode === ColumnActionsMode.hasDropdown &&\n !column.isIconOnly &&\n onRenderFilterIcon({\n 'aria-hidden': true,\n columnProps: this.props,\n className: classNames.filterChevron,\n iconName: 'ChevronDown',\n }))),\n }, this._onRenderColumnHeaderTooltip)),\n !this.props.onRenderColumnHeaderTooltip ? this._renderAccessibleLabel() : null));\n };\n DetailsColumnBase.prototype.componentDidMount = function () {\n var _this = this;\n if (this.props.dragDropHelper && this.props.isDraggable) {\n this._addDragDropHandling();\n }\n var classNames = this._classNames;\n if (this.props.isDropped) {\n if (this._root.current) {\n this._root.current.classList.add(classNames.borderAfterDropping);\n this._async.setTimeout(function () {\n if (_this._root.current) {\n _this._root.current.classList.add(classNames.noBorderAfterDropping);\n }\n }, CLASSNAME_ADD_INTERVAL);\n }\n this._async.setTimeout(function () {\n if (_this._root.current) {\n _this._root.current.classList.remove(classNames.borderAfterDropping);\n _this._root.current.classList.remove(classNames.noBorderAfterDropping);\n }\n }, TRANSITION_DURATION_DROP + CLASSNAME_ADD_INTERVAL);\n }\n };\n DetailsColumnBase.prototype.componentWillUnmount = function () {\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n this._async.dispose();\n this._events.dispose();\n };\n DetailsColumnBase.prototype.componentDidUpdate = function () {\n if (!this._dragDropSubscription && this.props.dragDropHelper && this.props.isDraggable) {\n this._addDragDropHandling();\n }\n if (this._dragDropSubscription && !this.props.isDraggable) {\n this._dragDropSubscription.dispose();\n this._events.off(this._root.current, 'mousedown');\n delete this._dragDropSubscription;\n }\n };\n DetailsColumnBase.prototype._getColumnDragDropOptions = function () {\n var _this = this;\n var columnIndex = this.props.columnIndex;\n var options = {\n selectionIndex: columnIndex,\n context: { data: columnIndex, index: columnIndex },\n canDrag: function () { return _this.props.isDraggable; },\n canDrop: function () { return false; },\n onDragStart: this._onDragStart,\n updateDropState: function () { return undefined; },\n onDrop: function () { return undefined; },\n onDragEnd: this._onDragEnd,\n };\n return options;\n };\n DetailsColumnBase.prototype._hasAccessibleLabel = function () {\n var column = this.props.column;\n return !!(column.ariaLabel ||\n column.filterAriaLabel ||\n column.sortAscendingAriaLabel ||\n column.sortDescendingAriaLabel ||\n column.groupAriaLabel);\n };\n DetailsColumnBase.prototype._renderAccessibleLabel = function () {\n var _a = this.props, column = _a.column, parentId = _a.parentId;\n var classNames = this._classNames;\n return this._hasAccessibleLabel() && !this.props.onRenderColumnHeaderTooltip ? (React.createElement(\"label\", { key: column.key + \"_label\", id: parentId + \"-\" + column.key + \"-tooltip\", className: classNames.accessibleLabel },\n column.ariaLabel,\n (column.isFiltered && column.filterAriaLabel) || null,\n (column.isSorted &&\n (column.isSortedDescending ? column.sortDescendingAriaLabel : column.sortAscendingAriaLabel)) ||\n null,\n (column.isGrouped && column.groupAriaLabel) || null)) : null;\n };\n DetailsColumnBase.prototype._addDragDropHandling = function () {\n this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getColumnDragDropOptions());\n // We need to use native on this to prevent MarqueeSelection from handling the event before us.\n this._events.on(this._root.current, 'mousedown', this._onRootMouseDown);\n };\n return DetailsColumnBase;\n}(React.Component));\nexport { DetailsColumnBase };\n//# sourceMappingURL=DetailsColumn.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsColumnBase } from './DetailsColumn.base';\nimport { getStyles } from './DetailsColumn.styles';\nexport var DetailsColumn = styled(DetailsColumnBase, getStyles, undefined, { scope: 'DetailsColumn' });\n//# sourceMappingURL=DetailsColumn.js.map","import { __assign } from \"tslib\";\nimport { getFocusStyle, getGlobalClassNames, hiddenContentStyle, FontWeights } from '../../Styling';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nimport { getCellStyles } from './DetailsHeader.styles';\nvar GlobalClassNames = {\n isActionable: 'is-actionable',\n cellIsCheck: 'ms-DetailsHeader-cellIsCheck',\n collapseButton: 'ms-DetailsHeader-collapseButton',\n isCollapsed: 'is-collapsed',\n isAllSelected: 'is-allSelected',\n isSelectAllHidden: 'is-selectAllHidden',\n isResizingColumn: 'is-resizingColumn',\n isEmpty: 'is-empty',\n isIconVisible: 'is-icon-visible',\n cellSizer: 'ms-DetailsHeader-cellSizer',\n isResizing: 'is-resizing',\n dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',\n dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',\n cellTitle: 'ms-DetailsHeader-cellTitle',\n cellName: 'ms-DetailsHeader-cellName',\n filterChevron: 'ms-DetailsHeader-filterChevron',\n gripperBarVerticalStyle: 'ms-DetailsColumn-gripperBar',\n nearIcon: 'ms-DetailsColumn-nearIcon',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, headerClassName = props.headerClassName, iconClassName = props.iconClassName, isActionable = props.isActionable, isEmpty = props.isEmpty, isIconVisible = props.isIconVisible, isPadded = props.isPadded, isIconOnly = props.isIconOnly, _b = props.cellStyleProps, cellStyleProps = _b === void 0 ? DEFAULT_CELL_STYLE_PROPS : _b, transitionDurationDrag = props.transitionDurationDrag, transitionDurationDrop = props.transitionDurationDrop;\n var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var colors = {\n iconForegroundColor: semanticColors.bodySubtext,\n headerForegroundColor: semanticColors.bodyText,\n headerBackgroundColor: semanticColors.bodyBackground,\n dropdownChevronForegroundColor: palette.neutralSecondary,\n resizerColor: palette.neutralTertiaryAlt,\n };\n var nearIconStyle = {\n color: colors.iconForegroundColor,\n opacity: 1,\n paddingLeft: 8,\n };\n var borderWhileDragging = {\n outline: \"1px solid \" + palette.themePrimary,\n };\n var borderAfterDragOrDrop = {\n outlineColor: 'transparent',\n };\n return {\n root: [\n getCellStyles(props),\n fonts.small,\n isActionable && [\n classNames.isActionable,\n {\n selectors: {\n ':hover': {\n color: semanticColors.bodyText,\n background: semanticColors.listHeaderBackgroundHovered,\n },\n ':active': {\n background: semanticColors.listHeaderBackgroundPressed,\n },\n },\n },\n ],\n isEmpty && [\n classNames.isEmpty,\n {\n textOverflow: 'clip',\n },\n ],\n isIconVisible && classNames.isIconVisible,\n isPadded && {\n paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding,\n },\n {\n selectors: {\n ':hover i[data-icon-name=\"GripperBarVertical\"]': {\n display: 'block',\n },\n },\n },\n headerClassName,\n ],\n gripperBarVerticalStyle: {\n display: 'none',\n position: 'absolute',\n textAlign: 'left',\n color: palette.neutralTertiary,\n left: 1,\n },\n nearIcon: [classNames.nearIcon, nearIconStyle],\n sortIcon: [\n nearIconStyle,\n {\n paddingLeft: 4,\n position: 'relative',\n top: 1,\n },\n ],\n iconClassName: [\n {\n color: colors.iconForegroundColor,\n opacity: 1,\n },\n iconClassName,\n ],\n filterChevron: [\n classNames.filterChevron,\n {\n color: colors.dropdownChevronForegroundColor,\n paddingLeft: 6,\n verticalAlign: 'middle',\n fontSize: fonts.small.fontSize,\n },\n ],\n cellTitle: [\n classNames.cellTitle,\n getFocusStyle(theme),\n __assign({ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'stretch', boxSizing: 'border-box', overflow: 'hidden', padding: \"0 \" + cellStyleProps.cellRightPadding + \"px 0 \" + cellStyleProps.cellLeftPadding + \"px\" }, (isIconOnly\n ? {\n alignContent: 'flex-end',\n maxHeight: '100%',\n flexWrap: 'wrap-reverse',\n }\n : {})),\n ],\n cellName: [\n classNames.cellName,\n {\n flex: '0 1 auto',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontWeight: FontWeights.semibold,\n fontSize: fonts.medium.fontSize,\n },\n isIconOnly && {\n selectors: (_a = {},\n _a[\".\" + classNames.nearIcon] = {\n paddingLeft: 0,\n },\n _a),\n },\n ],\n cellTooltip: {\n display: 'block',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n accessibleLabel: hiddenContentStyle,\n borderWhileDragging: borderWhileDragging,\n noBorderWhileDragging: [borderAfterDragOrDrop, { transition: \"outline \" + transitionDurationDrag + \"ms ease\" }],\n borderAfterDropping: borderWhileDragging,\n noBorderAfterDropping: [borderAfterDragOrDrop, { transition: \"outline \" + transitionDurationDrop + \"ms ease\" }],\n };\n};\n//# sourceMappingURL=DetailsColumn.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, EventGroup, css, getRTL, getId, KeyCodes, classNamesFunction, } from '../../Utilities';\nimport { ColumnDragEndLocation, CheckboxVisibility, } from './DetailsList.types';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon, FontIcon } from '../../Icon';\nimport { Layer } from '../../Layer';\nimport { GroupSpacer } from '../GroupedList/GroupSpacer';\nimport { CollapseAllVisibility } from '../../GroupedList';\nimport { DetailsRowCheck } from './DetailsRowCheck';\nimport { SelectionMode, SELECTION_CHANGE } from '../../utilities/selection/interfaces';\nimport { DragDropHelper } from '../../utilities/dragdrop/index';\nimport { DetailsColumn } from '../../components/DetailsList/DetailsColumn';\nimport { SelectAllVisibility, } from './DetailsHeader.types';\nvar getClassNames = classNamesFunction();\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar NO_COLUMNS = [];\nvar DetailsHeaderBase = /** @class */ (function (_super) {\n __extends(DetailsHeaderBase, _super);\n function DetailsHeaderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootElement = React.createRef();\n _this._rootComponent = React.createRef();\n _this._draggedColumnIndex = -1;\n _this._dropHintDetails = {};\n _this._updateDroppingState = function (newValue, event) {\n if (_this._draggedColumnIndex >= 0 && event.type !== 'drop' && !newValue) {\n _this._resetDropHints();\n }\n };\n _this._onDragOver = function (item, event) {\n if (_this._draggedColumnIndex >= 0) {\n event.stopPropagation();\n _this._computeDropHintToBeShown(event.clientX);\n }\n };\n _this._onDrop = function (item, event) {\n // Safe to assume this is defined since we're handling a drop event\n var columnReorderProps = _this._getColumnReorderProps();\n // Target index will not get changed if draggeditem is after target item.\n if (_this._draggedColumnIndex >= 0 && event) {\n var targetIndex = _this._draggedColumnIndex > _this._currentDropHintIndex\n ? _this._currentDropHintIndex\n : _this._currentDropHintIndex - 1;\n var isValidDrop = _this._isValidCurrentDropHintIndex();\n event.stopPropagation();\n if (isValidDrop) {\n _this._onDropIndexInfo.sourceIndex = _this._draggedColumnIndex;\n _this._onDropIndexInfo.targetIndex = targetIndex;\n if (columnReorderProps.onColumnDrop) {\n var dragDropDetails = {\n draggedIndex: _this._draggedColumnIndex,\n targetIndex: targetIndex,\n };\n columnReorderProps.onColumnDrop(dragDropDetails);\n /* eslint-disable deprecation/deprecation */\n }\n else if (columnReorderProps.handleColumnReorder) {\n columnReorderProps.handleColumnReorder(_this._draggedColumnIndex, targetIndex);\n /* eslint-enable deprecation/deprecation */\n }\n }\n }\n _this._resetDropHints();\n _this._dropHintDetails = {};\n _this._draggedColumnIndex = -1;\n };\n _this._updateDragInfo = function (props, event) {\n // Safe to assume this is defined since we're handling a drag event\n var columnReorderProps = _this._getColumnReorderProps();\n var itemIndex = props.itemIndex;\n if (itemIndex >= 0) {\n // Column index is set based on the checkbox\n _this._draggedColumnIndex = _this._isCheckboxColumnHidden() ? itemIndex - 1 : itemIndex - 2;\n _this._getDropHintPositions();\n if (columnReorderProps.onColumnDragStart) {\n columnReorderProps.onColumnDragStart(true);\n }\n }\n else if (event && _this._draggedColumnIndex >= 0) {\n _this._resetDropHints();\n _this._draggedColumnIndex = -1;\n _this._dropHintDetails = {};\n if (columnReorderProps.onColumnDragEnd) {\n var columnDragEndLocation = _this._isEventOnHeader(event);\n columnReorderProps.onColumnDragEnd({ dropLocation: columnDragEndLocation }, event);\n }\n }\n };\n _this._getDropHintPositions = function () {\n var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n // Safe to assume this is defined since we're handling a drag/drop event\n var columnReorderProps = _this._getColumnReorderProps();\n var prevX = 0;\n var prevMid = 0;\n var prevRef;\n var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;\n var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;\n for (var i = frozenColumnCountFromStart; i < columns.length - frozenColumnCountFromEnd + 1; i++) {\n if (_this._rootElement.current) {\n var dropHintElement = _this._rootElement.current.querySelectorAll('#columnDropHint_' + i)[0];\n if (dropHintElement) {\n if (i === frozenColumnCountFromStart) {\n prevX = dropHintElement.offsetLeft;\n prevMid = dropHintElement.offsetLeft;\n prevRef = dropHintElement;\n }\n else {\n var newMid = (dropHintElement.offsetLeft + prevX) / 2;\n _this._dropHintDetails[i - 1] = {\n originX: prevX,\n startX: prevMid,\n endX: newMid,\n dropHintElementRef: prevRef,\n };\n prevMid = newMid;\n prevRef = dropHintElement;\n prevX = dropHintElement.offsetLeft;\n if (i === columns.length - frozenColumnCountFromEnd) {\n _this._dropHintDetails[i] = {\n originX: prevX,\n startX: prevMid,\n endX: dropHintElement.offsetLeft,\n dropHintElementRef: prevRef,\n };\n }\n }\n }\n }\n }\n };\n /**\n * Based on the given cursor position, finds the nearest drop hint and updates the state to make it visible\n */\n _this._computeDropHintToBeShown = function (clientX) {\n var isRtl = getRTL(_this.props.theme);\n if (_this._rootElement.current) {\n var clientRect = _this._rootElement.current.getBoundingClientRect();\n var headerOriginX = clientRect.left;\n var eventXRelativePosition = clientX - headerOriginX;\n var currentDropHintIndex = _this._currentDropHintIndex;\n if (_this._isValidCurrentDropHintIndex()) {\n if (_liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex].startX, _this._dropHintDetails[currentDropHintIndex].endX)) {\n return;\n }\n }\n var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n // Safe to assume this is defined since we're handling a drag/drop event\n var columnReorderProps = _this._getColumnReorderProps();\n var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;\n var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;\n var currentIndex = frozenColumnCountFromStart;\n var lastValidColumn = columns.length - frozenColumnCountFromEnd;\n var indexToUpdate = -1;\n if (_isBefore(isRtl, eventXRelativePosition, _this._dropHintDetails[currentIndex].endX)) {\n indexToUpdate = currentIndex;\n }\n else if (_isAfter(isRtl, eventXRelativePosition, _this._dropHintDetails[lastValidColumn].startX)) {\n indexToUpdate = lastValidColumn;\n }\n else if (_this._isValidCurrentDropHintIndex()) {\n if (_this._dropHintDetails[currentDropHintIndex + 1] &&\n _liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex + 1].startX, _this._dropHintDetails[currentDropHintIndex + 1].endX)) {\n indexToUpdate = currentDropHintIndex + 1;\n }\n else if (_this._dropHintDetails[currentDropHintIndex - 1] &&\n _liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex - 1].startX, _this._dropHintDetails[currentDropHintIndex - 1].endX)) {\n indexToUpdate = currentDropHintIndex - 1;\n }\n }\n if (indexToUpdate === -1) {\n var startIndex = frozenColumnCountFromStart;\n var endIndex = lastValidColumn;\n while (startIndex < endIndex) {\n var middleIndex = Math.ceil((endIndex + startIndex) / 2);\n if (_liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].startX, _this._dropHintDetails[middleIndex].endX)) {\n indexToUpdate = middleIndex;\n break;\n }\n else if (_isBefore(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {\n endIndex = middleIndex;\n }\n else if (_isAfter(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {\n startIndex = middleIndex;\n }\n }\n }\n if (indexToUpdate === _this._draggedColumnIndex || indexToUpdate === _this._draggedColumnIndex + 1) {\n if (_this._isValidCurrentDropHintIndex()) {\n _this._resetDropHints();\n }\n }\n else if (currentDropHintIndex !== indexToUpdate && indexToUpdate >= 0) {\n _this._resetDropHints();\n _this._updateDropHintElement(_this._dropHintDetails[indexToUpdate].dropHintElementRef, 'inline-block');\n _this._currentDropHintIndex = indexToUpdate;\n }\n }\n };\n _this._renderColumnSizer = function (_a) {\n var _b;\n var columnIndex = _a.columnIndex;\n var _c = _this.props.columns, columns = _c === void 0 ? NO_COLUMNS : _c;\n var column = columns[columnIndex];\n var columnResizeDetails = _this.state.columnResizeDetails;\n var classNames = _this._classNames;\n return column.isResizable ? (React.createElement(\"div\", { key: column.key + \"_sizer\", \"aria-hidden\": true, role: \"button\", \"data-is-focusable\": false, onClick: _stopPropagation, \"data-sizer-index\": columnIndex, onBlur: _this._onSizerBlur, className: css(classNames.cellSizer, columnIndex < columns.length - 1 ? classNames.cellSizerStart : classNames.cellSizerEnd, (_b = {},\n _b[classNames.cellIsResizing] = columnResizeDetails && columnResizeDetails.columnIndex === columnIndex,\n _b)), onDoubleClick: _this._onSizerDoubleClick.bind(_this, columnIndex) })) : null;\n };\n _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {\n return React.createElement(\"span\", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);\n };\n /**\n * Called when the select all toggle is clicked.\n */\n _this._onSelectAllClicked = function () {\n var selection = _this.props.selection;\n if (selection) {\n selection.toggleAllSelected();\n }\n };\n _this._onRootMouseDown = function (ev) {\n var columnIndexAttr = ev.target.getAttribute('data-sizer-index');\n var columnIndex = Number(columnIndexAttr);\n var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n if (columnIndexAttr === null || ev.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n // Ignore anything except the primary button.\n return;\n }\n _this.setState({\n columnResizeDetails: {\n columnIndex: columnIndex,\n columnMinWidth: columns[columnIndex].calculatedWidth,\n originX: ev.clientX,\n },\n });\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._onRootMouseMove = function (ev) {\n var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;\n if (columnResizeDetails && !isSizing && ev.clientX !== columnResizeDetails.originX) {\n _this.setState({ isSizing: true });\n }\n };\n _this._onRootKeyDown = function (ev) {\n var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;\n var _b = _this.props, _c = _b.columns, columns = _c === void 0 ? NO_COLUMNS : _c, onColumnResized = _b.onColumnResized;\n var columnIndexAttr = ev.target.getAttribute('data-sizer-index');\n if (!columnIndexAttr || isSizing) {\n return;\n }\n var columnIndex = Number(columnIndexAttr);\n if (!columnResizeDetails) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this.setState({\n columnResizeDetails: {\n columnIndex: columnIndex,\n columnMinWidth: columns[columnIndex].calculatedWidth,\n },\n });\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n var increment = void 0;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this.setState({\n columnResizeDetails: undefined,\n });\n ev.preventDefault();\n ev.stopPropagation();\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.left) {\n increment = getRTL(_this.props.theme) ? 1 : -1;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.right) {\n increment = getRTL(_this.props.theme) ? -1 : 1;\n }\n if (increment) {\n if (!ev.shiftKey) {\n increment *= 10;\n }\n _this.setState({\n columnResizeDetails: __assign(__assign({}, columnResizeDetails), { columnMinWidth: columnResizeDetails.columnMinWidth + increment }),\n });\n if (onColumnResized) {\n onColumnResized(columns[columnIndex], columnResizeDetails.columnMinWidth + increment, columnIndex);\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n /**\n * mouse move event handler in the header\n * it will set isSizing state to true when user clicked on the sizer and move the mouse.\n *\n * @param ev - mouse move event\n */\n _this._onSizerMouseMove = function (ev) {\n var \n // use buttons property here since ev.button in some edge case is not upding well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n buttons = ev.buttons;\n var _a = _this.props, onColumnIsSizingChanged = _a.onColumnIsSizingChanged, onColumnResized = _a.onColumnResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n var columnResizeDetails = _this.state.columnResizeDetails;\n if (buttons !== undefined && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n // cancel mouse down event and return early when the primary button is not pressed\n _this._onSizerMouseUp(ev);\n return;\n }\n if (ev.clientX !== columnResizeDetails.originX) {\n if (onColumnIsSizingChanged) {\n onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], true);\n }\n }\n if (onColumnResized) {\n var movement = ev.clientX - columnResizeDetails.originX;\n if (getRTL(_this.props.theme)) {\n movement = -movement;\n }\n onColumnResized(columns[columnResizeDetails.columnIndex], columnResizeDetails.columnMinWidth + movement, columnResizeDetails.columnIndex);\n }\n };\n _this._onSizerBlur = function (ev) {\n var columnResizeDetails = _this.state.columnResizeDetails;\n if (columnResizeDetails) {\n _this.setState({\n columnResizeDetails: undefined,\n isSizing: false,\n });\n }\n };\n /**\n * mouse up event handler in the header\n * clear the resize related state.\n * This is to ensure we can catch double click event\n *\n * @param ev - mouse up event\n */\n _this._onSizerMouseUp = function (ev) {\n var _a = _this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, onColumnIsSizingChanged = _a.onColumnIsSizingChanged;\n var columnResizeDetails = _this.state.columnResizeDetails;\n _this.setState({\n columnResizeDetails: undefined,\n isSizing: false,\n });\n if (onColumnIsSizingChanged) {\n onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], false);\n }\n };\n _this._onToggleCollapseAll = function () {\n var onToggleCollapseAll = _this.props.onToggleCollapseAll;\n var newCollapsed = !_this.state.isAllCollapsed;\n _this.setState({\n isAllCollapsed: newCollapsed,\n });\n if (onToggleCollapseAll) {\n onToggleCollapseAll(newCollapsed);\n }\n };\n initializeComponentRef(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n columnResizeDetails: undefined,\n isAllCollapsed: _this.props.isAllCollapsed,\n isAllSelected: !!_this.props.selection && _this.props.selection.isAllSelected(),\n };\n _this._onDropIndexInfo = {\n sourceIndex: -1,\n targetIndex: -1,\n };\n _this._id = getId('header');\n _this._currentDropHintIndex = -1;\n // The drag drop handler won't do any work until subscribe() is called,\n // so always set it up for convenience\n _this._dragDropHelper = new DragDropHelper({\n selection: {\n getSelection: function () {\n return;\n },\n },\n minimumPixelsForDrag: _this.props.minimumPixelsForDrag,\n });\n return _this;\n }\n DetailsHeaderBase.prototype.componentDidMount = function () {\n var selection = this.props.selection;\n this._events.on(selection, SELECTION_CHANGE, this._onSelectionChanged);\n // this._rootElement.current will be null in tests using react-test-renderer\n if (this._rootElement.current) {\n // We need to use native on this to prevent MarqueeSelection from handling the event before us.\n this._events.on(this._rootElement.current, 'mousedown', this._onRootMouseDown);\n this._events.on(this._rootElement.current, 'keydown', this._onRootKeyDown);\n if (this._getColumnReorderProps()) {\n this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement.current, this._events, this._getHeaderDragDropOptions());\n }\n }\n };\n DetailsHeaderBase.prototype.componentDidUpdate = function (prevProps) {\n if (this._getColumnReorderProps()) {\n if (!this._subscriptionObject && this._rootElement.current) {\n this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement.current, this._events, this._getHeaderDragDropOptions());\n }\n }\n else if (this._subscriptionObject) {\n this._subscriptionObject.dispose();\n delete this._subscriptionObject;\n }\n if (this.props !== prevProps && this._onDropIndexInfo.sourceIndex >= 0 && this._onDropIndexInfo.targetIndex >= 0) {\n var _a = prevProps.columns, previousColumns = _a === void 0 ? NO_COLUMNS : _a;\n var _b = this.props.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n if (previousColumns[this._onDropIndexInfo.sourceIndex].key === columns[this._onDropIndexInfo.targetIndex].key) {\n this._onDropIndexInfo = {\n sourceIndex: -1,\n targetIndex: -1,\n };\n }\n }\n if (this.props.isAllCollapsed !== prevProps.isAllCollapsed) {\n this.setState({ isAllCollapsed: this.props.isAllCollapsed });\n }\n };\n DetailsHeaderBase.prototype.componentWillUnmount = function () {\n if (this._subscriptionObject) {\n this._subscriptionObject.dispose();\n delete this._subscriptionObject;\n }\n this._dragDropHelper.dispose();\n this._events.dispose();\n };\n DetailsHeaderBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, ariaLabel = _a.ariaLabel, ariaLabelForToggleAllGroupsButton = _a.ariaLabelForToggleAllGroupsButton, ariaLabelForSelectAllCheckbox = _a.ariaLabelForSelectAllCheckbox, selectAllVisibility = _a.selectAllVisibility, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, indentWidth = _a.indentWidth, onColumnClick = _a.onColumnClick, onColumnContextMenu = _a.onColumnContextMenu, _c = _a.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _c === void 0 ? this._onRenderColumnHeaderTooltip : _c, styles = _a.styles, selectionMode = _a.selectionMode, theme = _a.theme, onRenderDetailsCheckbox = _a.onRenderDetailsCheckbox, groupNestingDepth = _a.groupNestingDepth, useFastIcons = _a.useFastIcons, checkboxVisibility = _a.checkboxVisibility, className = _a.className;\n var _d = this.state, isAllSelected = _d.isAllSelected, columnResizeDetails = _d.columnResizeDetails, isSizing = _d.isSizing, isAllCollapsed = _d.isAllCollapsed;\n var showCheckbox = selectAllVisibility !== SelectAllVisibility.none;\n var isCheckboxHidden = selectAllVisibility === SelectAllVisibility.hidden;\n var isCheckboxAlwaysVisible = checkboxVisibility === CheckboxVisibility.always;\n var columnReorderProps = this._getColumnReorderProps();\n var frozenColumnCountFromStart = columnReorderProps && columnReorderProps.frozenColumnCountFromStart\n ? columnReorderProps.frozenColumnCountFromStart\n : 0;\n var frozenColumnCountFromEnd = columnReorderProps && columnReorderProps.frozenColumnCountFromEnd\n ? columnReorderProps.frozenColumnCountFromEnd\n : 0;\n this._classNames = getClassNames(styles, {\n theme: theme,\n isAllSelected: isAllSelected,\n isSelectAllHidden: selectAllVisibility === SelectAllVisibility.hidden,\n isResizingColumn: !!columnResizeDetails && isSizing,\n isSizing: isSizing,\n isAllCollapsed: isAllCollapsed,\n isCheckboxHidden: isCheckboxHidden,\n className: className,\n });\n var classNames = this._classNames;\n var IconComponent = useFastIcons ? FontIcon : Icon;\n var isRTL = getRTL(theme);\n return (React.createElement(FocusZone, { role: \"row\", \"aria-label\": ariaLabel, className: classNames.root, componentRef: this._rootComponent, elementRef: this._rootElement, onMouseMove: this._onRootMouseMove, \"data-automationid\": \"DetailsHeader\", direction: FocusZoneDirection.horizontal },\n showCheckbox\n ? [\n React.createElement(\"div\", { key: \"__checkbox\", className: classNames.cellIsCheck, \"aria-labelledby\": this._id + \"-check\", onClick: !isCheckboxHidden ? this._onSelectAllClicked : undefined, \"aria-colindex\": 1, role: 'columnheader' }, onRenderColumnHeaderTooltip({\n hostClassName: classNames.checkTooltip,\n id: this._id + \"-checkTooltip\",\n setAriaDescribedBy: false,\n content: ariaLabelForSelectAllCheckbox,\n children: (React.createElement(DetailsRowCheck, { id: this._id + \"-check\", \"aria-label\": selectionMode === SelectionMode.multiple\n ? ariaLabelForSelectAllCheckbox\n : ariaLabelForSelectionColumn, \"data-is-focusable\": !isCheckboxHidden || undefined, isHeader: true, selected: isAllSelected, anySelected: false, canSelect: !isCheckboxHidden, className: classNames.check, onRenderDetailsCheckbox: onRenderDetailsCheckbox, useFastIcons: useFastIcons, isVisible: isCheckboxAlwaysVisible })),\n }, this._onRenderColumnHeaderTooltip)),\n !this.props.onRenderColumnHeaderTooltip ? (ariaLabelForSelectAllCheckbox && !isCheckboxHidden ? (React.createElement(\"label\", { key: \"__checkboxLabel\", id: this._id + \"-checkTooltip\", className: classNames.accessibleLabel, \"aria-hidden\": true }, ariaLabelForSelectAllCheckbox)) : ariaLabelForSelectionColumn && isCheckboxHidden ? (React.createElement(\"label\", { key: \"__checkboxLabel\", id: this._id + \"-checkTooltip\", className: classNames.accessibleLabel, \"aria-hidden\": true }, ariaLabelForSelectionColumn)) : null) : null,\n ]\n : null,\n groupNestingDepth > 0 && this.props.collapseAllVisibility === CollapseAllVisibility.visible ? (React.createElement(\"div\", { className: classNames.cellIsGroupExpander, onClick: this._onToggleCollapseAll, \"data-is-focusable\": true, \"aria-label\": ariaLabelForToggleAllGroupsButton, \"aria-expanded\": !isAllCollapsed, role: \"columnheader\" },\n React.createElement(IconComponent, { className: classNames.collapseButton, iconName: isRTL ? 'ChevronLeftMed' : 'ChevronRightMed' }))) : null,\n React.createElement(GroupSpacer, { indentWidth: indentWidth, role: \"gridcell\", count: groupNestingDepth - 1 }),\n columns.map(function (column, columnIndex) {\n var _isDraggable = columnReorderProps\n ? columnIndex >= frozenColumnCountFromStart && columnIndex < columns.length - frozenColumnCountFromEnd\n : false;\n return [\n columnReorderProps &&\n (_isDraggable || columnIndex === columns.length - frozenColumnCountFromEnd) &&\n _this._renderDropHint(columnIndex),\n React.createElement(DetailsColumn, { column: column, styles: column.styles, key: column.key, columnIndex: (showCheckbox ? 2 : 1) + columnIndex, parentId: _this._id, isDraggable: _isDraggable, updateDragInfo: _this._updateDragInfo, dragDropHelper: _this._dragDropHelper, onColumnClick: onColumnClick, onColumnContextMenu: onColumnContextMenu, \n // Do not render tooltips by default, but allow for override via props.\n onRenderColumnHeaderTooltip: _this.props.onRenderColumnHeaderTooltip, isDropped: _this._onDropIndexInfo.targetIndex === columnIndex, cellStyleProps: _this.props.cellStyleProps, useFastIcons: useFastIcons }),\n _this._renderColumnDivider(columnIndex),\n ];\n }),\n columnReorderProps && frozenColumnCountFromEnd === 0 && this._renderDropHint(columns.length),\n isSizing && (React.createElement(Layer, null,\n React.createElement(\"div\", { className: classNames.sizingOverlay, onMouseMove: this._onSizerMouseMove, onMouseUp: this._onSizerMouseUp })))));\n };\n /** Set focus to the active thing in the focus area. */\n DetailsHeaderBase.prototype.focus = function () {\n var _a;\n return !!((_a = this._rootComponent.current) === null || _a === void 0 ? void 0 : _a.focus());\n };\n /**\n * Gets column reorder props from this.props. If the calling code is part of setting up or\n * handling drag/drop events, it's safe to assume that this method's return value is defined\n * (because drag/drop handling will only be set up if reorder props are given).\n */\n DetailsHeaderBase.prototype._getColumnReorderProps = function () {\n var _a = this.props, columnReorderOptions = _a.columnReorderOptions, columnReorderProps = _a.columnReorderProps;\n return columnReorderProps || (columnReorderOptions && __assign(__assign({}, columnReorderOptions), { onColumnDragEnd: undefined }));\n };\n DetailsHeaderBase.prototype._getHeaderDragDropOptions = function () {\n var options = {\n selectionIndex: 1,\n context: { data: this, index: 0 },\n canDrag: function () { return false; },\n canDrop: function () { return true; },\n onDragStart: function () { return undefined; },\n updateDropState: this._updateDroppingState,\n onDrop: this._onDrop,\n onDragEnd: function () { return undefined; },\n onDragOver: this._onDragOver,\n };\n return options;\n };\n DetailsHeaderBase.prototype._isValidCurrentDropHintIndex = function () {\n return this._currentDropHintIndex >= 0;\n };\n /**\n * @returns whether or not the \"Select All\" checkbox column is hidden.\n */\n DetailsHeaderBase.prototype._isCheckboxColumnHidden = function () {\n var _a = this.props, selectionMode = _a.selectionMode, checkboxVisibility = _a.checkboxVisibility;\n return selectionMode === SelectionMode.none || checkboxVisibility === CheckboxVisibility.hidden;\n };\n DetailsHeaderBase.prototype._resetDropHints = function () {\n if (this._currentDropHintIndex >= 0) {\n this._updateDropHintElement(this._dropHintDetails[this._currentDropHintIndex].dropHintElementRef, 'none');\n this._currentDropHintIndex = -1;\n }\n };\n DetailsHeaderBase.prototype._updateDropHintElement = function (element, displayProperty) {\n element.childNodes[1].style.display = displayProperty;\n element.childNodes[0].style.display = displayProperty;\n };\n DetailsHeaderBase.prototype._isEventOnHeader = function (event) {\n if (this._rootElement.current) {\n var clientRect = this._rootElement.current.getBoundingClientRect();\n if (event.clientX > clientRect.left &&\n event.clientX < clientRect.right &&\n event.clientY > clientRect.top &&\n event.clientY < clientRect.bottom) {\n return ColumnDragEndLocation.header;\n }\n }\n };\n DetailsHeaderBase.prototype._renderColumnDivider = function (columnIndex) {\n var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n var column = columns[columnIndex];\n var onRenderDivider = column.onRenderDivider;\n return onRenderDivider\n ? onRenderDivider({ column: column, columnIndex: columnIndex }, this._renderColumnSizer)\n : this._renderColumnSizer({ column: column, columnIndex: columnIndex });\n };\n DetailsHeaderBase.prototype._renderDropHint = function (dropHintIndex) {\n var classNames = this._classNames;\n var IconComponent = this.props.useFastIcons ? FontIcon : Icon;\n return (React.createElement(\"div\", { key: 'dropHintKey', className: classNames.dropHintStyle, id: \"columnDropHint_\" + dropHintIndex },\n React.createElement(\"div\", { role: \"presentation\", key: \"dropHintCircleKey\", className: classNames.dropHintCaretStyle, \"data-is-focusable\": false, \"data-sizer-index\": dropHintIndex, \"aria-hidden\": true },\n React.createElement(IconComponent, { iconName: 'CircleShapeSolid' })),\n React.createElement(\"div\", { key: \"dropHintLineKey\", \"aria-hidden\": true, \"data-is-focusable\": false, \"data-sizer-index\": dropHintIndex, className: classNames.dropHintLineStyle })));\n };\n /**\n * double click on the column sizer will auto ajust column width\n * to fit the longest content among current rendered rows.\n *\n * @param columnIndex - index of the column user double clicked\n * @param ev - mouse double click event\n */\n DetailsHeaderBase.prototype._onSizerDoubleClick = function (columnIndex, ev) {\n var _a = this.props, onColumnAutoResized = _a.onColumnAutoResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n if (onColumnAutoResized) {\n onColumnAutoResized(columns[columnIndex], columnIndex);\n }\n };\n DetailsHeaderBase.prototype._onSelectionChanged = function () {\n var isAllSelected = !!this.props.selection && this.props.selection.isAllSelected();\n if (this.state.isAllSelected !== isAllSelected) {\n this.setState({\n isAllSelected: isAllSelected,\n });\n }\n };\n DetailsHeaderBase.defaultProps = {\n selectAllVisibility: SelectAllVisibility.visible,\n collapseAllVisibility: CollapseAllVisibility.visible,\n useFastIcons: true,\n };\n return DetailsHeaderBase;\n}(React.Component));\nexport { DetailsHeaderBase };\nfunction _liesBetween(rtl, target, left, right) {\n return rtl ? target <= left && target >= right : target >= left && target <= right;\n}\nfunction _isBefore(rtl, a, b) {\n return rtl ? a >= b : a <= b;\n}\nfunction _isAfter(rtl, a, b) {\n return rtl ? a <= b : a >= b;\n}\nfunction _stopPropagation(ev) {\n ev.stopPropagation();\n}\n//# sourceMappingURL=DetailsHeader.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsHeaderBase } from './DetailsHeader.base';\nimport { getStyles } from './DetailsHeader.styles';\nexport var DetailsHeader = styled(DetailsHeaderBase, getStyles, undefined, { scope: 'DetailsHeader' });\n//# sourceMappingURL=DetailsHeader.js.map","import { __assign } from \"tslib\";\nimport { getFocusStyle, focusClear, getGlobalClassNames, HighContrastSelector, hiddenContentStyle, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as GROUP_EXPANDER_WIDTH } from '../GroupedList/GroupSpacer';\nvar GlobalClassNames = {\n tooltipHost: 'ms-TooltipHost',\n root: 'ms-DetailsHeader',\n cell: 'ms-DetailsHeader-cell',\n cellIsCheck: 'ms-DetailsHeader-cellIsCheck',\n collapseButton: 'ms-DetailsHeader-collapseButton',\n isCollapsed: 'is-collapsed',\n isAllSelected: 'is-allSelected',\n isSelectAllHidden: 'is-selectAllHidden',\n isResizingColumn: 'is-resizingColumn',\n cellSizer: 'ms-DetailsHeader-cellSizer',\n isResizing: 'is-resizing',\n dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',\n dropHintCaretStyle: 'ms-DetailsHeader-dropHintCaretStyle',\n dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',\n cellTitle: 'ms-DetailsHeader-cellTitle',\n cellName: 'ms-DetailsHeader-cellName',\n filterChevron: 'ms-DetailsHeader-filterChevron',\n gripperBarVertical: 'ms-DetailsColumn-gripperBarVertical',\n checkTooltip: 'ms-DetailsHeader-checkTooltip',\n check: 'ms-DetailsHeader-check',\n};\nexport var HEADER_HEIGHT = 42;\nexport var getCellStyles = function (props) {\n var theme = props.theme, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return [\n classNames.cell,\n getFocusStyle(theme),\n {\n color: semanticColors.bodyText,\n position: 'relative',\n display: 'inline-block',\n boxSizing: 'border-box',\n padding: \"0 \" + cellStyleProps.cellRightPadding + \"px 0 \" + cellStyleProps.cellLeftPadding + \"px\",\n lineHeight: 'inherit',\n margin: '0',\n height: HEADER_HEIGHT,\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'left',\n },\n ];\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var theme = props.theme, className = props.className, isAllSelected = props.isAllSelected, isResizingColumn = props.isResizingColumn, isSizing = props.isSizing, isAllCollapsed = props.isAllCollapsed, _e = props.cellStyleProps, cellStyleProps = _e === void 0 ? DEFAULT_CELL_STYLE_PROPS : _e;\n var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var colors = {\n iconForegroundColor: semanticColors.bodySubtext,\n headerForegroundColor: semanticColors.bodyText,\n headerBackgroundColor: semanticColors.bodyBackground,\n resizerColor: palette.neutralTertiaryAlt,\n };\n var cellSizerFadeInStyles = {\n opacity: 1,\n transition: 'opacity 0.3s linear',\n };\n var cellStyles = getCellStyles(props);\n return {\n root: [\n classNames.root,\n fonts.small,\n {\n display: 'inline-block',\n background: colors.headerBackgroundColor,\n position: 'relative',\n minWidth: '100%',\n verticalAlign: 'top',\n height: HEADER_HEIGHT,\n lineHeight: HEADER_HEIGHT,\n whiteSpace: 'nowrap',\n boxSizing: 'content-box',\n paddingBottom: '1px',\n paddingTop: '16px',\n borderBottom: \"1px solid \" + semanticColors.bodyDivider,\n cursor: 'default',\n userSelect: 'none',\n selectors: (_a = {},\n _a[\"&:hover .\" + classNames.check] = {\n opacity: 1,\n },\n _a[\"& .\" + classNames.tooltipHost + \" .\" + classNames.checkTooltip] = {\n display: 'block',\n },\n _a),\n },\n isAllSelected && classNames.isAllSelected,\n isResizingColumn && classNames.isResizingColumn,\n className,\n ],\n check: [\n classNames.check,\n {\n height: HEADER_HEIGHT,\n },\n {\n selectors: (_b = {},\n _b[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n opacity: 1,\n },\n _b),\n },\n ],\n cellWrapperPadded: {\n paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding,\n },\n cellIsCheck: [\n cellStyles,\n classNames.cellIsCheck,\n {\n position: 'relative',\n padding: 0,\n margin: 0,\n display: 'inline-flex',\n alignItems: 'center',\n border: 'none',\n },\n isAllSelected && {\n opacity: 1,\n },\n ],\n cellIsGroupExpander: [\n cellStyles,\n {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: fonts.small.fontSize,\n padding: 0,\n border: 'none',\n width: GROUP_EXPANDER_WIDTH,\n color: palette.neutralSecondary,\n selectors: {\n ':hover': {\n backgroundColor: palette.neutralLighter,\n },\n ':active': {\n backgroundColor: palette.neutralLight,\n },\n },\n },\n ],\n cellIsActionable: {\n selectors: {\n ':hover': {\n color: semanticColors.bodyText,\n background: semanticColors.listHeaderBackgroundHovered,\n },\n ':active': {\n background: semanticColors.listHeaderBackgroundPressed,\n },\n },\n },\n cellIsEmpty: {\n textOverflow: 'clip',\n },\n cellSizer: [\n classNames.cellSizer,\n focusClear(),\n {\n display: 'inline-block',\n position: 'relative',\n cursor: 'ew-resize',\n bottom: 0,\n top: 0,\n overflow: 'hidden',\n height: 'inherit',\n background: 'transparent',\n zIndex: 1,\n width: 16,\n selectors: (_c = {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: 1,\n background: colors.resizerColor,\n opacity: 0,\n left: '50%',\n },\n ':focus:after': cellSizerFadeInStyles,\n ':hover:after': cellSizerFadeInStyles\n },\n _c[\"&.\" + classNames.isResizing + \":after\"] = [\n cellSizerFadeInStyles,\n {\n boxShadow: '0 0 5px 0 rgba(0, 0, 0, 0.4)',\n },\n ],\n _c),\n },\n ],\n cellIsResizing: classNames.isResizing,\n cellSizerStart: {\n margin: '0 -8px',\n },\n cellSizerEnd: {\n margin: 0,\n marginLeft: -16,\n },\n collapseButton: [\n classNames.collapseButton,\n {\n transformOrigin: '50% 50%',\n transition: 'transform .1s linear',\n },\n isAllCollapsed\n ? [\n classNames.isCollapsed,\n {\n transform: 'rotate(0deg)',\n },\n ]\n : {\n transform: getRTL(theme) ? 'rotate(-90deg)' : 'rotate(90deg)',\n },\n ],\n checkTooltip: classNames.checkTooltip,\n sizingOverlay: isSizing && {\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n cursor: 'ew-resize',\n background: 'rgba(255, 255, 255, 0)',\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ background: 'transparent' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n accessibleLabel: hiddenContentStyle,\n dropHintCircleStyle: [\n classNames.dropHintCircleStyle,\n {\n display: 'inline-block',\n visibility: 'hidden',\n position: 'absolute',\n bottom: 0,\n height: 9,\n width: 9,\n borderRadius: '50%',\n marginLeft: -5,\n top: 34,\n overflow: 'visible',\n zIndex: 10,\n border: \"1px solid \" + palette.themePrimary,\n background: palette.white,\n },\n ],\n dropHintCaretStyle: [\n classNames.dropHintCaretStyle,\n {\n display: 'none',\n position: 'absolute',\n top: -28,\n left: -6.5,\n fontSize: fonts.medium.fontSize,\n color: palette.themePrimary,\n overflow: 'visible',\n zIndex: 10,\n },\n ],\n dropHintLineStyle: [\n classNames.dropHintLineStyle,\n {\n display: 'none',\n position: 'absolute',\n bottom: 0,\n top: 0,\n overflow: 'hidden',\n height: 42,\n width: 1,\n background: palette.themePrimary,\n zIndex: 10,\n },\n ],\n dropHintStyle: {\n display: 'inline-block',\n position: 'absolute',\n },\n };\n};\n//# sourceMappingURL=DetailsHeader.styles.js.map","/**\n * {@docCategory DetailsList}\n */\nexport var SelectAllVisibility;\n(function (SelectAllVisibility) {\n SelectAllVisibility[SelectAllVisibility[\"none\"] = 0] = \"none\";\n SelectAllVisibility[SelectAllVisibility[\"hidden\"] = 1] = \"hidden\";\n SelectAllVisibility[SelectAllVisibility[\"visible\"] = 2] = \"visible\";\n})(SelectAllVisibility || (SelectAllVisibility = {}));\n//# sourceMappingURL=DetailsHeader.types.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, FocusRects, Async, KeyCodes, elementContains, getRTLSafeKeyCode, classNamesFunction, memoizeFunction, getId, composeRenderFunction, composeComponentAs, } from '../../Utilities';\nimport { CheckboxVisibility, ColumnActionsMode, ConstrainMode, DetailsListLayoutMode, ColumnDragEndLocation, } from '../DetailsList/DetailsList.types';\nimport { DetailsHeader } from '../DetailsList/DetailsHeader';\nimport { SelectAllVisibility, } from '../DetailsList/DetailsHeader.types';\nimport { DetailsRow } from '../DetailsList/DetailsRow';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Selection, SelectionMode, SelectionZone } from '../../utilities/selection/index';\nimport { DragDropHelper } from '../../utilities/dragdrop/DragDropHelper';\nimport { GroupedList } from '../../GroupedList';\nimport { List } from '../../List';\nimport { withViewport } from '../../utilities/decorators/withViewport';\nimport { GetGroupCount } from '../../utilities/groupedList/GroupedListUtility';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nimport { CHECK_CELL_WIDTH as CHECKBOX_WIDTH } from './DetailsRowCheck.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as GROUP_EXPAND_WIDTH } from '../GroupedList/GroupSpacer';\nimport { useConst } from '@uifabric/react-hooks';\nvar getClassNames = classNamesFunction();\nvar MIN_COLUMN_WIDTH = 100; // this is the global min width\nvar DEFAULT_RENDERED_WINDOWS_AHEAD = 2;\nvar DEFAULT_RENDERED_WINDOWS_BEHIND = 2;\n/**\n * Hooks-based implementation of DetailsList.\n * Since many existing consumers of DetailsList expect `ref` to return a `DetailsList`,\n * this inner component handles rendering while the outer maintains compatibility.\n */\nvar DetailsListInner = function (props) {\n var _a;\n var selection = props.selection;\n var ariaLabelForListHeader = props.ariaLabelForListHeader, ariaLabelForSelectAllCheckbox = props.ariaLabelForSelectAllCheckbox, ariaLabelForSelectionColumn = props.ariaLabelForSelectionColumn, className = props.className, checkboxVisibility = props.checkboxVisibility, compact = props.compact, constrainMode = props.constrainMode, dragDropEvents = props.dragDropEvents, groups = props.groups, groupProps = props.groupProps, indentWidth = props.indentWidth, items = props.items, isPlaceholderData = props.isPlaceholderData, isHeaderVisible = props.isHeaderVisible, layoutMode = props.layoutMode, onItemInvoked = props.onItemInvoked, onItemContextMenu = props.onItemContextMenu, onColumnHeaderClick = props.onColumnHeaderClick, onColumnHeaderContextMenu = props.onColumnHeaderContextMenu, _b = props.selectionMode, selectionMode = _b === void 0 ? selection.mode : _b, selectionPreservedOnEmptyClick = props.selectionPreservedOnEmptyClick, selectionZoneProps = props.selectionZoneProps, ariaLabel = props.ariaLabel, ariaLabelForGrid = props.ariaLabelForGrid, rowElementEventMap = props.rowElementEventMap, _c = props.shouldApplyApplicationRole, shouldApplyApplicationRole = _c === void 0 ? false : _c, getKey = props.getKey, listProps = props.listProps, usePageCache = props.usePageCache, onShouldVirtualize = props.onShouldVirtualize, viewport = props.viewport, minimumPixelsForDrag = props.minimumPixelsForDrag, getGroupHeight = props.getGroupHeight, styles = props.styles, theme = props.theme, _d = props.cellStyleProps, cellStyleProps = _d === void 0 ? DEFAULT_CELL_STYLE_PROPS : _d, onRenderCheckbox = props.onRenderCheckbox, useFastIcons = props.useFastIcons, dragDropHelper = props.dragDropHelper, adjustedColumns = props.adjustedColumns, isCollapsed = props.isCollapsed, isSizing = props.isSizing, isSomeGroupExpanded = props.isSomeGroupExpanded, version = props.version, rootRef = props.rootRef, listRef = props.listRef, focusZoneRef = props.focusZoneRef, columnReorderOptions = props.columnReorderOptions, groupedListRef = props.groupedListRef, headerRef = props.headerRef, onGroupExpandStateChanged = props.onGroupExpandStateChanged, onColumnIsSizingChanged = props.onColumnIsSizingChanged, onRowDidMount = props.onRowDidMount, onRowWillUnmount = props.onRowWillUnmount, disableSelectionZone = props.disableSelectionZone, _e = props.isSelectedOnFocus, isSelectedOnFocus = _e === void 0 ? true : _e, onColumnResized = props.onColumnResized, onColumnAutoResized = props.onColumnAutoResized, onToggleCollapse = props.onToggleCollapse, onActiveRowChanged = props.onActiveRowChanged, onBlur = props.onBlur, eventsToRegister = props.rowElementEventMap, onRenderMissingItem = props.onRenderMissingItem, onRenderItemColumn = props.onRenderItemColumn, getCellValueKey = props.getCellValueKey, getRowAriaLabel = props.getRowAriaLabel, getRowAriaDescribedBy = props.getRowAriaDescribedBy, checkButtonAriaLabel = props.checkButtonAriaLabel, checkButtonGroupAriaLabel = props.checkButtonGroupAriaLabel, checkboxCellClassName = props.checkboxCellClassName, useReducedRowRenderer = props.useReducedRowRenderer, enableUpdateAnimations = props.enableUpdateAnimations, enterModalSelectionOnTouch = props.enterModalSelectionOnTouch, onRenderDefaultRow = props.onRenderDefaultRow, selectionZoneRef = props.selectionZoneRef;\n var defaultRole = 'grid';\n var role = props.role ? props.role : defaultRole;\n var rowId = getId('row');\n var groupNestingDepth = getGroupNestingDepth(groups);\n var groupedDetailsListIndexMap = useGroupedDetailsListIndexMap(groups);\n var additionalListProps = React.useMemo(function () {\n return __assign({ renderedWindowsAhead: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_AHEAD, renderedWindowsBehind: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_BEHIND, getKey: getKey,\n version: version }, listProps);\n }, [isSizing, getKey, version, listProps]);\n var selectAllVisibility = SelectAllVisibility.none; // for SelectionMode.none\n if (selectionMode === SelectionMode.single) {\n selectAllVisibility = SelectAllVisibility.hidden;\n }\n if (selectionMode === SelectionMode.multiple) {\n // if isCollapsedGroupSelectVisible is false, disable select all when the list has all collapsed groups\n var isCollapsedGroupSelectVisible = groupProps && groupProps.headerProps && groupProps.headerProps.isCollapsedGroupSelectVisible;\n if (isCollapsedGroupSelectVisible === undefined) {\n isCollapsedGroupSelectVisible = true;\n }\n var isSelectAllVisible = isCollapsedGroupSelectVisible || !groups || isSomeGroupExpanded;\n selectAllVisibility = isSelectAllVisible ? SelectAllVisibility.visible : SelectAllVisibility.hidden;\n }\n if (checkboxVisibility === CheckboxVisibility.hidden) {\n selectAllVisibility = SelectAllVisibility.none;\n }\n var defaultOnRenderDetailsHeader = React.useCallback(function (detailsHeaderProps) {\n return React.createElement(DetailsHeader, __assign({}, detailsHeaderProps));\n }, []);\n var defaultOnRenderDetailsFooter = React.useCallback(function () {\n return null;\n }, []);\n var propsOnRenderDetailsHeader = props.onRenderDetailsHeader;\n var onRenderDetailsHeader = React.useMemo(function () {\n return propsOnRenderDetailsHeader\n ? composeRenderFunction(propsOnRenderDetailsHeader, defaultOnRenderDetailsHeader)\n : defaultOnRenderDetailsHeader;\n }, [propsOnRenderDetailsHeader, defaultOnRenderDetailsHeader]);\n var propsOnRenderDetailsFooter = props.onRenderDetailsFooter;\n var onRenderDetailsFooter = React.useMemo(function () {\n return propsOnRenderDetailsFooter\n ? composeRenderFunction(propsOnRenderDetailsFooter, defaultOnRenderDetailsFooter)\n : defaultOnRenderDetailsFooter;\n }, [propsOnRenderDetailsFooter, defaultOnRenderDetailsFooter]);\n var detailsFooterProps = React.useMemo(function () {\n return {\n columns: adjustedColumns,\n groupNestingDepth: groupNestingDepth,\n selection: selection,\n selectionMode: selectionMode,\n viewport: viewport,\n checkboxVisibility: checkboxVisibility,\n indentWidth: indentWidth,\n cellStyleProps: cellStyleProps,\n };\n }, [\n adjustedColumns,\n groupNestingDepth,\n selection,\n selectionMode,\n viewport,\n checkboxVisibility,\n indentWidth,\n cellStyleProps,\n ]);\n var columnReorderOnDragEnd = columnReorderOptions && columnReorderOptions.onDragEnd;\n var onColumnDragEnd = React.useCallback(function (_a, event) {\n var dropLocation = _a.dropLocation;\n var finalDropLocation = ColumnDragEndLocation.outside;\n if (columnReorderOnDragEnd) {\n if (dropLocation && dropLocation !== ColumnDragEndLocation.header) {\n finalDropLocation = dropLocation;\n }\n else if (rootRef.current) {\n var clientRect = rootRef.current.getBoundingClientRect();\n if (event.clientX > clientRect.left &&\n event.clientX < clientRect.right &&\n event.clientY > clientRect.top &&\n event.clientY < clientRect.bottom) {\n finalDropLocation = ColumnDragEndLocation.surface;\n }\n }\n columnReorderOnDragEnd(finalDropLocation);\n }\n }, [columnReorderOnDragEnd, rootRef]);\n var columnReorderProps = React.useMemo(function () {\n if (columnReorderOptions) {\n return __assign(__assign({}, columnReorderOptions), { onColumnDragEnd: onColumnDragEnd });\n }\n }, [columnReorderOptions, onColumnDragEnd]);\n var rowCount = (isHeaderVisible ? 1 : 0) + GetGroupCount(groups) + (items ? items.length : 0);\n var colCount = (selectAllVisibility !== SelectAllVisibility.none ? 1 : 0) +\n (adjustedColumns ? adjustedColumns.length : 0) +\n (groups ? 1 : 0);\n var classNames = React.useMemo(function () {\n return getClassNames(styles, {\n theme: theme,\n compact: compact,\n isFixed: layoutMode === DetailsListLayoutMode.fixedColumns,\n isHorizontalConstrained: constrainMode === ConstrainMode.horizontalConstrained,\n className: className,\n });\n }, [styles, theme, compact, layoutMode, constrainMode, className]);\n var onRenderDetailsGroupFooter = groupProps && groupProps.onRenderFooter;\n var finalOnRenderDetailsGroupFooter = React.useMemo(function () {\n return onRenderDetailsGroupFooter\n ? function (groupFooterProps, defaultRender) {\n return onRenderDetailsGroupFooter(__assign(__assign({}, groupFooterProps), { columns: adjustedColumns, groupNestingDepth: groupNestingDepth,\n indentWidth: indentWidth,\n selection: selection,\n selectionMode: selectionMode,\n viewport: viewport,\n checkboxVisibility: checkboxVisibility,\n cellStyleProps: cellStyleProps }), defaultRender);\n }\n : undefined;\n }, [\n onRenderDetailsGroupFooter,\n adjustedColumns,\n groupNestingDepth,\n indentWidth,\n selection,\n selectionMode,\n viewport,\n checkboxVisibility,\n cellStyleProps,\n ]);\n var onRenderDetailsGroupHeader = groupProps && groupProps.onRenderHeader;\n var finalOnRenderDetailsGroupHeader = React.useMemo(function () {\n return onRenderDetailsGroupHeader\n ? function (groupHeaderProps, defaultRender) {\n var groupIndex = groupHeaderProps.groupIndex;\n var groupKey = groups && groupIndex !== undefined && groups[groupIndex] !== undefined ? groups[groupIndex].key : undefined;\n var totalRowCount = groupKey !== undefined && groupedDetailsListIndexMap[groupKey]\n ? groupedDetailsListIndexMap[groupKey].totalRowCount\n : 0;\n return onRenderDetailsGroupHeader(__assign(__assign({}, groupHeaderProps), { columns: adjustedColumns, groupNestingDepth: groupNestingDepth,\n indentWidth: indentWidth,\n selection: selection, selectionMode: checkboxVisibility !== CheckboxVisibility.hidden ? selectionMode : SelectionMode.none, viewport: viewport,\n checkboxVisibility: checkboxVisibility,\n cellStyleProps: cellStyleProps, ariaColSpan: adjustedColumns.length, ariaPosInSet: undefined, ariaSetSize: undefined, ariaRowCount: undefined, ariaRowIndex: groupIndex !== undefined ? totalRowCount + (isHeaderVisible ? 1 : 0) : undefined }), defaultRender);\n }\n : function (groupHeaderProps, defaultRender) {\n var groupIndex = groupHeaderProps.groupIndex;\n var groupKey = groups && groupIndex !== undefined && groups[groupIndex] !== undefined ? groups[groupIndex].key : undefined;\n var totalRowCount = groupKey !== undefined && groupedDetailsListIndexMap[groupKey]\n ? groupedDetailsListIndexMap[groupKey].totalRowCount\n : 0;\n return defaultRender(__assign(__assign({}, groupHeaderProps), { ariaColSpan: adjustedColumns.length, ariaPosInSet: undefined, ariaSetSize: undefined, ariaRowCount: undefined, ariaRowIndex: groupIndex !== undefined ? totalRowCount + (isHeaderVisible ? 1 : 0) : undefined }));\n };\n }, [\n onRenderDetailsGroupHeader,\n adjustedColumns,\n groups,\n groupNestingDepth,\n indentWidth,\n isHeaderVisible,\n selection,\n selectionMode,\n viewport,\n checkboxVisibility,\n cellStyleProps,\n groupedDetailsListIndexMap,\n ]);\n var finalGroupProps = React.useMemo(function () {\n var _a, _b, _c;\n return __assign(__assign({}, groupProps), { role: role === defaultRole ? 'rowgroup' : 'presentation', onRenderFooter: finalOnRenderDetailsGroupFooter, onRenderHeader: finalOnRenderDetailsGroupHeader, \n // pass through custom group header checkbox label\n headerProps: __assign(__assign({}, (_a = groupProps) === null || _a === void 0 ? void 0 : _a.headerProps), { selectAllButtonProps: __assign({ 'aria-label': checkButtonGroupAriaLabel }, (_c = (_b = groupProps) === null || _b === void 0 ? void 0 : _b.headerProps) === null || _c === void 0 ? void 0 : _c.selectAllButtonProps) }) });\n }, [groupProps, finalOnRenderDetailsGroupFooter, finalOnRenderDetailsGroupHeader, checkButtonGroupAriaLabel, role]);\n var sumColumnWidths = useConst(function () {\n return memoizeFunction(function (columns) {\n var totalWidth = 0;\n columns.forEach(function (column) { return (totalWidth += column.calculatedWidth || column.minWidth); });\n return totalWidth;\n });\n });\n var collapseAllVisibility = groupProps && groupProps.collapseAllVisibility;\n var rowWidth = React.useMemo(function () {\n return sumColumnWidths(adjustedColumns);\n }, [adjustedColumns, sumColumnWidths]);\n var onRenderCell = React.useCallback(function (nestingDepth, item, index, group) {\n var finalOnRenderRow = props.onRenderRow\n ? composeRenderFunction(props.onRenderRow, onRenderDefaultRow)\n : onRenderDefaultRow;\n var groupKey = group ? group.key : undefined;\n var numOfGroupHeadersBeforeItem = groupKey && groupedDetailsListIndexMap[groupKey]\n ? groupedDetailsListIndexMap[groupKey].numOfGroupHeadersBeforeItem\n : 0;\n var rowRole = role === defaultRole ? undefined : 'presentation';\n var rowProps = {\n item: item,\n itemIndex: index,\n flatIndexOffset: (isHeaderVisible ? 2 : 1) + numOfGroupHeadersBeforeItem,\n compact: compact,\n columns: adjustedColumns,\n groupNestingDepth: nestingDepth,\n id: rowId + \"-\" + index,\n selectionMode: selectionMode,\n selection: selection,\n onDidMount: onRowDidMount,\n onWillUnmount: onRowWillUnmount,\n onRenderItemColumn: onRenderItemColumn,\n getCellValueKey: getCellValueKey,\n eventsToRegister: eventsToRegister,\n dragDropEvents: dragDropEvents,\n dragDropHelper: dragDropHelper,\n viewport: viewport,\n checkboxVisibility: checkboxVisibility,\n collapseAllVisibility: collapseAllVisibility,\n getRowAriaLabel: getRowAriaLabel,\n getRowAriaDescribedBy: getRowAriaDescribedBy,\n checkButtonAriaLabel: checkButtonAriaLabel,\n checkboxCellClassName: checkboxCellClassName,\n useReducedRowRenderer: useReducedRowRenderer,\n indentWidth: indentWidth,\n cellStyleProps: cellStyleProps,\n onRenderDetailsCheckbox: onRenderCheckbox,\n enableUpdateAnimations: enableUpdateAnimations,\n rowWidth: rowWidth,\n useFastIcons: useFastIcons,\n role: rowRole,\n };\n if (!item) {\n if (onRenderMissingItem) {\n return onRenderMissingItem(index, rowProps);\n }\n return null;\n }\n return finalOnRenderRow(rowProps);\n }, [\n compact,\n adjustedColumns,\n selectionMode,\n selection,\n rowId,\n onRowDidMount,\n onRowWillUnmount,\n onRenderItemColumn,\n getCellValueKey,\n eventsToRegister,\n dragDropEvents,\n dragDropHelper,\n viewport,\n checkboxVisibility,\n collapseAllVisibility,\n getRowAriaLabel,\n getRowAriaDescribedBy,\n isHeaderVisible,\n checkButtonAriaLabel,\n checkboxCellClassName,\n useReducedRowRenderer,\n indentWidth,\n cellStyleProps,\n onRenderCheckbox,\n enableUpdateAnimations,\n useFastIcons,\n onRenderDefaultRow,\n onRenderMissingItem,\n props.onRenderRow,\n rowWidth,\n role,\n groupedDetailsListIndexMap,\n ]);\n var onRenderListCell = React.useCallback(function (nestingDepth) {\n return function (item, itemIndex) {\n return onRenderCell(nestingDepth, item, itemIndex);\n };\n }, [onRenderCell]);\n var isRightArrow = React.useCallback(function (event) {\n return event.which === getRTLSafeKeyCode(KeyCodes.right, theme);\n }, [theme]);\n var focusZoneProps = {\n componentRef: focusZoneRef,\n className: classNames.focusZone,\n direction: FocusZoneDirection.vertical,\n shouldEnterInnerZone: isRightArrow,\n onActiveElementChanged: onActiveRowChanged,\n shouldRaiseClicks: false,\n onBlur: onBlur,\n };\n var FinalGroupedList = groups && ((_a = groupProps) === null || _a === void 0 ? void 0 : _a.groupedListAs) ? composeComponentAs(groupProps.groupedListAs, GroupedList) : GroupedList;\n var list = groups ? (React.createElement(FinalGroupedList, { focusZoneProps: focusZoneProps, componentRef: groupedListRef, groups: groups, groupProps: finalGroupProps, items: items, onRenderCell: onRenderCell, role: \"presentation\", selection: selection, selectionMode: checkboxVisibility !== CheckboxVisibility.hidden ? selectionMode : SelectionMode.none, dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: rowElementEventMap, listProps: additionalListProps, onGroupExpandStateChanged: onGroupExpandStateChanged, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, getGroupHeight: getGroupHeight, compact: compact })) : (React.createElement(FocusZone, __assign({}, focusZoneProps),\n React.createElement(List, __assign({ ref: listRef, role: \"presentation\", items: items, onRenderCell: onRenderListCell(0), usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize }, additionalListProps))));\n var onHeaderKeyDown = React.useCallback(function (ev) {\n if (ev.which === KeyCodes.down) {\n if (focusZoneRef.current && focusZoneRef.current.focus()) {\n // select the first item in list after down arrow key event\n // only if nothing was selected; otherwise start with the already-selected item\n if (isSelectedOnFocus && selection.getSelectedIndices().length === 0) {\n selection.setIndexSelected(0, true, false);\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n }, [selection, focusZoneRef, isSelectedOnFocus]);\n var onContentKeyDown = React.useCallback(function (ev) {\n if (ev.which === KeyCodes.up && !ev.altKey) {\n if (headerRef.current && headerRef.current.focus()) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n }, [headerRef]);\n return (\n // If shouldApplyApplicationRole is true, role application will be applied to make arrow keys work\n // with JAWS.\n React.createElement(\"div\", __assign({ ref: rootRef, className: classNames.root, \"data-automationid\": \"DetailsList\", \"data-is-scrollable\": \"false\", \"aria-label\": ariaLabel }, (shouldApplyApplicationRole ? { role: 'application' } : {})),\n React.createElement(FocusRects, null),\n React.createElement(\"div\", { role: role, \"aria-label\": ariaLabelForGrid, \"aria-rowcount\": isPlaceholderData ? -1 : rowCount, \"aria-colcount\": colCount, \"aria-readonly\": \"true\", \"aria-busy\": isPlaceholderData },\n React.createElement(\"div\", { onKeyDown: onHeaderKeyDown, role: \"presentation\", className: classNames.headerWrapper }, isHeaderVisible &&\n onRenderDetailsHeader({\n componentRef: headerRef,\n selectionMode: selectionMode,\n layoutMode: layoutMode,\n selection: selection,\n columns: adjustedColumns,\n onColumnClick: onColumnHeaderClick,\n onColumnContextMenu: onColumnHeaderContextMenu,\n onColumnResized: onColumnResized,\n onColumnIsSizingChanged: onColumnIsSizingChanged,\n onColumnAutoResized: onColumnAutoResized,\n groupNestingDepth: groupNestingDepth,\n isAllCollapsed: isCollapsed,\n onToggleCollapseAll: onToggleCollapse,\n ariaLabel: ariaLabelForListHeader,\n ariaLabelForSelectAllCheckbox: ariaLabelForSelectAllCheckbox,\n ariaLabelForSelectionColumn: ariaLabelForSelectionColumn,\n selectAllVisibility: selectAllVisibility,\n collapseAllVisibility: groupProps && groupProps.collapseAllVisibility,\n viewport: viewport,\n columnReorderProps: columnReorderProps,\n minimumPixelsForDrag: minimumPixelsForDrag,\n cellStyleProps: cellStyleProps,\n checkboxVisibility: checkboxVisibility,\n indentWidth: indentWidth,\n onRenderDetailsCheckbox: onRenderCheckbox,\n rowWidth: sumColumnWidths(adjustedColumns),\n useFastIcons: useFastIcons,\n }, onRenderDetailsHeader)),\n React.createElement(\"div\", { onKeyDown: onContentKeyDown, role: \"presentation\", className: classNames.contentWrapper }, !disableSelectionZone ? (React.createElement(SelectionZone, __assign({ ref: selectionZoneRef, selection: selection, selectionPreservedOnEmptyClick: selectionPreservedOnEmptyClick, selectionMode: selectionMode, isSelectedOnFocus: isSelectedOnFocus, selectionClearedOnEscapePress: isSelectedOnFocus, toggleWithoutModifierPressed: !isSelectedOnFocus, onItemInvoked: onItemInvoked, onItemContextMenu: onItemContextMenu, enterModalOnTouch: enterModalSelectionOnTouch }, (selectionZoneProps || {})), list)) : (list)),\n onRenderDetailsFooter(__assign({}, detailsFooterProps)))));\n};\nvar DetailsListBase = /** @class */ (function (_super) {\n __extends(DetailsListBase, _super);\n function DetailsListBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._header = React.createRef();\n _this._groupedList = React.createRef();\n _this._list = React.createRef();\n _this._focusZone = React.createRef();\n _this._selectionZone = React.createRef();\n _this._onRenderRow = function (props, defaultRender) {\n return React.createElement(DetailsRow, __assign({}, props));\n };\n _this._getDerivedStateFromProps = function (nextProps, previousState) {\n var _a = _this.props, checkboxVisibility = _a.checkboxVisibility, items = _a.items, setKey = _a.setKey, _b = _a.selectionMode, selectionMode = _b === void 0 ? _this._selection.mode : _b, columns = _a.columns, viewport = _a.viewport, compact = _a.compact, dragDropEvents = _a.dragDropEvents;\n var _c = (_this.props.groupProps || {}).isAllGroupsCollapsed, isAllGroupsCollapsed = _c === void 0 ? undefined : _c;\n var newViewportWidth = (nextProps.viewport && nextProps.viewport.width) || 0;\n var oldViewportWidth = (viewport && viewport.width) || 0;\n var shouldResetSelection = nextProps.setKey !== setKey || nextProps.setKey === undefined;\n var shouldForceUpdates = false;\n if (nextProps.layoutMode !== _this.props.layoutMode) {\n shouldForceUpdates = true;\n }\n var nextState = previousState;\n if (shouldResetSelection) {\n _this._initialFocusedIndex = nextProps.initialFocusedIndex;\n // reset focusedItemIndex when setKey changes\n nextState = __assign(__assign({}, nextState), { focusedItemIndex: _this._initialFocusedIndex !== undefined ? _this._initialFocusedIndex : -1 });\n }\n if (!_this.props.disableSelectionZone && nextProps.items !== items) {\n _this._selection.setItems(nextProps.items, shouldResetSelection);\n }\n if (nextProps.checkboxVisibility !== checkboxVisibility ||\n nextProps.columns !== columns ||\n newViewportWidth !== oldViewportWidth ||\n nextProps.compact !== compact) {\n shouldForceUpdates = true;\n }\n nextState = __assign(__assign({}, nextState), _this._adjustColumns(nextProps, nextState, true));\n if (nextProps.selectionMode !== selectionMode) {\n shouldForceUpdates = true;\n }\n if (isAllGroupsCollapsed === undefined &&\n nextProps.groupProps &&\n nextProps.groupProps.isAllGroupsCollapsed !== undefined) {\n nextState = __assign(__assign({}, nextState), { isCollapsed: nextProps.groupProps.isAllGroupsCollapsed, isSomeGroupExpanded: !nextProps.groupProps.isAllGroupsCollapsed });\n }\n if (nextProps.dragDropEvents !== dragDropEvents) {\n _this._dragDropHelper && _this._dragDropHelper.dispose();\n _this._dragDropHelper = nextProps.dragDropEvents\n ? new DragDropHelper({\n selection: _this._selection,\n minimumPixelsForDrag: nextProps.minimumPixelsForDrag,\n })\n : undefined;\n shouldForceUpdates = true;\n }\n if (shouldForceUpdates) {\n nextState = __assign(__assign({}, nextState), { version: {} });\n }\n return nextState;\n };\n _this._onGroupExpandStateChanged = function (isSomeGroupExpanded) {\n _this.setState({ isSomeGroupExpanded: isSomeGroupExpanded });\n };\n _this._onColumnIsSizingChanged = function (column, isSizing) {\n _this.setState({ isSizing: isSizing });\n };\n _this._onRowDidMount = function (row) {\n var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;\n var itemKey = _this._getItemKey(item, itemIndex);\n _this._activeRows[itemKey] = row; // this is used for column auto resize\n _this._setFocusToRowIfPending(row);\n var onRowDidMount = _this.props.onRowDidMount;\n if (onRowDidMount) {\n onRowDidMount(item, itemIndex);\n }\n };\n _this._onRowWillUnmount = function (row) {\n var onRowWillUnmount = _this.props.onRowWillUnmount;\n var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;\n var itemKey = _this._getItemKey(item, itemIndex);\n delete _this._activeRows[itemKey];\n if (onRowWillUnmount) {\n onRowWillUnmount(item, itemIndex);\n }\n };\n _this._onToggleCollapse = function (collapsed) {\n _this.setState({\n isCollapsed: collapsed,\n });\n if (_this._groupedList.current) {\n _this._groupedList.current.toggleCollapseAll(collapsed);\n }\n };\n _this._onColumnResized = function (resizingColumn, newWidth, resizingColumnIndex) {\n var newCalculatedWidth = Math.max(resizingColumn.minWidth || MIN_COLUMN_WIDTH, newWidth);\n if (_this.props.onColumnResize) {\n _this.props.onColumnResize(resizingColumn, newCalculatedWidth, resizingColumnIndex);\n }\n _this._rememberCalculatedWidth(resizingColumn, newCalculatedWidth);\n _this.setState(__assign(__assign({}, _this._adjustColumns(_this.props, _this.state, true, resizingColumnIndex)), { version: {} }));\n };\n /**\n * Callback function when double clicked on the details header column resizer\n * which will measure the column cells of all the active rows and resize the\n * column to the max cell width.\n *\n * @param column - double clicked column definition\n * @param columnIndex - double clicked column index\n * TODO: min width 100 should be changed to const value and should be consistent with the\n * value used on _onSizerMove method in DetailsHeader\n */\n _this._onColumnAutoResized = function (column, columnIndex) {\n var max = 0;\n var count = 0;\n var totalCount = Object.keys(_this._activeRows).length;\n for (var key in _this._activeRows) {\n if (_this._activeRows.hasOwnProperty(key)) {\n var currentRow = _this._activeRows[key];\n currentRow.measureCell(columnIndex, function (width) {\n max = Math.max(max, width);\n count++;\n if (count === totalCount) {\n _this._onColumnResized(column, max, columnIndex);\n }\n });\n }\n }\n };\n /**\n * Call back function when an element in FocusZone becomes active. It will translate it into item\n * and call onActiveItemChanged callback if specified.\n *\n * @param row - element that became active in Focus Zone\n * @param focus - event from Focus Zone\n */\n _this._onActiveRowChanged = function (el, ev) {\n var _a = _this.props, items = _a.items, onActiveItemChanged = _a.onActiveItemChanged;\n if (!el) {\n return;\n }\n // Check and assign index only if the event was raised from any DetailsRow element\n if (el.getAttribute('data-item-index')) {\n var index = Number(el.getAttribute('data-item-index'));\n if (index >= 0) {\n if (onActiveItemChanged) {\n onActiveItemChanged(items[index], index, ev);\n }\n _this.setState({\n focusedItemIndex: index,\n });\n }\n }\n };\n _this._onBlur = function (event) {\n _this.setState({\n focusedItemIndex: -1,\n });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._activeRows = {};\n _this._columnOverrides = {};\n _this.state = {\n focusedItemIndex: -1,\n lastWidth: 0,\n adjustedColumns: _this._getAdjustedColumns(props, undefined),\n isSizing: false,\n isCollapsed: props.groupProps && props.groupProps.isAllGroupsCollapsed,\n isSomeGroupExpanded: props.groupProps && !props.groupProps.isAllGroupsCollapsed,\n version: {},\n getDerivedStateFromProps: _this._getDerivedStateFromProps,\n };\n _this._selection =\n props.selection ||\n new Selection({\n onSelectionChanged: undefined,\n getKey: props.getKey,\n selectionMode: props.selectionMode,\n });\n if (!_this.props.disableSelectionZone) {\n _this._selection.setItems(props.items, false);\n }\n _this._dragDropHelper = props.dragDropEvents\n ? new DragDropHelper({\n selection: _this._selection,\n minimumPixelsForDrag: props.minimumPixelsForDrag,\n })\n : undefined;\n _this._initialFocusedIndex = props.initialFocusedIndex;\n return _this;\n }\n DetailsListBase.getDerivedStateFromProps = function (nextProps, previousState) {\n return previousState.getDerivedStateFromProps(nextProps, previousState);\n };\n DetailsListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n this._list.current && this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n this._groupedList.current && this._groupedList.current.scrollToIndex(index, measureItem, scrollToMode);\n };\n DetailsListBase.prototype.focusIndex = function (index, forceIntoFirstElement, measureItem, scrollToMode) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n var item = this.props.items[index];\n if (item) {\n this.scrollToIndex(index, measureItem, scrollToMode);\n var itemKey = this._getItemKey(item, index);\n var row = this._activeRows[itemKey];\n if (row) {\n this._setFocusToRow(row, forceIntoFirstElement);\n }\n }\n };\n DetailsListBase.prototype.getStartItemIndexInView = function () {\n if (this._list && this._list.current) {\n return this._list.current.getStartItemIndexInView();\n }\n else if (this._groupedList && this._groupedList.current) {\n return this._groupedList.current.getStartItemIndexInView();\n }\n return 0;\n };\n DetailsListBase.prototype.componentWillUnmount = function () {\n if (this._dragDropHelper) {\n // TODO If the DragDropHelper was passed via props, this will dispose it, which is incorrect behavior.\n this._dragDropHelper.dispose();\n }\n this._async.dispose();\n };\n DetailsListBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._notifyColumnsResized();\n if (this._initialFocusedIndex !== undefined) {\n var item = this.props.items[this._initialFocusedIndex];\n if (item) {\n var itemKey = this._getItemKey(item, this._initialFocusedIndex);\n var row = this._activeRows[itemKey];\n if (row) {\n this._setFocusToRowIfPending(row);\n }\n }\n }\n if (this.props.items !== prevProps.items &&\n this.props.items.length > 0 &&\n this.state.focusedItemIndex !== -1 &&\n !elementContains(this._root.current, document.activeElement, false)) {\n // Item set has changed and previously-focused item is gone.\n // Set focus to item at index of previously-focused item if it is in range,\n // else set focus to the last item.\n var index = this.state.focusedItemIndex < this.props.items.length\n ? this.state.focusedItemIndex\n : this.props.items.length - 1;\n var item = this.props.items[index];\n var itemKey = this._getItemKey(item, this.state.focusedItemIndex);\n var row = this._activeRows[itemKey];\n if (row) {\n this._setFocusToRow(row);\n }\n else {\n this._initialFocusedIndex = index;\n }\n }\n if (this.props.onDidUpdate) {\n this.props.onDidUpdate(this);\n }\n };\n DetailsListBase.prototype.render = function () {\n return (React.createElement(DetailsListInner, __assign({}, this.props, this.state, { selection: this._selection, dragDropHelper: this._dragDropHelper, rootRef: this._root, listRef: this._list, groupedListRef: this._groupedList, focusZoneRef: this._focusZone, headerRef: this._header, selectionZoneRef: this._selectionZone, onGroupExpandStateChanged: this._onGroupExpandStateChanged, onColumnIsSizingChanged: this._onColumnIsSizingChanged, onRowDidMount: this._onRowDidMount, onRowWillUnmount: this._onRowWillUnmount, onColumnResized: this._onColumnResized, onColumnAutoResized: this._onColumnAutoResized, onToggleCollapse: this._onToggleCollapse, onActiveRowChanged: this._onActiveRowChanged, onBlur: this._onBlur, onRenderDefaultRow: this._onRenderRow })));\n };\n DetailsListBase.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this._forceListUpdates();\n };\n DetailsListBase.prototype._getGroupNestingDepth = function () {\n var groups = this.props.groups;\n var level = 0;\n var groupsInLevel = groups;\n while (groupsInLevel && groupsInLevel.length > 0) {\n level++;\n groupsInLevel = groupsInLevel[0].children;\n }\n return level;\n };\n DetailsListBase.prototype._setFocusToRowIfPending = function (row) {\n var itemIndex = row.props.itemIndex;\n if (this._initialFocusedIndex !== undefined && itemIndex === this._initialFocusedIndex) {\n this._setFocusToRow(row);\n delete this._initialFocusedIndex;\n }\n };\n DetailsListBase.prototype._setFocusToRow = function (row, forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (this._selectionZone.current) {\n this._selectionZone.current.ignoreNextFocus();\n }\n this._async.setTimeout(function () {\n row.focus(forceIntoFirstElement);\n }, 0);\n };\n DetailsListBase.prototype._forceListUpdates = function () {\n if (this._groupedList.current) {\n this._groupedList.current.forceUpdate();\n }\n if (this._list.current) {\n this._list.current.forceUpdate();\n }\n };\n DetailsListBase.prototype._notifyColumnsResized = function () {\n this.state.adjustedColumns.forEach(function (column) {\n if (column.onColumnResize) {\n column.onColumnResize(column.currentWidth);\n }\n });\n };\n DetailsListBase.prototype._adjustColumns = function (newProps, previousState, forceUpdate, resizingColumnIndex) {\n var adjustedColumns = this._getAdjustedColumns(newProps, previousState, forceUpdate, resizingColumnIndex);\n var viewport = this.props.viewport;\n var viewportWidth = viewport && viewport.width ? viewport.width : 0;\n return __assign(__assign({}, previousState), { adjustedColumns: adjustedColumns, lastWidth: viewportWidth });\n };\n /** Returns adjusted columns, given the viewport size and layout mode. */\n DetailsListBase.prototype._getAdjustedColumns = function (newProps, previousState, forceUpdate, resizingColumnIndex) {\n var _this = this;\n var newItems = newProps.items, layoutMode = newProps.layoutMode, selectionMode = newProps.selectionMode, viewport = newProps.viewport;\n var viewportWidth = viewport && viewport.width ? viewport.width : 0;\n var newColumns = newProps.columns;\n var columns = this.props ? this.props.columns : [];\n var lastWidth = previousState ? previousState.lastWidth : -1;\n var lastSelectionMode = previousState ? previousState.lastSelectionMode : undefined;\n if (!forceUpdate &&\n lastWidth === viewportWidth &&\n lastSelectionMode === selectionMode &&\n (!columns || newColumns === columns)) {\n return newColumns || [];\n }\n newColumns = newColumns || buildColumns(newItems, true);\n var adjustedColumns;\n if (layoutMode === DetailsListLayoutMode.fixedColumns) {\n adjustedColumns = this._getFixedColumns(newColumns, viewportWidth, newProps);\n // Preserve adjusted column calculated widths.\n adjustedColumns.forEach(function (column) {\n _this._rememberCalculatedWidth(column, column.calculatedWidth);\n });\n }\n else {\n adjustedColumns = this._getJustifiedColumns(newColumns, viewportWidth, newProps);\n adjustedColumns.forEach(function (column) {\n _this._getColumnOverride(column.key).currentWidth = column.calculatedWidth;\n });\n }\n return adjustedColumns;\n };\n /** Builds a set of columns based on the given columns mixed with the current overrides. */\n DetailsListBase.prototype._getFixedColumns = function (newColumns, viewportWidth, props) {\n var _this = this;\n var _a = this.props, _b = _a.selectionMode, selectionMode = _b === void 0 ? this._selection.mode : _b, checkboxVisibility = _a.checkboxVisibility, flexMargin = _a.flexMargin, skipViewportMeasures = _a.skipViewportMeasures;\n var remainingWidth = viewportWidth - (flexMargin || 0);\n var sumProportionalWidth = 0;\n newColumns.forEach(function (col) {\n if (skipViewportMeasures || !col.flexGrow) {\n remainingWidth -= col.maxWidth || col.minWidth || MIN_COLUMN_WIDTH;\n }\n else {\n remainingWidth -= col.minWidth || MIN_COLUMN_WIDTH;\n sumProportionalWidth += col.flexGrow;\n }\n remainingWidth -= getPaddedWidth(col, props, true);\n });\n var rowCheckWidth = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden ? CHECKBOX_WIDTH : 0;\n var groupExpandWidth = this._getGroupNestingDepth() * GROUP_EXPAND_WIDTH;\n remainingWidth -= rowCheckWidth + groupExpandWidth;\n var widthFraction = remainingWidth / sumProportionalWidth;\n // Shrinks proportional columns to their max width and adds the remaining width to distribute to other columns.\n if (!skipViewportMeasures) {\n newColumns.forEach(function (column) {\n var newColumn = __assign(__assign({}, column), _this._columnOverrides[column.key]);\n if (newColumn.flexGrow && newColumn.maxWidth) {\n var fullWidth = newColumn.flexGrow * widthFraction + newColumn.minWidth;\n var shrinkWidth = fullWidth - newColumn.maxWidth;\n if (shrinkWidth > 0) {\n remainingWidth += shrinkWidth;\n sumProportionalWidth -= (shrinkWidth / (fullWidth - newColumn.minWidth)) * newColumn.flexGrow;\n }\n }\n });\n }\n widthFraction = remainingWidth > 0 ? remainingWidth / sumProportionalWidth : 0;\n return newColumns.map(function (column) {\n var newColumn = __assign(__assign({}, column), _this._columnOverrides[column.key]);\n // Delay computation until viewport width is available.\n if (!skipViewportMeasures && newColumn.flexGrow && remainingWidth <= 0) {\n return newColumn;\n }\n if (!newColumn.calculatedWidth) {\n if (!skipViewportMeasures && newColumn.flexGrow) {\n // Assigns the proportion of the remaining extra width after all columns have met minimum widths.\n newColumn.calculatedWidth = newColumn.minWidth + newColumn.flexGrow * widthFraction;\n newColumn.calculatedWidth = Math.min(newColumn.calculatedWidth, newColumn.maxWidth || Number.MAX_VALUE);\n }\n else {\n newColumn.calculatedWidth = newColumn.maxWidth || newColumn.minWidth || MIN_COLUMN_WIDTH;\n }\n }\n return newColumn;\n });\n };\n /** Builds a set of columns to fix within the viewport width. */\n DetailsListBase.prototype._getJustifiedColumns = function (newColumns, viewportWidth, props) {\n var _this = this;\n var _a = props.selectionMode, selectionMode = _a === void 0 ? this._selection.mode : _a, checkboxVisibility = props.checkboxVisibility;\n var rowCheckWidth = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden ? CHECKBOX_WIDTH : 0;\n var groupExpandWidth = this._getGroupNestingDepth() * GROUP_EXPAND_WIDTH;\n var totalWidth = 0; // offset because we have one less inner padding.\n var minimumWidth = 0;\n var availableWidth = viewportWidth - (rowCheckWidth + groupExpandWidth);\n var adjustedColumns = newColumns.map(function (column, i) {\n var baseColumn = __assign(__assign({}, column), { calculatedWidth: column.minWidth || MIN_COLUMN_WIDTH });\n var newColumn = __assign(__assign({}, baseColumn), _this._columnOverrides[column.key]);\n // eslint-disable-next-line deprecation/deprecation\n if (!(baseColumn.isCollapsible || baseColumn.isCollapsable)) {\n minimumWidth += getPaddedWidth(baseColumn, props);\n }\n totalWidth += getPaddedWidth(newColumn, props);\n return newColumn;\n });\n if (minimumWidth > availableWidth) {\n return adjustedColumns;\n }\n var lastIndex = adjustedColumns.length - 1;\n // Shrink or remove collapsable columns.\n while (lastIndex >= 0 && totalWidth > availableWidth) {\n var column = adjustedColumns[lastIndex];\n var minWidth = column.minWidth || MIN_COLUMN_WIDTH;\n var overflowWidth = totalWidth - availableWidth;\n // eslint-disable-next-line deprecation/deprecation\n if (column.calculatedWidth - minWidth >= overflowWidth || !(column.isCollapsible || column.isCollapsable)) {\n var originalWidth = column.calculatedWidth;\n column.calculatedWidth = Math.max(column.calculatedWidth - overflowWidth, minWidth);\n totalWidth -= originalWidth - column.calculatedWidth;\n }\n else {\n totalWidth -= getPaddedWidth(column, props);\n adjustedColumns.splice(lastIndex, 1);\n }\n lastIndex--;\n }\n // Then expand columns starting at the beginning, until we've filled the width.\n for (var i = 0; i < adjustedColumns.length && totalWidth < availableWidth; i++) {\n var column = adjustedColumns[i];\n var isLast = i === adjustedColumns.length - 1;\n var overrides = this._columnOverrides[column.key];\n if (overrides && overrides.calculatedWidth && !isLast) {\n continue;\n }\n var spaceLeft = availableWidth - totalWidth;\n var increment = void 0;\n if (isLast) {\n increment = spaceLeft;\n }\n else {\n var maxWidth = column.maxWidth;\n var minWidth = column.minWidth || maxWidth || MIN_COLUMN_WIDTH;\n increment = maxWidth ? Math.min(spaceLeft, maxWidth - minWidth) : spaceLeft;\n }\n column.calculatedWidth = column.calculatedWidth + increment;\n totalWidth += increment;\n }\n return adjustedColumns;\n };\n DetailsListBase.prototype._rememberCalculatedWidth = function (column, newCalculatedWidth) {\n var overrides = this._getColumnOverride(column.key);\n overrides.calculatedWidth = newCalculatedWidth;\n overrides.currentWidth = newCalculatedWidth;\n };\n DetailsListBase.prototype._getColumnOverride = function (key) {\n return (this._columnOverrides[key] = this._columnOverrides[key] || {});\n };\n DetailsListBase.prototype._getItemKey = function (item, itemIndex) {\n var getKey = this.props.getKey;\n var itemKey = undefined;\n if (item) {\n itemKey = item.key;\n }\n if (getKey) {\n itemKey = getKey(item, itemIndex);\n }\n if (!itemKey) {\n itemKey = itemIndex;\n }\n return itemKey;\n };\n DetailsListBase.defaultProps = {\n layoutMode: DetailsListLayoutMode.justified,\n selectionMode: SelectionMode.multiple,\n constrainMode: ConstrainMode.horizontalConstrained,\n checkboxVisibility: CheckboxVisibility.onHover,\n isHeaderVisible: true,\n compact: false,\n useFastIcons: true,\n };\n DetailsListBase = __decorate([\n withViewport\n ], DetailsListBase);\n return DetailsListBase;\n}(React.Component));\nexport { DetailsListBase };\nexport function buildColumns(items, canResizeColumns, onColumnClick, sortedColumnKey, isSortedDescending, groupedColumnKey, isMultiline) {\n var columns = [];\n if (items && items.length) {\n var firstItem = items[0];\n for (var propName in firstItem) {\n if (firstItem.hasOwnProperty(propName)) {\n columns.push({\n key: propName,\n name: propName,\n fieldName: propName,\n minWidth: MIN_COLUMN_WIDTH,\n maxWidth: 300,\n isCollapsable: !!columns.length,\n isCollapsible: !!columns.length,\n isMultiline: isMultiline === undefined ? false : isMultiline,\n isSorted: sortedColumnKey === propName,\n isSortedDescending: !!isSortedDescending,\n isRowHeader: false,\n columnActionsMode: ColumnActionsMode.clickable,\n isResizable: canResizeColumns,\n onColumnClick: onColumnClick,\n isGrouped: groupedColumnKey === propName,\n });\n }\n }\n }\n return columns;\n}\nfunction getPaddedWidth(column, props, paddingOnly) {\n var _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n return ((paddingOnly ? 0 : column.calculatedWidth) +\n cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0));\n}\nfunction getGroupNestingDepth(groups) {\n var level = 0;\n var groupsInLevel = groups;\n while (groupsInLevel && groupsInLevel.length > 0) {\n level++;\n groupsInLevel = groupsInLevel[0].children;\n }\n return level;\n}\nfunction useGroupedDetailsListIndexMap(groups) {\n return React.useMemo(function () {\n var indexMap = {};\n if (groups) {\n var rowCount = 1;\n var numGroupHeaders = 1;\n for (var _i = 0, groups_1 = groups; _i < groups_1.length; _i++) {\n var group = groups_1[_i];\n var key = group.key;\n indexMap[key] = { numOfGroupHeadersBeforeItem: numGroupHeaders, totalRowCount: rowCount };\n numGroupHeaders++;\n rowCount += group.count + 1;\n }\n }\n return indexMap;\n }, [groups]);\n}\n//# sourceMappingURL=DetailsList.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsListBase } from './DetailsList.base';\nimport { getStyles } from './DetailsList.styles';\nexport var DetailsList = styled(DetailsListBase, getStyles, undefined, {\n scope: 'DetailsList',\n});\n//# sourceMappingURL=DetailsList.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DetailsList',\n compact: 'ms-DetailsList--Compact',\n contentWrapper: 'ms-DetailsList-contentWrapper',\n headerWrapper: 'ms-DetailsList-headerWrapper',\n isFixed: 'is-fixed',\n isHorizontalConstrained: 'is-horizontalConstrained',\n listCell: 'ms-List-cell',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, className = props.className, isHorizontalConstrained = props.isHorizontalConstrained, compact = props.compact, isFixed = props.isFixed;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.small,\n {\n position: 'relative',\n color: semanticColors.listText,\n selectors: (_a = {},\n _a[\"& .\" + classNames.listCell] = {\n minHeight: 38,\n wordBreak: 'break-word',\n },\n _a),\n },\n isFixed && classNames.isFixed,\n compact && [\n classNames.compact,\n {\n selectors: (_b = {},\n _b[\".\" + classNames.listCell] = {\n minHeight: 32,\n },\n _b),\n },\n ],\n isHorizontalConstrained && [\n classNames.isHorizontalConstrained,\n {\n overflowX: 'auto',\n overflowY: 'visible',\n WebkitOverflowScrolling: 'touch',\n },\n ],\n className,\n ],\n focusZone: [\n {\n display: 'inline-block',\n minWidth: '100%',\n minHeight: 1,\n },\n ],\n headerWrapper: classNames.headerWrapper,\n contentWrapper: classNames.contentWrapper,\n };\n};\n//# sourceMappingURL=DetailsList.styles.js.map","/**\n * Enum to describe how a particular column header behaves.\n * This is used to to specify the property `IColumn.columnActionsMode`.\n * If `IColumn.columnActionsMode` is undefined, it's equivalent to `ColumnActionsMode.clickable`.\n * {@docCategory DetailsList}\n */\nexport var ColumnActionsMode;\n(function (ColumnActionsMode) {\n /** Renders the column header as disabled. */\n ColumnActionsMode[ColumnActionsMode[\"disabled\"] = 0] = \"disabled\";\n /** Renders the column header as clickable. Default value. */\n ColumnActionsMode[ColumnActionsMode[\"clickable\"] = 1] = \"clickable\";\n /** Renders the column header as clickable and displays the dropdown chevron. */\n ColumnActionsMode[ColumnActionsMode[\"hasDropdown\"] = 2] = \"hasDropdown\";\n})(ColumnActionsMode || (ColumnActionsMode = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var ConstrainMode;\n(function (ConstrainMode) {\n /** Lets the content grow which allows the page to manage scrolling. */\n ConstrainMode[ConstrainMode[\"unconstrained\"] = 0] = \"unconstrained\";\n /** Constrains the list to the given layout space. */\n ConstrainMode[ConstrainMode[\"horizontalConstrained\"] = 1] = \"horizontalConstrained\";\n})(ConstrainMode || (ConstrainMode = {}));\n/**\n * Enum to describe where the column has been dropped, after starting the drag\n * {@docCategory DetailsList}\n */\nexport var ColumnDragEndLocation;\n(function (ColumnDragEndLocation) {\n /** Drag ended outside of current list */\n ColumnDragEndLocation[ColumnDragEndLocation[\"outside\"] = 0] = \"outside\";\n /** Drag ended within current list */\n ColumnDragEndLocation[ColumnDragEndLocation[\"surface\"] = 1] = \"surface\";\n /** Drag ended on header */\n ColumnDragEndLocation[ColumnDragEndLocation[\"header\"] = 2] = \"header\";\n})(ColumnDragEndLocation || (ColumnDragEndLocation = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var DetailsListLayoutMode;\n(function (DetailsListLayoutMode) {\n /**\n * Lets the user resize columns and makes not attempt to fit them.\n */\n DetailsListLayoutMode[DetailsListLayoutMode[\"fixedColumns\"] = 0] = \"fixedColumns\";\n /**\n * Manages which columns are visible, tries to size them according to their min/max rules and drops\n * off columns that can't fit and have isCollapsible set.\n */\n DetailsListLayoutMode[DetailsListLayoutMode[\"justified\"] = 1] = \"justified\";\n})(DetailsListLayoutMode || (DetailsListLayoutMode = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var CheckboxVisibility;\n(function (CheckboxVisibility) {\n /** Visible on hover. */\n CheckboxVisibility[CheckboxVisibility[\"onHover\"] = 0] = \"onHover\";\n /** Visible always. */\n CheckboxVisibility[CheckboxVisibility[\"always\"] = 1] = \"always\";\n /** Hide checkboxes. */\n CheckboxVisibility[CheckboxVisibility[\"hidden\"] = 2] = \"hidden\";\n})(CheckboxVisibility || (CheckboxVisibility = {}));\n//# sourceMappingURL=DetailsList.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, EventGroup, css, shallowCompare, getNativeProps, divProperties, } from '../../Utilities';\nimport { CheckboxVisibility } from './DetailsList.types';\nimport { DetailsRowCheck } from './DetailsRowCheck';\nimport { GroupSpacer } from '../GroupedList/GroupSpacer';\nimport { DetailsRowFields } from './DetailsRowFields';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { SelectionMode, SELECTION_CHANGE } from '../../utilities/selection/interfaces';\nimport { CollapseAllVisibility } from '../../GroupedList';\nimport { classNamesFunction, getId } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';\nvar NO_COLUMNS = [];\nvar DetailsRowBase = /** @class */ (function (_super) {\n __extends(DetailsRowBase, _super);\n function DetailsRowBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._cellMeasurer = React.createRef();\n _this._focusZone = React.createRef();\n _this._onSelectionChanged = function () {\n var selectionState = getSelectionState(_this.props);\n if (!shallowCompare(selectionState, _this.state.selectionState)) {\n _this.setState({\n selectionState: selectionState,\n });\n }\n };\n /**\n * update isDropping state based on the input value, which is used to change style during drag and drop\n *\n * when change to true, that means drag enter. we will add default dropping class name\n * or the custom dropping class name (return result from onDragEnter) to the root elemet.\n *\n * when change to false, that means drag leave. we will remove the dropping class name from root element.\n *\n * @param newValue - New isDropping state value\n * @param event - The event trigger dropping state change which can be dragenter, dragleave etc\n */\n _this._updateDroppingState = function (newValue, event) {\n var isDropping = _this.state.isDropping;\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, item = _a.item;\n if (!newValue) {\n if (dragDropEvents.onDragLeave) {\n dragDropEvents.onDragLeave(item, event);\n }\n }\n else if (dragDropEvents.onDragEnter) {\n _this._droppingClassNames = dragDropEvents.onDragEnter(item, event);\n }\n if (isDropping !== newValue) {\n _this.setState({ isDropping: newValue });\n }\n };\n initializeComponentRef(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n selectionState: getSelectionState(props),\n columnMeasureInfo: undefined,\n isDropping: false,\n };\n _this._droppingClassNames = '';\n return _this;\n }\n DetailsRowBase.getDerivedStateFromProps = function (nextProps, previousState) {\n return __assign(__assign({}, previousState), { selectionState: getSelectionState(nextProps) });\n };\n DetailsRowBase.prototype.componentDidMount = function () {\n var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection, item = _a.item, onDidMount = _a.onDidMount;\n if (dragDropHelper && this._root.current) {\n this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getRowDragDropOptions());\n }\n if (selection) {\n this._events.on(selection, SELECTION_CHANGE, this._onSelectionChanged);\n }\n if (onDidMount && item) {\n // If the item appears later, we should wait for it before calling this method.\n this._onDidMountCalled = true;\n onDidMount(this);\n }\n };\n DetailsRowBase.prototype.componentDidUpdate = function (previousProps) {\n var state = this.state;\n var _a = this.props, item = _a.item, onDidMount = _a.onDidMount;\n var columnMeasureInfo = state.columnMeasureInfo;\n if (this.props.itemIndex !== previousProps.itemIndex ||\n this.props.item !== previousProps.item ||\n this.props.dragDropHelper !== previousProps.dragDropHelper) {\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n if (this.props.dragDropHelper && this._root.current) {\n this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getRowDragDropOptions());\n }\n }\n if (columnMeasureInfo && columnMeasureInfo.index >= 0 && this._cellMeasurer.current) {\n var newWidth = this._cellMeasurer.current.getBoundingClientRect().width;\n columnMeasureInfo.onMeasureDone(newWidth);\n this.setState({\n columnMeasureInfo: undefined,\n });\n }\n if (item && onDidMount && !this._onDidMountCalled) {\n this._onDidMountCalled = true;\n onDidMount(this);\n }\n };\n DetailsRowBase.prototype.componentWillUnmount = function () {\n var _a = this.props, item = _a.item, onWillUnmount = _a.onWillUnmount;\n // Only call the onWillUnmount callback if we have an item.\n if (onWillUnmount && item) {\n onWillUnmount(this);\n }\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n this._events.dispose();\n };\n DetailsRowBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n if (this.props.useReducedRowRenderer) {\n var newSelectionState = getSelectionState(nextProps);\n if (this.state.selectionState.isSelected !== newSelectionState.isSelected) {\n return true;\n }\n return !shallowCompare(this.props, nextProps);\n }\n else {\n return true;\n }\n };\n DetailsRowBase.prototype.render = function () {\n var _a = this.props, className = _a.className, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, dragDropEvents = _a.dragDropEvents, item = _a.item, itemIndex = _a.itemIndex, _c = _a.flatIndexOffset, flatIndexOffset = _c === void 0 ? 2 : _c, id = _a.id, _d = _a.onRenderCheck, onRenderCheck = _d === void 0 ? this._onRenderCheck : _d, onRenderDetailsCheckbox = _a.onRenderDetailsCheckbox, onRenderItemColumn = _a.onRenderItemColumn, getCellValueKey = _a.getCellValueKey, selectionMode = _a.selectionMode, _e = _a.rowWidth, rowWidth = _e === void 0 ? 0 : _e, checkboxVisibility = _a.checkboxVisibility, getRowAriaLabel = _a.getRowAriaLabel, getRowAriaDescription = _a.getRowAriaDescription, getRowAriaDescribedBy = _a.getRowAriaDescribedBy, checkButtonAriaLabel = _a.checkButtonAriaLabel, checkboxCellClassName = _a.checkboxCellClassName, \n /** Alias rowFieldsAs as RowFields and default to DetailsRowFields if rowFieldsAs does not exist */\n _f = _a.rowFieldsAs, \n /** Alias rowFieldsAs as RowFields and default to DetailsRowFields if rowFieldsAs does not exist */\n RowFields = _f === void 0 ? DetailsRowFields : _f, selection = _a.selection, indentWidth = _a.indentWidth, enableUpdateAnimations = _a.enableUpdateAnimations, compact = _a.compact, theme = _a.theme, styles = _a.styles, cellsByColumn = _a.cellsByColumn, groupNestingDepth = _a.groupNestingDepth, _g = _a.useFastIcons, useFastIcons = _g === void 0 ? true : _g, cellStyleProps = _a.cellStyleProps, _h = _a.disabled, disabled = _h === void 0 ? false : _h, group = _a.group;\n var _j = this.state, columnMeasureInfo = _j.columnMeasureInfo, isDropping = _j.isDropping;\n var _k = this.state.selectionState, _l = _k.isSelected, isSelected = _l === void 0 ? false : _l, _m = _k.isSelectionModal, isSelectionModal = _m === void 0 ? false : _m;\n var isDraggable = dragDropEvents ? !!(dragDropEvents.canDrag && dragDropEvents.canDrag(item)) : undefined;\n var droppingClassName = isDropping ? this._droppingClassNames || DEFAULT_DROPPING_CSS_CLASS : '';\n var ariaLabel = getRowAriaLabel ? getRowAriaLabel(item) : undefined;\n var ariaRowDescription = getRowAriaDescription ? getRowAriaDescription(item) : undefined;\n var ariaDescribedBy = getRowAriaDescribedBy ? getRowAriaDescribedBy(item) : undefined;\n var canSelect = !!selection && selection.canSelectItem(item, itemIndex) && !disabled;\n var isContentUnselectable = selectionMode === SelectionMode.multiple;\n var showCheckbox = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden;\n var ariaSelected = selectionMode === SelectionMode.none ? undefined : isSelected;\n var ariaPositionInSet = group ? itemIndex - group.startIndex + 1 : undefined;\n var ariaSetSize = group ? group.count : undefined;\n this._classNames = __assign(__assign({}, this._classNames), getClassNames(styles, {\n theme: theme,\n isSelected: isSelected,\n canSelect: !isContentUnselectable,\n anySelected: isSelectionModal,\n checkboxCellClassName: checkboxCellClassName,\n droppingClassName: droppingClassName,\n className: className,\n compact: compact,\n enableUpdateAnimations: enableUpdateAnimations,\n cellStyleProps: cellStyleProps,\n disabled: disabled,\n }));\n var rowClassNames = {\n isMultiline: this._classNames.isMultiline,\n isRowHeader: this._classNames.isRowHeader,\n cell: this._classNames.cell,\n cellAnimation: this._classNames.cellAnimation,\n cellPadded: this._classNames.cellPadded,\n cellUnpadded: this._classNames.cellUnpadded,\n fields: this._classNames.fields,\n };\n // Only re-assign rowClassNames when classNames have changed.\n // Otherwise, they will cause DetailsRowFields to unnecessarily\n // re-render, see https://github.com/microsoft/fluentui/pull/8799.\n // Refactor DetailsRowFields to generate own styles to remove need for this.\n if (!shallowCompare(this._rowClassNames || {}, rowClassNames)) {\n this._rowClassNames = rowClassNames;\n }\n var rowFields = (React.createElement(RowFields, { rowClassNames: this._rowClassNames, rowHeaderId: id + \"-header\", cellsByColumn: cellsByColumn, columns: columns, item: item, itemIndex: itemIndex, columnStartIndex: (showCheckbox ? 1 : 0) + (groupNestingDepth ? 1 : 0), onRenderItemColumn: onRenderItemColumn, getCellValueKey: getCellValueKey, enableUpdateAnimations: enableUpdateAnimations, cellStyleProps: cellStyleProps }));\n var defaultRole = 'row';\n var role = this.props.role ? this.props.role : defaultRole;\n this._ariaRowDescriptionId = getId('DetailsRow-description');\n return (React.createElement(FocusZone, __assign({ \"data-is-focusable\": true }, getNativeProps(this.props, divProperties), (typeof isDraggable === 'boolean'\n ? {\n 'data-is-draggable': isDraggable,\n draggable: isDraggable,\n }\n : {}), { direction: FocusZoneDirection.horizontal, elementRef: this._root, componentRef: this._focusZone, role: role, \"aria-label\": ariaLabel, \"aria-disabled\": disabled || undefined, \"aria-describedby\": ariaRowDescription ? this._ariaRowDescriptionId : ariaDescribedBy, className: this._classNames.root, \"data-selection-index\": itemIndex, \"data-selection-touch-invoke\": true, \"data-selection-disabled\": disabled || undefined, \"data-item-index\": itemIndex, \"aria-rowindex\": ariaPositionInSet === undefined ? itemIndex + flatIndexOffset : undefined, \"aria-level\": (groupNestingDepth && groupNestingDepth + 1) || undefined, \"aria-posinset\": ariaPositionInSet, \"aria-setsize\": ariaSetSize, \"data-automationid\": \"DetailsRow\", style: { minWidth: rowWidth }, \"aria-selected\": ariaSelected, allowFocusRoot: true }),\n ariaRowDescription ? (React.createElement(\"span\", { key: \"description\", role: \"presentation\", hidden: true, id: this._ariaRowDescriptionId }, ariaRowDescription)) : null,\n showCheckbox && (React.createElement(\"div\", { role: \"gridcell\", \"aria-colindex\": 1, \"data-selection-toggle\": true, className: this._classNames.checkCell }, onRenderCheck({\n id: id ? id + \"-checkbox\" : undefined,\n selected: isSelected,\n anySelected: isSelectionModal,\n 'aria-label': checkButtonAriaLabel,\n 'aria-labelledby': id ? id + \"-checkbox \" + id + \"-header\" : undefined,\n canSelect: canSelect,\n compact: compact,\n className: this._classNames.check,\n theme: theme,\n isVisible: checkboxVisibility === CheckboxVisibility.always,\n onRenderDetailsCheckbox: onRenderDetailsCheckbox,\n useFastIcons: useFastIcons,\n }))),\n React.createElement(GroupSpacer, { indentWidth: indentWidth, role: \"gridcell\", count: groupNestingDepth - (this.props.collapseAllVisibility === CollapseAllVisibility.hidden ? 1 : 0) }),\n item && rowFields,\n columnMeasureInfo && (React.createElement(\"span\", { role: \"presentation\", className: css(this._classNames.cellMeasurer, this._classNames.cell), ref: this._cellMeasurer },\n React.createElement(RowFields, { rowClassNames: this._rowClassNames, rowHeaderId: id + \"-header\", columns: [columnMeasureInfo.column], item: item, itemIndex: itemIndex, columnStartIndex: (showCheckbox ? 1 : 0) + (groupNestingDepth ? 1 : 0) + columns.length, onRenderItemColumn: onRenderItemColumn, getCellValueKey: getCellValueKey }))),\n React.createElement(\"span\", { role: \"checkbox\", className: this._classNames.checkCover, \"aria-checked\": isSelected, \"data-selection-toggle\": true })));\n };\n /**\n * measure cell at index. and call the call back with the measured cell width when finish measure\n *\n * @param index - The cell index\n * @param onMeasureDone - The call back function when finish measure\n */\n DetailsRowBase.prototype.measureCell = function (index, onMeasureDone) {\n var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n var column = __assign({}, columns[index]);\n column.minWidth = 0;\n column.maxWidth = 999999;\n delete column.calculatedWidth;\n this.setState({\n columnMeasureInfo: {\n index: index,\n column: column,\n onMeasureDone: onMeasureDone,\n },\n });\n };\n DetailsRowBase.prototype.focus = function (forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n var _a;\n return !!((_a = this._focusZone.current) === null || _a === void 0 ? void 0 : _a.focus(forceIntoFirstElement));\n };\n DetailsRowBase.prototype._onRenderCheck = function (props) {\n return React.createElement(DetailsRowCheck, __assign({}, props));\n };\n DetailsRowBase.prototype._getRowDragDropOptions = function () {\n var _a = this.props, item = _a.item, itemIndex = _a.itemIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;\n var options = {\n eventMap: eventsToRegister,\n selectionIndex: itemIndex,\n context: { data: item, index: itemIndex },\n canDrag: dragDropEvents.canDrag,\n canDrop: dragDropEvents.canDrop,\n onDragStart: dragDropEvents.onDragStart,\n updateDropState: this._updateDroppingState,\n onDrop: dragDropEvents.onDrop,\n onDragEnd: dragDropEvents.onDragEnd,\n onDragOver: dragDropEvents.onDragOver,\n };\n return options;\n };\n return DetailsRowBase;\n}(React.Component));\nexport { DetailsRowBase };\nfunction getSelectionState(props) {\n var _a, _b, _c, _d;\n var itemIndex = props.itemIndex, selection = props.selection;\n return {\n isSelected: !!((_a = selection) === null || _a === void 0 ? void 0 : _a.isIndexSelected(itemIndex)),\n isSelectionModal: !!((_d = (_b = selection) === null || _b === void 0 ? void 0 : (_c = _b).isModal) === null || _d === void 0 ? void 0 : _d.call(_c)),\n };\n}\n//# sourceMappingURL=DetailsRow.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsRowBase } from './DetailsRow.base';\nimport { getDetailsRowStyles } from './DetailsRow.styles';\nexport var DetailsRow = styled(DetailsRowBase, getDetailsRowStyles, undefined, {\n scope: 'DetailsRow',\n});\n//# sourceMappingURL=DetailsRow.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, AnimationStyles, HighContrastSelector, getFocusStyle, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nexport var DetailsRowGlobalClassNames = {\n root: 'ms-DetailsRow',\n // TODO: in Fabric 7.0 lowercase the 'Compact' for consistency across other components.\n compact: 'ms-DetailsList--Compact',\n cell: 'ms-DetailsRow-cell',\n cellAnimation: 'ms-DetailsRow-cellAnimation',\n cellCheck: 'ms-DetailsRow-cellCheck',\n check: 'ms-DetailsRow-check',\n cellMeasurer: 'ms-DetailsRow-cellMeasurer',\n listCellFirstChild: 'ms-List-cell:first-child',\n isContentUnselectable: 'is-contentUnselectable',\n isSelected: 'is-selected',\n isCheckVisible: 'is-check-visible',\n isRowHeader: 'is-row-header',\n fields: 'ms-DetailsRow-fields',\n};\nvar IsFocusableSelector = \"[data-is-focusable='true']\";\nexport var DEFAULT_CELL_STYLE_PROPS = {\n cellLeftPadding: 12,\n cellRightPadding: 8,\n cellExtraRightPadding: 24,\n};\n// Source of default row heights to share.\nexport var DEFAULT_ROW_HEIGHTS = {\n rowHeight: 42,\n compactRowHeight: 32,\n};\n// Constant values\nvar values = __assign(__assign({}, DEFAULT_ROW_HEIGHTS), { rowVerticalPadding: 11, compactRowVerticalPadding: 6 });\nexport var getDetailsRowStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, isSelected = props.isSelected, canSelect = props.canSelect, droppingClassName = props.droppingClassName, anySelected = props.anySelected, isCheckVisible = props.isCheckVisible, checkboxCellClassName = props.checkboxCellClassName, compact = props.compact, className = props.className, _o = props.cellStyleProps, cellStyleProps = _o === void 0 ? DEFAULT_CELL_STYLE_PROPS : _o, enableUpdateAnimations = props.enableUpdateAnimations, disabled = props.disabled;\n var palette = theme.palette, fonts = theme.fonts;\n var neutralPrimary = palette.neutralPrimary, white = palette.white, neutralSecondary = palette.neutralSecondary, neutralLighter = palette.neutralLighter, neutralLight = palette.neutralLight, neutralDark = palette.neutralDark, neutralQuaternaryAlt = palette.neutralQuaternaryAlt;\n var focusBorder = theme.semanticColors.focusBorder;\n var classNames = getGlobalClassNames(DetailsRowGlobalClassNames, theme);\n var colors = {\n // Default\n defaultHeaderText: neutralPrimary,\n defaultMetaText: neutralSecondary,\n defaultBackground: white,\n // Default Hover\n defaultHoverHeaderText: neutralDark,\n defaultHoverMetaText: neutralPrimary,\n defaultHoverBackground: neutralLighter,\n // Selected\n selectedHeaderText: neutralDark,\n selectedMetaText: neutralPrimary,\n selectedBackground: neutralLight,\n // Selected Hover\n selectedHoverHeaderText: neutralDark,\n selectedHoverMetaText: neutralPrimary,\n selectedHoverBackground: neutralQuaternaryAlt,\n // Focus\n focusHeaderText: neutralDark,\n focusMetaText: neutralPrimary,\n focusBackground: neutralLight,\n focusHoverBackground: neutralQuaternaryAlt,\n };\n var rowHighContrastFocus = {\n top: 2,\n right: 2,\n bottom: 2,\n left: 2,\n };\n // Selected row styles\n var selectedStyles = [\n getFocusStyle(theme, {\n inset: -1,\n borderColor: focusBorder,\n outlineColor: white,\n highContrastStyle: rowHighContrastFocus,\n }),\n classNames.isSelected,\n {\n color: colors.selectedMetaText,\n background: colors.selectedBackground,\n borderBottom: \"1px solid \" + white,\n selectors: (_a = {\n '&:before': {\n position: 'absolute',\n display: 'block',\n top: -1,\n height: 1,\n bottom: 0,\n left: 0,\n right: 0,\n content: '',\n borderTop: \"1px solid \" + white,\n },\n // Selected State hover\n '&:hover': {\n background: colors.selectedHoverBackground,\n color: colors.selectedHoverMetaText,\n selectors: (_b = {},\n // Selected State hover meta cell\n _b[\".\" + classNames.cell + \" \" + HighContrastSelector] = {\n color: 'HighlightText',\n selectors: {\n '> a': {\n color: 'HighlightText',\n },\n },\n },\n // Selected State hover Header cell\n _b[\".\" + classNames.isRowHeader] = {\n color: colors.selectedHoverHeaderText,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _c),\n },\n // Ensure high-contrast mode overrides default hover background\n _b[HighContrastSelector] = {\n background: 'Highlight',\n },\n _b),\n },\n // Focus state\n '&:focus': {\n background: colors.focusBackground,\n selectors: (_d = {},\n // Selected State hover meta cell\n _d[\".\" + classNames.cell] = {\n color: colors.focusMetaText,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'HighlightText',\n selectors: {\n '> a': {\n color: 'HighlightText',\n },\n },\n },\n _e),\n },\n // Row header cell\n _d[\".\" + classNames.isRowHeader] = {\n color: colors.focusHeaderText,\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _f),\n },\n // Ensure high-contrast mode overrides default focus background\n _d[HighContrastSelector] = {\n background: 'Highlight',\n },\n _d),\n }\n },\n _a[HighContrastSelector] = __assign(__assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()), { selectors: {\n a: {\n color: 'HighlightText',\n },\n } }),\n // Focus and hover state\n _a['&:focus:hover'] = {\n background: colors.focusHoverBackground,\n },\n _a),\n },\n ];\n var cannotSelectStyles = [\n classNames.isContentUnselectable,\n {\n userSelect: 'none',\n cursor: 'default',\n },\n ];\n var rootCompactStyles = {\n minHeight: values.compactRowHeight,\n border: 0,\n };\n var cellCompactStyles = {\n minHeight: values.compactRowHeight,\n paddingTop: values.compactRowVerticalPadding,\n paddingBottom: values.compactRowVerticalPadding,\n paddingLeft: cellStyleProps.cellLeftPadding + \"px\",\n };\n var defaultCellStyles = [\n getFocusStyle(theme, { inset: -1 }),\n classNames.cell,\n {\n display: 'inline-block',\n position: 'relative',\n boxSizing: 'border-box',\n minHeight: values.rowHeight,\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingTop: values.rowVerticalPadding,\n paddingBottom: values.rowVerticalPadding,\n paddingLeft: cellStyleProps.cellLeftPadding + \"px\",\n selectors: (_g = {\n '& > button': {\n maxWidth: '100%',\n }\n },\n _g[IsFocusableSelector] = getFocusStyle(theme, { inset: -1, borderColor: neutralSecondary, outlineColor: white }),\n _g),\n },\n isSelected && {\n selectors: (_h = {},\n _h[HighContrastSelector] = __assign(__assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()), { selectors: {\n a: {\n color: 'HighlightText',\n },\n } }),\n _h),\n },\n compact && cellCompactStyles,\n disabled && { opacity: 0.5 },\n ];\n return {\n root: [\n classNames.root,\n AnimationClassNames.fadeIn400,\n droppingClassName,\n theme.fonts.small,\n isCheckVisible && classNames.isCheckVisible,\n getFocusStyle(theme, { borderColor: focusBorder, outlineColor: white }),\n {\n borderBottom: \"1px solid \" + neutralLighter,\n background: colors.defaultBackground,\n color: colors.defaultMetaText,\n // This ensures that the row always tries to consume is minimum width and does not compress.\n display: 'inline-flex',\n minWidth: '100%',\n minHeight: values.rowHeight,\n whiteSpace: 'nowrap',\n padding: 0,\n boxSizing: 'border-box',\n verticalAlign: 'top',\n textAlign: 'left',\n selectors: (_j = {},\n _j[\".\" + classNames.listCellFirstChild + \" &:before\"] = {\n display: 'none',\n },\n _j['&:hover'] = {\n background: colors.defaultHoverBackground,\n color: colors.defaultHoverMetaText,\n selectors: (_k = {},\n _k[\".\" + classNames.isRowHeader] = {\n color: colors.defaultHoverHeaderText,\n },\n _k),\n },\n _j[\"&:hover .\" + classNames.check] = {\n opacity: 1,\n },\n _j[\".\" + IsFocusVisibleClassName + \" &:focus .\" + classNames.check] = {\n opacity: 1,\n },\n _j),\n },\n isSelected && selectedStyles,\n !canSelect && cannotSelectStyles,\n compact && rootCompactStyles,\n className,\n ],\n cellUnpadded: {\n paddingRight: cellStyleProps.cellRightPadding + \"px\",\n },\n cellPadded: {\n paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding + \"px\",\n selectors: (_l = {},\n _l[\"&.\" + classNames.cellCheck] = {\n paddingRight: 0,\n },\n _l),\n },\n cell: defaultCellStyles,\n cellAnimation: enableUpdateAnimations && AnimationStyles.slideLeftIn40,\n cellMeasurer: [\n classNames.cellMeasurer,\n {\n overflow: 'visible',\n whiteSpace: 'nowrap',\n },\n ],\n checkCell: [\n defaultCellStyles,\n classNames.cellCheck,\n checkboxCellClassName,\n {\n padding: 0,\n // Ensure that the check cell covers the top border of the cell.\n // This ensures the click target does not leave a spot which would\n // cause other items to be deselected.\n paddingTop: 1,\n marginTop: -1,\n flexShrink: 0,\n },\n ],\n checkCover: {\n position: 'absolute',\n top: -1,\n left: 0,\n bottom: 0,\n right: 0,\n display: anySelected ? 'block' : 'none',\n },\n fields: [\n classNames.fields,\n {\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n isRowHeader: [\n classNames.isRowHeader,\n {\n color: colors.defaultHeaderText,\n fontSize: fonts.medium.fontSize,\n },\n isSelected && {\n color: colors.selectedHeaderText,\n fontWeight: FontWeights.semibold,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _m),\n },\n ],\n isMultiline: [\n defaultCellStyles,\n {\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n textOverflow: 'clip',\n },\n ],\n check: [classNames.check],\n };\n};\n//# sourceMappingURL=DetailsRow.styles.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css, styled, classNamesFunction, getNativeElementProps } from '../../Utilities';\nimport { Check } from '../../Check';\nimport { getStyles } from './DetailsRowCheck.styles';\nimport { composeRenderFunction } from '@uifabric/utilities';\nvar getClassNames = classNamesFunction();\nvar DetailsRowCheckBase = function (props) {\n var _a = props.isVisible, isVisible = _a === void 0 ? false : _a, _b = props.canSelect, canSelect = _b === void 0 ? false : _b, _c = props.anySelected, anySelected = _c === void 0 ? false : _c, _d = props.selected, selected = _d === void 0 ? false : _d, _e = props.isHeader, isHeader = _e === void 0 ? false : _e, className = props.className, checkClassName = props.checkClassName, styles = props.styles, theme = props.theme, compact = props.compact, onRenderDetailsCheckbox = props.onRenderDetailsCheckbox, _f = props.useFastIcons, useFastIcons = _f === void 0 ? true : _f, // must be removed from buttonProps\n buttonProps = __rest(props, [\"isVisible\", \"canSelect\", \"anySelected\", \"selected\", \"isHeader\", \"className\", \"checkClassName\", \"styles\", \"theme\", \"compact\", \"onRenderDetailsCheckbox\", \"useFastIcons\"]);\n var defaultCheckboxRender = useFastIcons ? _fastDefaultCheckboxRender : _defaultCheckboxRender;\n var onRenderCheckbox = onRenderDetailsCheckbox\n ? composeRenderFunction(onRenderDetailsCheckbox, defaultCheckboxRender)\n : defaultCheckboxRender;\n var classNames = getClassNames(styles, {\n theme: theme,\n canSelect: canSelect,\n selected: selected,\n anySelected: anySelected,\n className: className,\n isHeader: isHeader,\n isVisible: isVisible,\n compact: compact,\n });\n var detailsCheckboxProps = {\n checked: selected,\n theme: theme,\n };\n var divProps = getNativeElementProps('div', buttonProps, ['aria-label', 'aria-labelledby', 'aria-describedby']);\n return canSelect ? (React.createElement(\"div\", __assign({}, buttonProps, { role: \"checkbox\", \n // eslint-disable-next-line deprecation/deprecation\n className: css(classNames.root, classNames.check), \"aria-checked\": selected, \"data-selection-toggle\": true, \"data-automationid\": \"DetailsRowCheck\", tabIndex: -1 }), onRenderCheckbox(detailsCheckboxProps))) : (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({}, divProps, { className: css(classNames.root, classNames.check) })));\n};\nvar FastCheck = React.memo(function (props) {\n return React.createElement(Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });\n});\nfunction _defaultCheckboxRender(checkboxProps) {\n return React.createElement(Check, { checked: checkboxProps.checked });\n}\nfunction _fastDefaultCheckboxRender(checkboxProps) {\n return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });\n}\nexport var DetailsRowCheck = styled(DetailsRowCheckBase, getStyles, undefined, { scope: 'DetailsRowCheck' }, true);\n//# sourceMappingURL=DetailsRowCheck.js.map","import { getGlobalClassNames, getFocusStyle } from '../../Styling';\nimport { DEFAULT_ROW_HEIGHTS } from './DetailsRow.styles';\nimport { HEADER_HEIGHT } from './DetailsHeader.styles';\nimport { CheckGlobalClassNames } from '../Check/Check.styles';\nvar GlobalClassNames = {\n root: 'ms-DetailsRow-check',\n isDisabled: 'ms-DetailsRow-check--isDisabled',\n isHeader: 'ms-DetailsRow-check--isHeader',\n};\nexport var CHECK_CELL_WIDTH = 48;\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, isHeader = props.isHeader, selected = props.selected, anySelected = props.anySelected, canSelect = props.canSelect, compact = props.compact, isVisible = props.isVisible;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var rowHeight = DEFAULT_ROW_HEIGHTS.rowHeight, compactRowHeight = DEFAULT_ROW_HEIGHTS.compactRowHeight;\n var height = isHeader ? HEADER_HEIGHT : compact ? compactRowHeight : rowHeight;\n var isCheckVisible = isVisible || selected || anySelected;\n return {\n root: [classNames.root, className],\n check: [\n !canSelect && classNames.isDisabled,\n isHeader && classNames.isHeader,\n getFocusStyle(theme),\n theme.fonts.small,\n CheckGlobalClassNames.checkHost,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'default',\n boxSizing: 'border-box',\n verticalAlign: 'top',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n opacity: isCheckVisible ? 1 : 0,\n height: height,\n width: CHECK_CELL_WIDTH,\n padding: 0,\n margin: 0,\n },\n ],\n isDisabled: [],\n };\n};\n//# sourceMappingURL=DetailsRowCheck.styles.js.map","import * as React from 'react';\nimport { css } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nvar getCellText = function (item, column) {\n var value = item && column && column.fieldName ? item[column.fieldName] : '';\n if (value === null || value === undefined) {\n value = '';\n }\n if (typeof value === 'boolean') {\n return value.toString();\n }\n return value;\n};\n/**\n * Component for rendering a row's cells in a `DetailsList`.\n *\n * {@docCategory DetailsList}\n */\nexport var DetailsRowFields = function (props) {\n var columns = props.columns, columnStartIndex = props.columnStartIndex, rowClassNames = props.rowClassNames, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a, item = props.item, itemIndex = props.itemIndex, onRenderItemColumn = props.onRenderItemColumn, getCellValueKey = props.getCellValueKey, cellsByColumn = props.cellsByColumn, enableUpdateAnimations = props.enableUpdateAnimations, rowHeaderId = props.rowHeaderId;\n var cellValueKeysRef = React.useRef();\n var cellValueKeys = cellValueKeysRef.current || (cellValueKeysRef.current = {});\n return (React.createElement(\"div\", { className: rowClassNames.fields, \"data-automationid\": \"DetailsRowFields\", role: \"presentation\" }, columns.map(function (column, columnIndex) {\n var width = typeof column.calculatedWidth === 'undefined'\n ? 'auto'\n : column.calculatedWidth +\n cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);\n var _a = column.onRender, onRender = _a === void 0 ? onRenderItemColumn : _a, _b = column.getValueKey, getValueKey = _b === void 0 ? getCellValueKey : _b;\n var cellContentsRender = cellsByColumn && column.key in cellsByColumn\n ? cellsByColumn[column.key]\n : onRender\n ? onRender(item, itemIndex, column)\n : getCellText(item, column);\n var previousValueKey = cellValueKeys[column.key];\n var cellValueKey = enableUpdateAnimations && getValueKey ? getValueKey(item, itemIndex, column) : undefined;\n var showAnimation = false;\n if (cellValueKey !== undefined && previousValueKey !== undefined && cellValueKey !== previousValueKey) {\n showAnimation = true;\n }\n cellValueKeys[column.key] = cellValueKey;\n // generate a key that auto-dirties when content changes, to force the container to re-render,\n // to trigger animation\n var key = \"\" + column.key + (cellValueKey !== undefined ? \"-\" + cellValueKey : '');\n return (React.createElement(\"div\", { key: key, id: column.isRowHeader ? rowHeaderId : undefined, role: column.isRowHeader ? 'rowheader' : 'gridcell', \"aria-readonly\": true, \"aria-colindex\": columnIndex + columnStartIndex + 1, className: css(column.className, column.isMultiline && rowClassNames.isMultiline, column.isRowHeader && rowClassNames.isRowHeader, rowClassNames.cell, column.isPadded ? rowClassNames.cellPadded : rowClassNames.cellUnpadded, showAnimation && rowClassNames.cellAnimation), style: { width: width }, \"data-automationid\": \"DetailsRowCell\", \"data-automation-key\": column.key }, cellContentsRender));\n })));\n};\n//# sourceMappingURL=DetailsRowFields.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css } from '../../Utilities';\nimport { SelectionMode } from '../../utilities/selection/interfaces';\nimport { DetailsList } from './DetailsList';\nimport { Shimmer, ShimmerElementsGroup, ShimmerElementType } from '../../Shimmer';\nimport { CheckboxVisibility } from './DetailsList.types';\nimport { DEFAULT_CELL_STYLE_PROPS, DEFAULT_ROW_HEIGHTS } from './DetailsRow.styles';\nvar getClassNames = classNamesFunction();\nvar SHIMMER_INITIAL_ITEMS = 10;\nvar DEFAULT_SHIMMER_HEIGHT = 7;\nvar SHIMMER_LINE_VS_CELL_WIDTH_RATIO = 0.95;\nvar ShimmeredDetailsListBase = /** @class */ (function (_super) {\n __extends(ShimmeredDetailsListBase, _super);\n function ShimmeredDetailsListBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderShimmerPlaceholder = function (index, rowProps) {\n var onRenderCustomPlaceholder = _this.props.onRenderCustomPlaceholder;\n var placeholderElements = onRenderCustomPlaceholder\n ? onRenderCustomPlaceholder(rowProps, index, _this._renderDefaultShimmerPlaceholder)\n : _this._renderDefaultShimmerPlaceholder(rowProps);\n return React.createElement(Shimmer, { customElementsGroup: placeholderElements });\n };\n _this._renderDefaultShimmerPlaceholder = function (rowProps) {\n var columns = rowProps.columns, compact = rowProps.compact, selectionMode = rowProps.selectionMode, checkboxVisibility = rowProps.checkboxVisibility, _a = rowProps.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n var rowHeight = DEFAULT_ROW_HEIGHTS.rowHeight, compactRowHeight = DEFAULT_ROW_HEIGHTS.compactRowHeight;\n // 1px to take into account the border-bottom of DetailsRow.\n var gapHeight = compact ? compactRowHeight : rowHeight + 1;\n var shimmerElementsRow = [];\n var showCheckbox = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden;\n if (showCheckbox) {\n shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: 'checkboxGap', shimmerElements: [{ type: ShimmerElementType.gap, width: '40px', height: gapHeight }] }));\n }\n columns.forEach(function (column, columnIdx) {\n var shimmerElements = [];\n var groupWidth = cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n column.calculatedWidth +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);\n shimmerElements.push({\n type: ShimmerElementType.gap,\n width: cellStyleProps.cellLeftPadding,\n height: gapHeight,\n });\n if (column.isIconOnly) {\n shimmerElements.push({\n type: ShimmerElementType.line,\n width: column.calculatedWidth,\n height: column.calculatedWidth,\n });\n shimmerElements.push({\n type: ShimmerElementType.gap,\n width: cellStyleProps.cellRightPadding,\n height: gapHeight,\n });\n }\n else {\n shimmerElements.push({\n type: ShimmerElementType.line,\n width: column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO,\n height: DEFAULT_SHIMMER_HEIGHT,\n });\n shimmerElements.push({\n type: ShimmerElementType.gap,\n width: cellStyleProps.cellRightPadding +\n (column.calculatedWidth - column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO) +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),\n height: gapHeight,\n });\n }\n shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: columnIdx, width: groupWidth + \"px\", shimmerElements: shimmerElements }));\n });\n // When resizing the window from narrow to wider, we need to cover the exposed Shimmer wave\n // until the column resizing logic is done.\n shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: 'endGap', width: '100%', shimmerElements: [{ type: ShimmerElementType.gap, width: '100%', height: gapHeight }] }));\n return React.createElement(\"div\", { style: { display: 'flex' } }, shimmerElementsRow);\n };\n _this._shimmerItems = props.shimmerLines ? new Array(props.shimmerLines) : new Array(SHIMMER_INITIAL_ITEMS);\n return _this;\n }\n ShimmeredDetailsListBase.prototype.render = function () {\n var _a = this.props, detailsListStyles = _a.detailsListStyles, enableShimmer = _a.enableShimmer, items = _a.items, listProps = _a.listProps, onRenderCustomPlaceholder = _a.onRenderCustomPlaceholder, removeFadingOverlay = _a.removeFadingOverlay, shimmerLines = _a.shimmerLines, styles = _a.styles, theme = _a.theme, ariaLabelForGrid = _a.ariaLabelForGrid, ariaLabelForShimmer = _a.ariaLabelForShimmer, restProps = __rest(_a, [\"detailsListStyles\", \"enableShimmer\", \"items\", \"listProps\", \"onRenderCustomPlaceholder\", \"removeFadingOverlay\", \"shimmerLines\", \"styles\", \"theme\", \"ariaLabelForGrid\", \"ariaLabelForShimmer\"]);\n var listClassName = listProps && listProps.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n });\n var newListProps = __assign(__assign({}, listProps), { \n // Adds to the optional listProp className a fading out overlay className only when `enableShimmer` toggled on\n // and the overlay is not disabled by `removeFadingOverlay` prop.\n className: enableShimmer && !removeFadingOverlay ? css(this._classNames.root, listClassName) : listClassName });\n return (React.createElement(DetailsList, __assign({}, restProps, { styles: detailsListStyles, items: enableShimmer ? this._shimmerItems : items, isPlaceholderData: enableShimmer, ariaLabelForGrid: (enableShimmer && ariaLabelForShimmer) || ariaLabelForGrid, onRenderMissingItem: this._onRenderShimmerPlaceholder, listProps: newListProps })));\n };\n return ShimmeredDetailsListBase;\n}(React.Component));\nexport { ShimmeredDetailsListBase };\n//# sourceMappingURL=ShimmeredDetailsList.base.js.map","import { styled } from '../../Utilities';\nimport { ShimmeredDetailsListBase } from './ShimmeredDetailsList.base';\nimport { getStyles } from './ShimmeredDetailsList.styles';\nexport var ShimmeredDetailsList = styled(ShimmeredDetailsListBase, getStyles, undefined, { scope: 'ShimmeredDetailsList' });\n//# sourceMappingURL=ShimmeredDetailsList.js.map","export var getStyles = function (props) {\n var theme = props.theme;\n var palette = theme.palette;\n return {\n root: {\n position: 'relative',\n selectors: {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n // eslint-disable-next-line @fluentui/max-len\n backgroundImage: \"linear-gradient(to bottom, transparent 30%, \" + palette.whiteTranslucent40 + \" 65%,\" + palette.white + \" 100%)\",\n },\n },\n },\n };\n};\n//# sourceMappingURL=ShimmeredDetailsList.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, getId } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { Modal } from '../../Modal';\nimport { withResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nvar getClassNames = classNamesFunction();\nimport { DialogContent } from './DialogContent';\nvar DefaultModalProps = {\n isDarkOverlay: false,\n isBlocking: false,\n className: '',\n containerClassName: '',\n topOffsetFixed: false,\n};\nvar DefaultDialogContentProps = {\n type: DialogType.normal,\n className: '',\n topButtonsProps: [],\n};\nvar DialogBase = /** @class */ (function (_super) {\n __extends(DialogBase, _super);\n function DialogBase(props) {\n var _this = _super.call(this, props) || this;\n _this._getSubTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaDescribedById = _a.ariaDescribedById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, subText = _a.subText;\n var id = (modalProps && modalProps.subtitleAriaId) || ariaDescribedById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.subText) || subText) && _this._defaultSubTextId;\n }\n return id;\n };\n _this._getTitleTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaLabelledById = _a.ariaLabelledById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, title = _a.title;\n var id = (modalProps && modalProps.titleAriaId) || ariaLabelledById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.title) || title) && _this._defaultTitleTextId;\n }\n return id;\n };\n _this._id = getId('Dialog');\n _this._defaultTitleTextId = _this._id + '-title';\n _this._defaultSubTextId = _this._id + '-subText';\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Dialog', props, {\n isOpen: 'hidden',\n type: 'dialogContentProps.type',\n subText: 'dialogContentProps.subText',\n contentClassName: 'dialogContentProps.className',\n topButtonsProps: 'dialogContentProps.topButtonsProps',\n className: 'modalProps.className',\n isDarkOverlay: 'modalProps.isDarkOverlay',\n isBlocking: 'modalProps.isBlocking',\n containerClassName: 'modalProps.containerClassName',\n onDismissed: 'modalProps.onDismissed',\n onLayerDidMount: 'modalProps.layerProps.onLayerDidMount',\n ariaDescribedById: 'modalProps.subtitleAriaId',\n ariaLabelledById: 'modalProps.titleAriaId',\n });\n }\n return _this;\n }\n DialogBase.prototype.render = function () {\n var _a, _b;\n var _c = this.props, \n /* eslint-disable deprecation/deprecation */\n className = _c.className, containerClassName = _c.containerClassName, contentClassName = _c.contentClassName, elementToFocusOnDismiss = _c.elementToFocusOnDismiss, firstFocusableSelector = _c.firstFocusableSelector, forceFocusInsideTrap = _c.forceFocusInsideTrap, styles = _c.styles, hidden = _c.hidden, ignoreExternalFocusing = _c.ignoreExternalFocusing, isBlocking = _c.isBlocking, isClickableOutsideFocusTrap = _c.isClickableOutsideFocusTrap, isDarkOverlay = _c.isDarkOverlay, isOpen = _c.isOpen, onDismiss = _c.onDismiss, onDismissed = _c.onDismissed, onLayerDidMount = _c.onLayerDidMount, responsiveMode = _c.responsiveMode, subText = _c.subText, theme = _c.theme, title = _c.title, topButtonsProps = _c.topButtonsProps, type = _c.type, \n /* eslint-enable deprecation/deprecation */\n minWidth = _c.minWidth, maxWidth = _c.maxWidth, modalProps = _c.modalProps;\n var mergedLayerProps = __assign({}, (modalProps ? modalProps.layerProps : { onLayerDidMount: onLayerDidMount }));\n if (onLayerDidMount && !mergedLayerProps.onLayerDidMount) {\n mergedLayerProps.onLayerDidMount = onLayerDidMount;\n }\n var dialogDraggableClassName;\n var dragOptions;\n // if we are draggable, make sure we are using the correct\n // draggable classname and selectors\n if (modalProps && modalProps.dragOptions && !modalProps.dragOptions.dragHandleSelector) {\n dialogDraggableClassName = 'ms-Dialog-draggable-header';\n dragOptions = __assign(__assign({}, modalProps.dragOptions), { dragHandleSelector: \".\" + dialogDraggableClassName });\n }\n else {\n dragOptions = modalProps && modalProps.dragOptions;\n }\n var mergedModalProps = __assign(__assign(__assign(__assign({}, DefaultModalProps), { className: className,\n containerClassName: containerClassName,\n isBlocking: isBlocking,\n isDarkOverlay: isDarkOverlay,\n onDismissed: onDismissed }), modalProps), { layerProps: mergedLayerProps, dragOptions: dragOptions });\n var dialogContentProps = __assign(__assign(__assign({ className: contentClassName, subText: subText,\n title: title,\n topButtonsProps: topButtonsProps,\n type: type }, DefaultDialogContentProps), this.props.dialogContentProps), { draggableHeaderClassName: dialogDraggableClassName, titleProps: __assign({ \n // eslint-disable-next-line deprecation/deprecation\n id: ((_a = this.props.dialogContentProps) === null || _a === void 0 ? void 0 : _a.titleId) || this._defaultTitleTextId }, (_b = this.props.dialogContentProps) === null || _b === void 0 ? void 0 : _b.titleProps) });\n var classNames = getClassNames(styles, {\n theme: theme,\n className: mergedModalProps.className,\n containerClassName: mergedModalProps.containerClassName,\n hidden: hidden,\n dialogDefaultMinWidth: minWidth,\n dialogDefaultMaxWidth: maxWidth,\n });\n return (React.createElement(Modal, __assign({ elementToFocusOnDismiss: elementToFocusOnDismiss, firstFocusableSelector: firstFocusableSelector, forceFocusInsideTrap: forceFocusInsideTrap, ignoreExternalFocusing: ignoreExternalFocusing, isClickableOutsideFocusTrap: isClickableOutsideFocusTrap, responsiveMode: responsiveMode }, mergedModalProps, { isOpen: isOpen !== undefined ? isOpen : !hidden, className: classNames.root, containerClassName: classNames.main, onDismiss: onDismiss ? onDismiss : mergedModalProps.onDismiss, subtitleAriaId: this._getSubTextId(), titleAriaId: this._getTitleTextId() }),\n React.createElement(DialogContent, __assign({ subTextId: this._defaultSubTextId, showCloseButton: mergedModalProps.isBlocking, onDismiss: onDismiss }, dialogContentProps), this.props.children)));\n };\n DialogBase.defaultProps = {\n hidden: true,\n };\n DialogBase = __decorate([\n withResponsiveMode\n ], DialogBase);\n return DialogBase;\n}(React.Component));\nexport { DialogBase };\n//# sourceMappingURL=Dialog.base.js.map","import { ScreenWidthMinMedium, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dialog',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, // eslint-disable-line deprecation/deprecation\n _b = props.dialogDefaultMinWidth, // eslint-disable-line deprecation/deprecation\n dialogDefaultMinWidth = _b === void 0 ? '288px' : _b, _c = props.dialogDefaultMaxWidth, dialogDefaultMaxWidth = _c === void 0 ? '340px' : _c, hidden = props.hidden, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [classNames.root, theme.fonts.medium, className],\n main: [\n {\n width: dialogDefaultMinWidth,\n outline: '3px solid transparent',\n selectors: (_a = {},\n _a[\"@media (min-width: \" + ScreenWidthMinMedium + \"px)\"] = {\n width: 'auto',\n maxWidth: dialogDefaultMaxWidth,\n minWidth: dialogDefaultMinWidth,\n },\n _a),\n },\n !hidden && { display: 'flex' },\n containerClassName,\n ],\n };\n};\n//# sourceMappingURL=Dialog.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogBase } from './Dialog.base';\nimport { getStyles } from './Dialog.styles';\nexport var Dialog = styled(DialogBase, getStyles, undefined, { scope: 'Dialog' });\nDialog.displayName = 'Dialog';\n//# sourceMappingURL=Dialog.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, warnDeprecations, initializeComponentRef } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { IconButton } from '../../Button';\nimport { DialogFooter } from './DialogFooter';\nimport { withResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nvar getClassNames = classNamesFunction();\nvar DialogFooterType = (React.createElement(DialogFooter, null)).type;\nvar COMPONENT_NAME = 'DialogContent';\nvar DialogContentBase = /** @class */ (function (_super) {\n __extends(DialogContentBase, _super);\n function DialogContentBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n titleId: 'titleProps.id',\n });\n return _this;\n }\n DialogContentBase.prototype.render = function () {\n var _a = this.props, showCloseButton = _a.showCloseButton, className = _a.className, closeButtonAriaLabel = _a.closeButtonAriaLabel, onDismiss = _a.onDismiss, subTextId = _a.subTextId, subText = _a.subText, _b = _a.titleProps, titleProps = _b === void 0 ? {} : _b, \n // eslint-disable-next-line deprecation/deprecation\n titleId = _a.titleId, title = _a.title, type = _a.type, styles = _a.styles, theme = _a.theme, draggableHeaderClassName = _a.draggableHeaderClassName;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isLargeHeader: type === DialogType.largeHeader,\n isClose: type === DialogType.close,\n draggableHeaderClassName: draggableHeaderClassName,\n });\n var groupings = this._groupChildren();\n var subTextContent;\n if (subText) {\n subTextContent = (React.createElement(\"p\", { className: classNames.subText, id: subTextId }, subText));\n }\n return (React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.header },\n React.createElement(\"div\", __assign({ id: titleId, role: \"heading\", \"aria-level\": 1 }, titleProps, { className: css(classNames.title, titleProps.className) }), title),\n React.createElement(\"div\", { className: classNames.topButton },\n this.props.topButtonsProps.map(function (props, index) { return (React.createElement(IconButton, __assign({ key: props.uniqueId || index }, props))); }),\n (type === DialogType.close || (showCloseButton && type !== DialogType.largeHeader)) && (React.createElement(IconButton, { className: classNames.button, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss })))),\n React.createElement(\"div\", { className: classNames.inner },\n React.createElement(\"div\", { className: classNames.innerContent },\n subTextContent,\n groupings.contents),\n groupings.footers)));\n };\n // @TODO - typing the footers as an array of DialogFooter is difficult because\n // casing \"child as DialogFooter\" causes a problem because\n // \"Neither type 'ReactElement<any>' nor type 'DialogFooter' is assignable to the other.\"\n DialogContentBase.prototype._groupChildren = function () {\n var groupings = {\n footers: [],\n contents: [],\n };\n React.Children.map(this.props.children, function (child) {\n if (typeof child === 'object' && child !== null && child.type === DialogFooterType) {\n groupings.footers.push(child);\n }\n else {\n groupings.contents.push(child);\n }\n });\n return groupings;\n };\n DialogContentBase.defaultProps = {\n showCloseButton: false,\n className: '',\n topButtonsProps: [],\n closeButtonAriaLabel: 'Close',\n };\n DialogContentBase = __decorate([\n withResponsiveMode\n ], DialogContentBase);\n return DialogContentBase;\n}(React.Component));\nexport { DialogContentBase };\n//# sourceMappingURL=DialogContent.base.js.map","import { FontWeights, getGlobalClassNames, IconFontSizes, ScreenWidthMinSmall, ScreenWidthMaxSmall, } from '../../Styling';\nvar GlobalClassNames = {\n contentLgHeader: 'ms-Dialog-lgHeader',\n close: 'ms-Dialog--close',\n subText: 'ms-Dialog-subText',\n header: 'ms-Dialog-header',\n headerLg: 'ms-Dialog--lgHeader',\n button: 'ms-Dialog-button ms-Dialog-button--close',\n inner: 'ms-Dialog-inner',\n content: 'ms-Dialog-content',\n title: 'ms-Dialog-title',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isLargeHeader = props.isLargeHeader, isClose = props.isClose, hidden = props.hidden, isMultiline = props.isMultiline, draggableHeaderClassName = props.draggableHeaderClassName;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n content: [\n isLargeHeader && [\n classNames.contentLgHeader,\n {\n borderTop: \"4px solid \" + palette.themePrimary,\n },\n ],\n isClose && classNames.close,\n {\n flexGrow: 1,\n overflowY: 'hidden',\n },\n className,\n ],\n subText: [\n classNames.subText,\n fonts.medium,\n {\n margin: '0 0 24px 0',\n color: semanticColors.bodySubtext,\n lineHeight: '1.5',\n wordWrap: 'break-word',\n fontWeight: FontWeights.regular,\n },\n ],\n header: [\n classNames.header,\n {\n position: 'relative',\n width: '100%',\n boxSizing: 'border-box',\n },\n isClose && classNames.close,\n draggableHeaderClassName && [\n draggableHeaderClassName,\n {\n cursor: 'move',\n },\n ],\n ],\n button: [\n classNames.button,\n hidden && {\n selectors: {\n '.ms-Icon.ms-Icon--Cancel': {\n color: semanticColors.buttonText,\n fontSize: IconFontSizes.medium,\n },\n },\n },\n ],\n inner: [\n classNames.inner,\n {\n padding: '0 24px 24px',\n selectors: (_a = {},\n _a[\"@media (min-width: \" + ScreenWidthMinSmall + \"px) and (max-width: \" + ScreenWidthMaxSmall + \"px)\"] = {\n padding: '0 16px 16px',\n },\n _a),\n },\n ],\n innerContent: [\n classNames.content,\n {\n position: 'relative',\n width: '100%',\n },\n ],\n title: [\n classNames.title,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n margin: '0',\n minHeight: fonts.xLarge.fontSize,\n padding: '16px 46px 20px 24px',\n lineHeight: 'normal',\n selectors: (_b = {},\n _b[\"@media (min-width: \" + ScreenWidthMinSmall + \"px) and (max-width: \" + ScreenWidthMaxSmall + \"px)\"] = {\n padding: '16px 46px 16px 16px',\n },\n _b),\n },\n isLargeHeader && {\n color: semanticColors.menuHeader,\n },\n isMultiline && { fontSize: fonts.xxLarge.fontSize },\n ],\n topButton: [\n {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n position: 'absolute',\n top: '0',\n right: '0',\n padding: '15px 15px 0 0',\n selectors: (_c = {\n '> *': {\n flex: '0 0 auto',\n },\n '.ms-Dialog-button': {\n color: semanticColors.buttonText,\n },\n '.ms-Dialog-button:hover': {\n color: semanticColors.buttonTextHovered,\n borderRadius: effects.roundedCorner2,\n }\n },\n _c[\"@media (min-width: \" + ScreenWidthMinSmall + \"px) and (max-width: \" + ScreenWidthMaxSmall + \"px)\"] = {\n padding: '15px 8px 0 0',\n },\n _c),\n },\n ],\n };\n};\n//# sourceMappingURL=DialogContent.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogContentBase } from './DialogContent.base';\nimport { getStyles } from './DialogContent.styles';\nexport var DialogContent = styled(DialogContentBase, getStyles, undefined, { scope: 'DialogContent' });\n//# sourceMappingURL=DialogContent.js.map","import { ResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nexport { ResponsiveMode }; // Exported because the type is an optional prop and not exported otherwise.\n/**\n * {@docCategory Dialog}\n */\nexport var DialogType;\n(function (DialogType) {\n /** Standard dialog */\n DialogType[DialogType[\"normal\"] = 0] = \"normal\";\n /** Dialog with large header banner */\n DialogType[DialogType[\"largeHeader\"] = 1] = \"largeHeader\";\n /** Dialog with an 'x' close button in the upper-right corner */\n DialogType[DialogType[\"close\"] = 2] = \"close\";\n})(DialogType || (DialogType = {}));\n//# sourceMappingURL=DialogContent.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DialogFooterBase = /** @class */ (function (_super) {\n __extends(DialogFooterBase, _super);\n function DialogFooterBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DialogFooterBase.prototype.render = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.actions },\n React.createElement(\"div\", { className: this._classNames.actionsRight }, this._renderChildrenAsActions())));\n };\n DialogFooterBase.prototype._renderChildrenAsActions = function () {\n var _this = this;\n return React.Children.map(this.props.children, function (child) {\n return child ? React.createElement(\"span\", { className: _this._classNames.action }, child) : null;\n });\n };\n return DialogFooterBase;\n}(React.Component));\nexport { DialogFooterBase };\n//# sourceMappingURL=DialogFooter.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n actions: 'ms-Dialog-actions',\n action: 'ms-Dialog-action',\n actionsRight: 'ms-Dialog-actionsRight',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n actions: [\n classNames.actions,\n {\n position: 'relative',\n width: '100%',\n minHeight: '24px',\n lineHeight: '24px',\n margin: '16px 0 0',\n fontSize: '0',\n selectors: {\n '.ms-Button': {\n lineHeight: 'normal',\n },\n },\n },\n className,\n ],\n action: [\n classNames.action,\n {\n margin: '0 4px',\n },\n ],\n actionsRight: [\n classNames.actionsRight,\n {\n textAlign: 'right',\n marginRight: '-4px',\n fontSize: '0',\n },\n ],\n };\n};\n//# sourceMappingURL=DialogFooter.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogFooterBase } from './DialogFooter.base';\nimport { getStyles } from './DialogFooter.styles';\nexport var DialogFooter = styled(DialogFooterBase, getStyles, undefined, { scope: 'DialogFooter' });\n//# sourceMappingURL=DialogFooter.js.map","export var getStyles = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n if (getClassNames) {\n var names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n return (React.createElement(\"span\", { className: classNames.wrapper },\n React.createElement(\"span\", { className: classNames.divider })));\n};\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes, getNativeProps, divProperties, warnDeprecations, initializeComponentRef, } from '../../Utilities';\nimport { DocumentCardType, } from './DocumentCard.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'DocumentCard';\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardBase = /** @class */ (function (_super) {\n __extends(DocumentCardBase, _super);\n function DocumentCardBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootElement = React.createRef();\n _this._onClick = function (ev) {\n _this._onAction(ev);\n };\n _this._onKeyDown = function (ev) {\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n _this._onAction(ev);\n }\n };\n _this._onAction = function (ev) {\n var _a = _this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, onClickTarget = _a.onClickTarget;\n if (onClick) {\n onClick(ev);\n }\n else if (!onClick && onClickHref) {\n // If no onClick Function was provided and we do have an onClickHref, redirect to the onClickHref\n if (onClickTarget) {\n window.open(onClickHref, onClickTarget, 'noreferrer noopener nofollow');\n }\n else {\n window.location.href = onClickHref;\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n accentColor: undefined,\n });\n return _this;\n }\n DocumentCardBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, children = _a.children, type = _a.type, accentColor = _a.accentColor, styles = _a.styles, theme = _a.theme, className = _a.className;\n var nativeProps = getNativeProps(this.props, divProperties, [\n 'className',\n 'onClick',\n 'type',\n 'role',\n ]);\n var actionable = onClick || onClickHref ? true : false;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n actionable: actionable,\n compact: type === DocumentCardType.compact ? true : false,\n });\n // Override the border color if an accent color was provided (compact card only)\n var style;\n if (type === DocumentCardType.compact && accentColor) {\n style = {\n borderBottomColor: accentColor,\n };\n }\n // if this element is actionable it should have an aria role\n var role = this.props.role || (actionable ? (onClick ? 'button' : 'link') : undefined);\n var tabIndex = actionable ? 0 : undefined;\n return (React.createElement(\"div\", __assign({ ref: this._rootElement, tabIndex: tabIndex, \"data-is-focusable\": actionable, role: role, className: this._classNames.root, onKeyDown: actionable ? this._onKeyDown : undefined, onClick: actionable ? this._onClick : undefined, style: style }, nativeProps), children));\n };\n DocumentCardBase.prototype.focus = function () {\n if (this._rootElement.current) {\n this._rootElement.current.focus();\n }\n };\n DocumentCardBase.defaultProps = {\n type: DocumentCardType.normal,\n };\n return DocumentCardBase;\n}(React.Component));\nexport { DocumentCardBase };\n//# sourceMappingURL=DocumentCard.base.js.map","import { getGlobalClassNames, getInputFocusStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { DocumentCardPreviewGlobalClassNames as previewClassNames } from './DocumentCardPreview.styles';\nimport { DocumentCardActivityGlobalClassNames as activityClassNames } from './DocumentCardActivity.styles';\nimport { DocumentCardTitleGlobalClassNames as titleClassNames } from './DocumentCardTitle.styles';\nimport { DocumentCardLocationGlobalClassNames as locationClassNames } from './DocumentCardLocation.styles';\nvar GlobalClassNames = {\n root: 'ms-DocumentCard',\n rootActionable: 'ms-DocumentCard--actionable',\n rootCompact: 'ms-DocumentCard--compact',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme, actionable = props.actionable, compact = props.compact;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n WebkitFontSmoothing: 'antialiased',\n backgroundColor: palette.white,\n border: \"1px solid \" + palette.neutralLight,\n maxWidth: '320px',\n minWidth: '206px',\n userSelect: 'none',\n position: 'relative',\n selectors: (_a = {\n ':focus': {\n outline: '0px solid',\n }\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = getInputFocusStyle(palette.neutralSecondary, effects.roundedCorner2),\n _a[\".\" + locationClassNames.root + \" + .\" + titleClassNames.root] = {\n paddingTop: '4px',\n },\n _a),\n },\n actionable && [\n classNames.rootActionable,\n {\n selectors: {\n ':hover': {\n cursor: 'pointer',\n borderColor: palette.neutralTertiaryAlt,\n },\n ':hover:after': {\n content: '\" \"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n border: \"1px solid \" + palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n },\n },\n },\n ],\n compact && [\n classNames.rootCompact,\n {\n display: 'flex',\n maxWidth: '480px',\n height: '108px',\n selectors: (_b = {},\n _b[\".\" + previewClassNames.root] = {\n borderRight: \"1px solid \" + palette.neutralLight,\n borderBottom: 0,\n maxHeight: '106px',\n maxWidth: '144px',\n },\n _b[\".\" + previewClassNames.icon] = {\n maxHeight: '32px',\n maxWidth: '32px',\n },\n _b[\".\" + activityClassNames.root] = {\n paddingBottom: '12px',\n },\n _b[\".\" + titleClassNames.root] = {\n paddingBottom: '12px 16px 8px 16px',\n fontSize: fonts.mediumPlus.fontSize,\n lineHeight: '16px',\n },\n _b),\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCard.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardBase } from './DocumentCard.base';\nimport { getStyles } from './DocumentCard.styles';\nexport var DocumentCard = styled(DocumentCardBase, getStyles, undefined, { scope: 'DocumentCard' });\n//# sourceMappingURL=DocumentCard.js.map","/**\n * {@docCategory DocumentCard}\n */\nexport var DocumentCardType;\n(function (DocumentCardType) {\n /**\n * Standard DocumentCard.\n */\n DocumentCardType[DocumentCardType[\"normal\"] = 0] = \"normal\";\n /**\n * Compact layout. Displays the preview beside the details, rather than above.\n */\n DocumentCardType[DocumentCardType[\"compact\"] = 1] = \"compact\";\n})(DocumentCardType || (DocumentCardType = {}));\n//# sourceMappingURL=DocumentCard.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nimport { IconButton } from '../../Button';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardActionsBase = /** @class */ (function (_super) {\n __extends(DocumentCardActionsBase, _super);\n function DocumentCardActionsBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardActionsBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, actions = _a.actions, views = _a.views, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.root },\n actions &&\n actions.map(function (action, index) {\n return (React.createElement(\"div\", { className: _this._classNames.action, key: index },\n React.createElement(IconButton, __assign({}, action))));\n }),\n views > 0 && (React.createElement(\"div\", { className: this._classNames.views },\n React.createElement(Icon, { iconName: \"View\", className: this._classNames.viewsIcon }),\n views))));\n };\n return DocumentCardActionsBase;\n}(React.Component));\nexport { DocumentCardActionsBase };\n//# sourceMappingURL=DocumentCardActions.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar ACTION_SIZE = 34;\nvar HORIZONTAL_PADDING = 12;\nvar VERTICAL_PADDING = 4;\nvar GlobalClassNames = {\n root: 'ms-DocumentCardActions',\n action: 'ms-DocumentCardActions-action',\n views: 'ms-DocumentCardActions-views',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n height: ACTION_SIZE + \"px\",\n padding: VERTICAL_PADDING + \"px \" + HORIZONTAL_PADDING + \"px\",\n position: 'relative',\n },\n className,\n ],\n action: [\n classNames.action,\n {\n float: 'left',\n marginRight: '4px',\n color: palette.neutralSecondary,\n cursor: 'pointer',\n selectors: {\n '.ms-Button': {\n fontSize: fonts.mediumPlus.fontSize,\n height: ACTION_SIZE,\n width: ACTION_SIZE,\n },\n '.ms-Button:hover .ms-Button-icon': {\n color: theme.semanticColors.buttonText,\n cursor: 'pointer',\n },\n },\n },\n ],\n views: [\n classNames.views,\n {\n textAlign: 'right',\n lineHeight: ACTION_SIZE,\n },\n ],\n viewsIcon: {\n marginRight: '8px',\n fontSize: fonts.medium.fontSize,\n verticalAlign: 'top',\n },\n };\n};\n//# sourceMappingURL=DocumentCardActions.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardActionsBase } from './DocumentCardActions.base';\nimport { getStyles } from './DocumentCardActions.styles';\nexport var DocumentCardActions = styled(DocumentCardActionsBase, getStyles, undefined, { scope: 'DocumentCardActions' });\n//# sourceMappingURL=DocumentCardActions.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport { PersonaSize } from '../../Persona';\nimport { PersonaCoin } from '../../PersonaCoin';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardActivityBase = /** @class */ (function (_super) {\n __extends(DocumentCardActivityBase, _super);\n function DocumentCardActivityBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardActivityBase.prototype.render = function () {\n var _a = this.props, activity = _a.activity, people = _a.people, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n multiplePeople: people.length > 1,\n });\n if (!people || people.length === 0) {\n return null;\n }\n return (React.createElement(\"div\", { className: this._classNames.root },\n this._renderAvatars(people),\n React.createElement(\"div\", { className: this._classNames.details },\n React.createElement(\"span\", { className: this._classNames.name }, this._getNameString(people)),\n React.createElement(\"span\", { className: this._classNames.activity }, activity))));\n };\n DocumentCardActivityBase.prototype._renderAvatars = function (people) {\n return (React.createElement(\"div\", { className: this._classNames.avatars },\n people.length > 1 ? this._renderAvatar(people[1]) : null,\n this._renderAvatar(people[0])));\n };\n DocumentCardActivityBase.prototype._renderAvatar = function (person) {\n return (React.createElement(\"div\", { className: this._classNames.avatar },\n React.createElement(PersonaCoin, { imageInitials: person.initials, text: person.name, imageUrl: person.profileImageSrc, initialsColor: person.initialsColor, allowPhoneInitials: person.allowPhoneInitials, role: \"presentation\", size: PersonaSize.size32 })));\n };\n DocumentCardActivityBase.prototype._getNameString = function (people) {\n var nameString = people[0].name;\n if (people.length >= 2) {\n nameString += ' +' + (people.length - 1);\n }\n return nameString;\n };\n return DocumentCardActivityBase;\n}(React.Component));\nexport { DocumentCardActivityBase };\n//# sourceMappingURL=DocumentCardActivity.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardActivityBase } from './DocumentCardActivity.base';\nimport { getStyles } from './DocumentCardActivity.styles';\nexport var DocumentCardActivity = styled(DocumentCardActivityBase, getStyles, undefined, { scope: 'DocumentCardActivity' });\n//# sourceMappingURL=DocumentCardActivity.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nvar VERTICAL_PADDING = 8;\nvar HORIZONTAL_PADDING = 16;\nvar IMAGE_SIZE = 32;\nvar PERSONA_TEXT_GUTTER = 8;\nexport var DocumentCardActivityGlobalClassNames = {\n root: 'ms-DocumentCardActivity',\n multiplePeople: 'ms-DocumentCardActivity--multiplePeople',\n details: 'ms-DocumentCardActivity-details',\n name: 'ms-DocumentCardActivity-name',\n activity: 'ms-DocumentCardActivity-activity',\n avatars: 'ms-DocumentCardActivity-avatars',\n avatar: 'ms-DocumentCardActivity-avatar',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, multiplePeople = props.multiplePeople;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardActivityGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n multiplePeople && classNames.multiplePeople,\n {\n padding: VERTICAL_PADDING + \"px \" + HORIZONTAL_PADDING + \"px\",\n position: 'relative',\n },\n className,\n ],\n avatars: [\n classNames.avatars,\n {\n marginLeft: '-2px',\n height: '32px',\n },\n ],\n avatar: [\n classNames.avatar,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n position: 'relative',\n textAlign: 'center',\n width: IMAGE_SIZE,\n height: IMAGE_SIZE,\n selectors: {\n '&:after': {\n content: '\" \"',\n position: 'absolute',\n left: '-1px',\n top: '-1px',\n right: '-1px',\n bottom: '-1px',\n border: \"2px solid \" + palette.white,\n borderRadius: '50%',\n },\n ':nth-of-type(2)': multiplePeople && {\n marginLeft: '-16px',\n },\n },\n },\n ],\n details: [\n classNames.details,\n {\n left: multiplePeople\n ? HORIZONTAL_PADDING + IMAGE_SIZE * 1.5 + PERSONA_TEXT_GUTTER + \"px\"\n : HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER + \"px\",\n height: IMAGE_SIZE,\n position: 'absolute',\n top: VERTICAL_PADDING,\n width: \"calc(100% - \" + (HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER + HORIZONTAL_PADDING) + \"px)\",\n },\n ],\n name: [\n classNames.name,\n {\n display: 'block',\n fontSize: fonts.small.fontSize,\n lineHeight: '15px',\n height: '15px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: palette.neutralPrimary,\n fontWeight: FontWeights.semibold,\n },\n ],\n activity: [\n classNames.activity,\n {\n display: 'block',\n fontSize: fonts.small.fontSize,\n lineHeight: '15px',\n height: '15px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: palette.neutralSecondary,\n },\n ],\n };\n};\n//# sourceMappingURL=DocumentCardActivity.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardDetailsBase = /** @class */ (function (_super) {\n __extends(DocumentCardDetailsBase, _super);\n function DocumentCardDetailsBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardDetailsBase.prototype.render = function () {\n var _a = this.props, children = _a.children, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return React.createElement(\"div\", { className: this._classNames.root }, children);\n };\n return DocumentCardDetailsBase;\n}(React.Component));\nexport { DocumentCardDetailsBase };\n//# sourceMappingURL=DocumentCardDetails.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DocumentCardDetails',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n justifyContent: 'space-between',\n overflow: 'hidden',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardDetails.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardDetailsBase } from './DocumentCardDetails.base';\nimport { getStyles } from './DocumentCardDetails.styles';\nexport var DocumentCardDetails = styled(DocumentCardDetailsBase, getStyles, undefined, { scope: 'DocumentCardDetails' });\n//# sourceMappingURL=DocumentCardDetails.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Icon } from '../../Icon';\nimport { Image } from '../../Image';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardImageBase = /** @class */ (function (_super) {\n __extends(DocumentCardImageBase, _super);\n function DocumentCardImageBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoad = function () {\n _this.setState({ imageHasLoaded: true });\n };\n initializeComponentRef(_this);\n _this.state = { imageHasLoaded: false };\n return _this;\n }\n DocumentCardImageBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, width = _a.width, height = _a.height, imageFit = _a.imageFit, imageSrc = _a.imageSrc;\n this._classNames = getClassNames(styles, this.props);\n return (React.createElement(\"div\", { className: this._classNames.root },\n imageSrc && (React.createElement(Image, { width: width, height: height, imageFit: imageFit, src: imageSrc, role: \"presentation\", alt: \"\", onLoad: this._onImageLoad })),\n this.state.imageHasLoaded ? this._renderCornerIcon() : this._renderCenterIcon()));\n };\n DocumentCardImageBase.prototype._renderCenterIcon = function () {\n var iconProps = this.props.iconProps;\n return (React.createElement(\"div\", { className: this._classNames.centeredIconWrapper },\n React.createElement(Icon, __assign({ className: this._classNames.centeredIcon }, iconProps))));\n };\n DocumentCardImageBase.prototype._renderCornerIcon = function () {\n var iconProps = this.props.iconProps;\n return React.createElement(Icon, __assign({ className: this._classNames.cornerIcon }, iconProps));\n };\n return DocumentCardImageBase;\n}(React.Component));\nexport { DocumentCardImageBase };\n//# sourceMappingURL=DocumentCardImage.base.js.map","var centeredIconSize = '42px';\nvar cornerIconSize = '32px';\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, height = props.height, width = props.width;\n var palette = theme.palette;\n return {\n root: [\n {\n borderBottom: \"1px solid \" + palette.neutralLight,\n position: 'relative',\n backgroundColor: palette.neutralLighterAlt,\n overflow: \"hidden\",\n height: height && height + \"px\",\n width: width && width + \"px\",\n },\n className,\n ],\n centeredIcon: [\n {\n height: centeredIconSize,\n width: centeredIconSize,\n fontSize: centeredIconSize,\n },\n ],\n centeredIconWrapper: [\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n ],\n cornerIcon: [\n {\n left: '10px',\n bottom: '10px',\n height: cornerIconSize,\n width: cornerIconSize,\n fontSize: cornerIconSize,\n position: 'absolute',\n overflow: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=DocumentCardImage.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardImageBase } from './DocumentCardImage.base';\nimport { getStyles } from './DocumentCardImage.styles';\nexport var DocumentCardImage = styled(DocumentCardImageBase, getStyles, undefined, { scope: 'DocumentCardImage' });\n//# sourceMappingURL=DocumentCardImage.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardLocationBase = /** @class */ (function (_super) {\n __extends(DocumentCardLocationBase, _super);\n function DocumentCardLocationBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardLocationBase.prototype.render = function () {\n var _a = this.props, location = _a.location, locationHref = _a.locationHref, ariaLabel = _a.ariaLabel, onClick = _a.onClick, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"a\", { className: this._classNames.root, href: locationHref, onClick: onClick, \"aria-label\": ariaLabel }, location));\n };\n return DocumentCardLocationBase;\n}(React.Component));\nexport { DocumentCardLocationBase };\n//# sourceMappingURL=DocumentCardLocation.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardLocationBase } from './DocumentCardLocation.base';\nimport { getStyles } from './DocumentCardLocation.styles';\nexport var DocumentCardLocation = styled(DocumentCardLocationBase, getStyles, undefined, { scope: 'DocumentCardLocation' });\n//# sourceMappingURL=DocumentCardLocation.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nexport var DocumentCardLocationGlobalClassNames = {\n root: 'ms-DocumentCardLocation',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardLocationGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.small,\n {\n color: palette.themePrimary,\n display: 'block',\n fontWeight: FontWeights.semibold,\n overflow: 'hidden',\n padding: '8px 16px',\n position: 'relative',\n textDecoration: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n selectors: {\n ':hover': {\n color: palette.themePrimary,\n cursor: 'pointer',\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardLocation.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Icon } from '../../Icon';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardLogoBase = /** @class */ (function (_super) {\n __extends(DocumentCardLogoBase, _super);\n function DocumentCardLogoBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardLogoBase.prototype.render = function () {\n var _a = this.props, logoIcon = _a.logoIcon, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.root },\n React.createElement(Icon, { iconName: logoIcon })));\n };\n return DocumentCardLogoBase;\n}(React.Component));\nexport { DocumentCardLogoBase };\n//# sourceMappingURL=DocumentCardLogo.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DocumentCardLogo',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n // eslint-disable-next-line deprecation/deprecation\n fontSize: fonts.xxLargePlus.fontSize,\n color: palette.themePrimary,\n display: 'block',\n padding: '16px 16px 0 16px',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardLogo.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardLogoBase } from './DocumentCardLogo.base';\nimport { getStyles } from './DocumentCardLogo.styles';\nexport var DocumentCardLogo = styled(DocumentCardLogoBase, getStyles, undefined, { scope: 'DocumentCardLogo' });\n//# sourceMappingURL=DocumentCardLogo.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Icon } from '../../Icon';\nimport { Image } from '../../Image';\nimport { Link } from '../../Link';\nimport { classNamesFunction, css, initializeComponentRef } from '../../Utilities';\nvar LIST_ITEM_COUNT = 3;\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardPreviewBase = /** @class */ (function (_super) {\n __extends(DocumentCardPreviewBase, _super);\n function DocumentCardPreviewBase(props) {\n var _this = _super.call(this, props) || this;\n _this._renderPreviewList = function (previewImages) {\n var getOverflowDocumentCountText = _this.props.getOverflowDocumentCountText;\n // Determine how many documents we won't be showing\n var overflowDocumentCount = previewImages.length - LIST_ITEM_COUNT;\n // Determine the overflow text that will be rendered after the preview list.\n var overflowText = overflowDocumentCount\n ? getOverflowDocumentCountText\n ? getOverflowDocumentCountText(overflowDocumentCount)\n : '+' + overflowDocumentCount\n : null;\n // Create list items for the documents to be shown\n var fileListItems = previewImages.slice(0, LIST_ITEM_COUNT).map(function (file, fileIndex) { return (React.createElement(\"li\", { key: fileIndex },\n React.createElement(Image, { className: _this._classNames.fileListIcon, src: file.iconSrc, role: \"presentation\", alt: \"\", width: \"16px\", height: \"16px\" }),\n React.createElement(Link, __assign({ className: _this._classNames.fileListLink }, (file.linkProps, { href: (file.linkProps && file.linkProps.href) || file.url })), file.name))); });\n return (React.createElement(\"div\", null,\n React.createElement(\"ul\", { className: _this._classNames.fileList }, fileListItems),\n overflowText && React.createElement(\"span\", { className: _this._classNames.fileListOverflowText }, overflowText)));\n };\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardPreviewBase.prototype.render = function () {\n var _a = this.props, previewImages = _a.previewImages, styles = _a.styles, theme = _a.theme, className = _a.className;\n var style;\n var preview;\n var isFileList = previewImages.length > 1;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isFileList: isFileList,\n });\n if (previewImages.length > 1) {\n // Render a list of files\n preview = this._renderPreviewList(previewImages);\n }\n else if (previewImages.length === 1) {\n // Render a single preview\n preview = this._renderPreviewImage(previewImages[0]);\n // Override the border color if an accent color was provided\n /* eslint-disable deprecation/deprecation */\n if (previewImages[0].accentColor) {\n style = {\n borderBottomColor: previewImages[0].accentColor,\n };\n }\n /* eslint-enable deprecation/deprecation */\n }\n return (React.createElement(\"div\", { className: this._classNames.root, style: style }, preview));\n };\n DocumentCardPreviewBase.prototype._renderPreviewImage = function (previewImage) {\n var width = previewImage.width, height = previewImage.height, imageFit = previewImage.imageFit, previewIconProps = previewImage.previewIconProps, previewIconContainerClass = previewImage.previewIconContainerClass;\n if (previewIconProps) {\n return (React.createElement(\"div\", { className: css(this._classNames.previewIcon, previewIconContainerClass), style: { width: width, height: height } },\n React.createElement(Icon, __assign({}, previewIconProps))));\n }\n var image = (React.createElement(Image, { width: width, height: height, imageFit: imageFit, src: previewImage.previewImageSrc, role: \"presentation\", alt: \"\" }));\n var icon;\n if (previewImage.iconSrc) {\n icon = React.createElement(Image, { className: this._classNames.icon, src: previewImage.iconSrc, role: \"presentation\", alt: \"\" });\n }\n return (React.createElement(\"div\", null,\n image,\n icon));\n };\n return DocumentCardPreviewBase;\n}(React.Component));\nexport { DocumentCardPreviewBase };\n//# sourceMappingURL=DocumentCardPreview.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardPreviewBase } from './DocumentCardPreview.base';\nimport { getStyles } from './DocumentCardPreview.styles';\nexport var DocumentCardPreview = styled(DocumentCardPreviewBase, getStyles, undefined, { scope: 'DocumentCardPreview' });\n//# sourceMappingURL=DocumentCardPreview.js.map","import { getFocusStyle, getGlobalClassNames, HighContrastSelector } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nexport var DocumentCardPreviewGlobalClassNames = {\n root: 'ms-DocumentCardPreview',\n icon: 'ms-DocumentCardPreview-icon',\n iconContainer: 'ms-DocumentCardPreview-iconContainer',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, className = props.className, isFileList = props.isFileList;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardPreviewGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.small,\n {\n backgroundColor: isFileList ? palette.white : palette.neutralLighterAlt,\n borderBottom: \"1px solid \" + palette.neutralLight,\n overflow: \"hidden\",\n position: 'relative',\n },\n className,\n ],\n previewIcon: [\n classNames.iconContainer,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n },\n ],\n icon: [\n classNames.icon,\n {\n left: '10px',\n bottom: '10px',\n position: 'absolute',\n },\n ],\n fileList: {\n padding: '16px 16px 0 16px',\n listStyleType: 'none',\n margin: 0,\n selectors: {\n li: {\n height: '16px',\n lineHeight: '16px',\n marginBottom: '8px',\n overflow: 'hidden',\n },\n },\n },\n fileListIcon: {\n display: 'inline-block',\n marginRight: '8px',\n },\n fileListLink: [\n getFocusStyle(theme, {\n highContrastStyle: {\n border: '1px solid WindowText',\n outline: 'none',\n },\n }),\n {\n boxSizing: 'border-box',\n color: palette.neutralDark,\n overflow: 'hidden',\n display: 'inline-block',\n textDecoration: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n width: 'calc(100% - 24px)',\n selectors: (_a = {\n ':hover': {\n color: palette.themePrimary,\n }\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n outline: 'none',\n },\n _b),\n },\n _a),\n },\n ],\n fileListOverflowText: {\n padding: '0px 16px 8px 16px',\n display: 'block',\n },\n };\n};\n//# sourceMappingURL=DocumentCardPreview.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardStatusBase = /** @class */ (function (_super) {\n __extends(DocumentCardStatusBase, _super);\n function DocumentCardStatusBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardStatusBase.prototype.render = function () {\n var _a = this.props, statusIcon = _a.statusIcon, status = _a.status, styles = _a.styles, theme = _a.theme, className = _a.className;\n var iconProps = {\n iconName: statusIcon,\n styles: {\n root: { padding: '8px' },\n },\n };\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.root },\n statusIcon && React.createElement(Icon, __assign({}, iconProps)),\n status));\n };\n return DocumentCardStatusBase;\n}(React.Component));\nexport { DocumentCardStatusBase };\n//# sourceMappingURL=DocumentCardStatus.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DocumentCardStatus',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n margin: '8px 16px',\n color: palette.neutralPrimary,\n backgroundColor: palette.neutralLighter,\n height: '32px',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardStatus.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardStatusBase } from './DocumentCardStatus.base';\nimport { getStyles } from './DocumentCardStatus.styles';\nexport var DocumentCardStatus = styled(DocumentCardStatusBase, getStyles, undefined, { scope: 'DocumentCardStatus' });\n//# sourceMappingURL=DocumentCardStatus.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, classNamesFunction } from '../../Utilities';\nimport { initializeComponentRef } from '@uifabric/utilities';\nvar getClassNames = classNamesFunction();\nvar TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD = 5;\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardTitleBase = /** @class */ (function (_super) {\n __extends(DocumentCardTitleBase, _super);\n function DocumentCardTitleBase(props) {\n var _this = _super.call(this, props) || this;\n _this._titleElement = React.createRef();\n _this._measureTitleElement = React.createRef();\n // Truncate logic here way can't handle the case that chars with different widths are mixed very well.\n // Let _shrinkTitle take care of that.\n _this._truncateTitle = function () {\n if (!_this.state.needMeasurement) {\n return;\n }\n _this._async.requestAnimationFrame(_this._truncateWhenInAnimation);\n };\n _this._truncateWhenInAnimation = function () {\n var originalTitle = _this.props.title;\n var element = _this._measureTitleElement.current;\n if (element) {\n var style = getComputedStyle(element);\n if (style.width && style.lineHeight && style.height) {\n var clientWidth = element.clientWidth, scrollWidth = element.scrollWidth;\n var lines = Math.floor((parseInt(style.height, 10) + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD) / parseInt(style.lineHeight, 10));\n // Use overflow to predict truncated length.\n // Take an example.The text is: A text with A very long text that need to be truncated.ppt\n // if container is like\n // |A text with A very| long text that need to be truncated.ppt\n // The scroll width is 58, (take two | out of length)\n // The client width is 18\n // the overflow rate is scrollWidth/clientWidth which should be close to length(overflowText)/length(visualText)\n // And the length of remaining text should be truncated is (original Length)/(58/18) -3 = 15.\n // So that the logic can predict truncated text well.\n // first piece will be `A text `, * second piece will be `ated.ppt`\n // |A text ...ated.ppt|\n var overFlowRate = scrollWidth / (parseInt(style.width, 10) * lines);\n if (overFlowRate > 1) {\n var truncatedLength = originalTitle.length / overFlowRate - 3 /** Saved for separator */;\n return _this.setState({\n truncatedTitleFirstPiece: originalTitle.slice(0, truncatedLength / 2),\n truncatedTitleSecondPiece: originalTitle.slice(originalTitle.length - truncatedLength / 2),\n clientWidth: clientWidth,\n needMeasurement: false,\n });\n }\n }\n }\n return _this.setState({ needMeasurement: false });\n };\n _this._shrinkTitle = function () {\n var _a = _this.state, truncatedTitleFirstPiece = _a.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _a.truncatedTitleSecondPiece;\n if (truncatedTitleFirstPiece && truncatedTitleSecondPiece) {\n var titleElement = _this._titleElement.current;\n if (!titleElement) {\n return;\n }\n if (titleElement.scrollHeight > titleElement.clientHeight + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD ||\n titleElement.scrollWidth > titleElement.clientWidth) {\n _this.setState({\n truncatedTitleFirstPiece: truncatedTitleFirstPiece.slice(0, truncatedTitleFirstPiece.length - 1),\n truncatedTitleSecondPiece: truncatedTitleSecondPiece.slice(1),\n });\n }\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n truncatedTitleFirstPiece: '',\n truncatedTitleSecondPiece: '',\n previousTitle: props.title,\n needMeasurement: !!props.shouldTruncate,\n };\n return _this;\n }\n DocumentCardTitleBase.prototype.componentDidUpdate = function () {\n if (this.props.title !== this.state.previousTitle) {\n this.setState({\n truncatedTitleFirstPiece: undefined,\n truncatedTitleSecondPiece: undefined,\n clientWidth: undefined,\n previousTitle: this.props.title,\n needMeasurement: !!this.props.shouldTruncate,\n });\n }\n this._events.off(window, 'resize', this._updateTruncation);\n if (this.props.shouldTruncate) {\n this._truncateTitle();\n requestAnimationFrame(this._shrinkTitle);\n this._events.on(window, 'resize', this._updateTruncation);\n }\n };\n DocumentCardTitleBase.prototype.componentDidMount = function () {\n if (this.props.shouldTruncate) {\n this._truncateTitle();\n this._events.on(window, 'resize', this._updateTruncation);\n }\n };\n DocumentCardTitleBase.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n DocumentCardTitleBase.prototype.render = function () {\n var _a = this.props, title = _a.title, shouldTruncate = _a.shouldTruncate, showAsSecondaryTitle = _a.showAsSecondaryTitle, styles = _a.styles, theme = _a.theme, className = _a.className;\n var _b = this.state, truncatedTitleFirstPiece = _b.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _b.truncatedTitleSecondPiece, needMeasurement = _b.needMeasurement;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showAsSecondaryTitle: showAsSecondaryTitle,\n });\n var documentCardTitle;\n if (needMeasurement) {\n documentCardTitle = (React.createElement(\"div\", { className: this._classNames.root, ref: this._measureTitleElement, title: title, style: { whiteSpace: 'nowrap' } }, title));\n }\n else if (shouldTruncate && truncatedTitleFirstPiece && truncatedTitleSecondPiece) {\n documentCardTitle = (React.createElement(\"div\", { className: this._classNames.root, ref: this._titleElement, title: title },\n truncatedTitleFirstPiece,\n \"\\u2026\",\n truncatedTitleSecondPiece));\n }\n else {\n documentCardTitle = (React.createElement(\"div\", { className: this._classNames.root, ref: this._titleElement, title: title }, title));\n }\n return documentCardTitle;\n };\n DocumentCardTitleBase.prototype._updateTruncation = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n // Only update truncation if the title's size has changed since the last time we truncated\n if (_this._titleElement.current) {\n var clientWidth = _this._titleElement.current.clientWidth;\n // Throttle truncation so that it doesn't happen during a window resize\n clearTimeout(_this._titleTruncationTimer);\n if (_this.state.clientWidth !== clientWidth) {\n _this._titleTruncationTimer = _this._async.setTimeout(function () {\n return _this.setState({\n truncatedTitleFirstPiece: undefined,\n truncatedTitleSecondPiece: undefined,\n needMeasurement: true,\n });\n }, 250);\n }\n }\n });\n };\n return DocumentCardTitleBase;\n}(React.Component));\nexport { DocumentCardTitleBase };\n//# sourceMappingURL=DocumentCardTitle.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardTitleBase } from './DocumentCardTitle.base';\nimport { getStyles } from './DocumentCardTitle.styles';\nexport var DocumentCardTitle = styled(DocumentCardTitleBase, getStyles, undefined, { scope: 'DocumentCardTitle' });\n//# sourceMappingURL=DocumentCardTitle.js.map","import { getGlobalClassNames } from '../../Styling';\nexport var DocumentCardTitleGlobalClassNames = {\n root: 'ms-DocumentCardTitle',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, showAsSecondaryTitle = props.showAsSecondaryTitle;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardTitleGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n showAsSecondaryTitle ? fonts.medium : fonts.large,\n {\n padding: '8px 16px',\n display: 'block',\n overflow: 'hidden',\n wordWrap: 'break-word',\n height: showAsSecondaryTitle ? '45px' : '38px',\n lineHeight: showAsSecondaryTitle ? '18px' : '21px',\n color: showAsSecondaryTitle ? palette.neutralSecondary : palette.neutralPrimary,\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardTitle.styles.js.map","import { __spreadArrays } from \"tslib\";\nimport { DropdownMenuItemType } from '../Dropdown.types';\n/**\n * A utility class to cache size and position in cache.\n *\n * Dropdown options has non-selectable display types. It is therefore not cheap to determine\n * the total number of actual selectable options as well as the position an option is in the\n * list of options - O(n) cost for each lookup.\n *\n * Given that we potentially have to make this determination on every single render pass, this\n * cache should provide a little bit of relief.\n */\nvar DropdownSizePosCache = /** @class */ (function () {\n function DropdownSizePosCache() {\n this._size = 0;\n }\n /**\n * Invalidates the cache and recalculate the size of selectable options.\n */\n DropdownSizePosCache.prototype.updateOptions = function (options) {\n var displayOnlyOptionsCache = [];\n var size = 0;\n for (var i = 0; i < options.length; i++) {\n if (options[i].itemType === DropdownMenuItemType.Divider || options[i].itemType === DropdownMenuItemType.Header) {\n displayOnlyOptionsCache.push(i);\n }\n else if (!options[i].hidden) {\n size++;\n }\n }\n this._size = size;\n this._displayOnlyOptionsCache = displayOnlyOptionsCache;\n this._cachedOptions = __spreadArrays(options);\n };\n Object.defineProperty(DropdownSizePosCache.prototype, \"optionSetSize\", {\n /**\n * The size of all the selectable options.\n */\n get: function () {\n return this._size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropdownSizePosCache.prototype, \"cachedOptions\", {\n /**\n * The chached options array.\n */\n get: function () {\n return this._cachedOptions;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the position of this option element relative to the full set of selectable option elements.\n * Note: the first selectable element is position 1 in the set.\n * @param index The raw index of the option element.\n */\n DropdownSizePosCache.prototype.positionInSet = function (index) {\n if (index === undefined) {\n return undefined;\n }\n // we could possibly memoize this too but this should be good enough, most of the time (the expectation is that\n // when you have a lot of options, the selectable options will heavily dominate over the non-selectable options.\n var offset = 0;\n while (index > this._displayOnlyOptionsCache[offset]) {\n offset++;\n }\n if (this._displayOnlyOptionsCache[offset] === index) {\n throw new Error(\"Unexpected: Option at index \" + index + \" is not a selectable element.\");\n }\n return index - offset + 1;\n };\n return DropdownSizePosCache;\n}());\nexport { DropdownSizePosCache };\n//# sourceMappingURL=DropdownSizePosCache.js.map","import { __assign, __decorate, __extends, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, classNamesFunction, divProperties, findIndex, getDocument, getFirstFocusable, getId, getLastFocusable, getNativeProps, initializeComponentRef, isIOS, isMac, mergeAriaAttributeValues, safeRequestAnimationFrame, warn, warnDeprecations, warnMutuallyExclusive, } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { Checkbox } from '../../Checkbox';\nimport { CommandButton } from '../../Button';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { DropdownMenuItemType, } from './Dropdown.types';\nimport { DropdownSizePosCache } from './utilities/DropdownSizePosCache';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { Label } from '../../Label';\nimport { KeytipData } from '../../KeytipData';\nimport { Panel } from '../../Panel';\nimport { ResponsiveMode, withResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions, } from '../../utilities/selectableOption/index';\nvar COMPONENT_NAME = 'Dropdown';\nvar getClassNames = classNamesFunction();\nvar DropdownBase = /** @class */ (function (_super) {\n __extends(DropdownBase, _super);\n function DropdownBase(props) {\n var _this = _super.call(this, props) || this;\n _this._host = React.createRef();\n _this._focusZone = React.createRef();\n _this._dropDown = React.createRef();\n _this._scrollIdleDelay = 250 /* ms */;\n _this._sizePosCache = new DropdownSizePosCache();\n _this._requestAnimationFrame = safeRequestAnimationFrame(_this);\n _this._onChange = function (event, options, index, checked, multiSelect) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n if (onChange || onChanged) {\n // for single-select, option passed in will always be selected.\n // for multi-select, flip the checked value\n var changedOpt = multiSelect ? __assign(__assign({}, options[index]), { selected: !checked }) : options[index];\n onChange && onChange(__assign(__assign({}, event), { target: _this._dropDown.current }), changedOpt, index);\n onChanged && onChanged(changedOpt, index);\n }\n };\n /** Get either props.placeholder (new name) or props.placeHolder (old name) */\n _this._getPlaceholder = function () {\n // eslint-disable-next-line deprecation/deprecation\n return _this.props.placeholder || _this.props.placeHolder;\n };\n /** Get text in dropdown input as a string */\n _this._getTitle = function (items, _unused) {\n var _a = _this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n return items.map(function (i) { return i.text; }).join(multiSelectDelimiter);\n };\n /** Render text in dropdown input */\n _this._onRenderTitle = function (items) {\n return React.createElement(React.Fragment, null, _this._getTitle(items));\n };\n /** Render placeholder text in dropdown input */\n _this._onRenderPlaceholder = function (props) {\n if (!_this._getPlaceholder()) {\n return null;\n }\n return React.createElement(React.Fragment, null, _this._getPlaceholder());\n };\n /** Render Callout or Panel container and pass in list */\n _this._onRenderContainer = function (props) {\n var calloutProps = props.calloutProps, panelProps = props.panelProps;\n var _a = _this.props, responsiveMode = _a.responsiveMode, dropdownWidth = _a.dropdownWidth;\n var isSmall = responsiveMode <= ResponsiveMode.medium;\n var panelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.panel\n : undefined;\n var calloutWidth = undefined;\n var calloutMinWidth = undefined;\n if (dropdownWidth === 'auto') {\n calloutMinWidth = _this._dropDown.current ? _this._dropDown.current.clientWidth : 0;\n }\n else {\n calloutWidth = dropdownWidth || (_this._dropDown.current ? _this._dropDown.current.clientWidth : 0);\n }\n return isSmall ? (React.createElement(Panel, __assign({ isOpen: true, isLightDismiss: true, onDismiss: _this._onDismiss, hasCloseButton: false, styles: panelStyles }, panelProps), _this._renderFocusableList(props))) : (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHintFixed: false, directionalHint: DirectionalHint.bottomLeftEdge, calloutWidth: calloutWidth, calloutMinWidth: calloutMinWidth }, calloutProps, { className: _this._classNames.callout, target: _this._dropDown.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, onPositioned: _this._onPositioned }), _this._renderFocusableList(props)));\n };\n /** Render Caret Down Icon */\n _this._onRenderCaretDown = function (props) {\n return React.createElement(Icon, { className: _this._classNames.caretDown, iconName: \"ChevronDown\", \"aria-hidden\": true });\n };\n /** Render List of items */\n _this._onRenderList = function (props) {\n var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a;\n var queue = { items: [] };\n var renderedList = [];\n var emptyQueue = function () {\n var newGroup = queue.id\n ? [\n React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n ]\n : queue.items;\n renderedList = __spreadArrays(renderedList, newGroup);\n // Flush items and id\n queue = { items: [] };\n };\n var placeRenderedOptionIntoQueue = function (item, index) {\n /*\n Case Header\n empty queue if it's not already empty\n ensure unique ID for header and set queue ID\n push header into queue\n Case Divider\n push divider into queue if not first item\n empty queue if not already empty\n Default\n push item into queue\n */\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Header:\n queue.items.length > 0 && emptyQueue();\n var id = _this._id + item.key;\n queue.items.push(onRenderItem(__assign(__assign({ id: id }, item), { index: index }), _this._onRenderItem));\n queue.id = id;\n break;\n case SelectableOptionMenuItemType.Divider:\n index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n queue.items.length > 0 && emptyQueue();\n break;\n default:\n queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n }\n };\n // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n props.options.forEach(function (item, index) {\n placeRenderedOptionIntoQueue(item, index);\n });\n // Push remaining items into all renderedList\n queue.items.length > 0 && emptyQueue();\n return React.createElement(React.Fragment, null, renderedList);\n };\n _this._onRenderItem = function (item) {\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Divider:\n return _this._renderSeparator(item);\n case SelectableOptionMenuItemType.Header:\n return _this._renderHeader(item);\n default:\n return _this._renderOption(item);\n }\n };\n _this._renderOption = function (item) {\n var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOption : _a;\n var _b = _this.state.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;\n var isItemSelected = item.index !== undefined && selectedIndices ? selectedIndices.indexOf(item.index) > -1 : false;\n // select the right className based on the combination of selected/disabled\n var itemClassName = item.hidden // predicate: item hidden\n ? _this._classNames.dropdownItemHidden\n : isItemSelected && item.disabled === true // predicate: both selected and disabled\n ? _this._classNames.dropdownItemSelectedAndDisabled\n : isItemSelected // predicate: selected only\n ? _this._classNames.dropdownItemSelected\n : item.disabled === true // predicate: disabled only\n ? _this._classNames.dropdownItemDisabled\n : _this._classNames.dropdownItem;\n var _c = item.title, title = _c === void 0 ? item.text : _c;\n var multiSelectItemStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.multiSelectItem\n : undefined;\n return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: _this._listId + item.index, key: item.key, \"data-index\": item.index, \"data-is-focusable\": !item.disabled, disabled: item.disabled, className: itemClassName, onClick: _this._onItemClick(item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseEnter: _this._onItemMouseEnter.bind(_this, item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseLeave: _this._onMouseItemLeave.bind(_this, item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseMove: _this._onItemMouseMove.bind(_this, item), role: \"option\", \"aria-selected\": isItemSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, title: title, \"aria-posinset\": _this._sizePosCache.positionInSet(item.index), \"aria-setsize\": _this._sizePosCache.optionSetSize }, onRenderOption(item, _this._onRenderOption))) : (React.createElement(Checkbox, { id: _this._listId + item.index, key: item.key, disabled: item.disabled, onChange: _this._onItemClick(item), inputProps: __assign({ 'aria-selected': isItemSelected, onMouseEnter: _this._onItemMouseEnter.bind(_this, item), onMouseLeave: _this._onMouseItemLeave.bind(_this, item), onMouseMove: _this._onItemMouseMove.bind(_this, item), role: 'option' }, {\n 'data-index': item.index,\n 'data-is-focusable': !item.disabled,\n }), label: item.text, title: title, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderLabel: _this._onRenderItemLabel.bind(_this, item), className: itemClassName, checked: isItemSelected, styles: multiSelectItemStyles, ariaPositionInSet: _this._sizePosCache.positionInSet(item.index), ariaSetSize: _this._sizePosCache.optionSetSize }));\n };\n /** Render content of item (i.e. text/icon inside of button) */\n _this._onRenderOption = function (item) {\n return React.createElement(\"span\", { className: _this._classNames.dropdownOptionText }, item.text);\n };\n /** Render custom label for drop down item */\n _this._onRenderItemLabel = function (item) {\n var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOption : _a;\n return onRenderOption(item, _this._onRenderOption);\n };\n _this._onPositioned = function (positions) {\n if (_this._focusZone.current) {\n // Focusing an element can trigger a reflow. Making this wait until there is an animation\n // frame can improve perf significantly.\n _this._requestAnimationFrame(function () {\n var selectedIndices = _this.state.selectedIndices;\n if (_this._focusZone.current) {\n if (selectedIndices && selectedIndices[0] && !_this.props.options[selectedIndices[0]].disabled) {\n var element = getDocument().getElementById(_this._id + \"-list\" + selectedIndices[0]);\n if (element) {\n _this._focusZone.current.focusElement(element);\n }\n }\n else {\n _this._focusZone.current.focus();\n }\n }\n });\n }\n if (!_this.state.calloutRenderEdge || _this.state.calloutRenderEdge !== positions.targetEdge) {\n _this.setState({\n calloutRenderEdge: positions.targetEdge,\n });\n }\n };\n _this._onItemClick = function (item) {\n return function (event) {\n if (!item.disabled) {\n _this.setSelectedIndex(event, item.index);\n if (!_this.props.multiSelect) {\n // only close the callout when it's in single-select mode\n _this.setState({\n isOpen: false,\n });\n }\n }\n };\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n _this._scrollIdleTimeoutId = setTimeout(function () {\n _this._isScrollIdle = true;\n }, _this._scrollIdleDelay);\n };\n _this._onMouseItemLeave = function (item, ev) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (_this._host.current) {\n if (_this._host.current.setActive) {\n try {\n _this._host.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n _this._host.current.focus();\n }\n }\n };\n _this._onDismiss = function () {\n _this.setState({ isOpen: false });\n };\n _this._onDropdownBlur = function (ev) {\n // If Dropdown disabled do not proceed with this logic.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n // hasFocus tracks whether the root element has focus so always update the state.\n _this.setState({ hasFocus: false });\n if (_this.state.isOpen) {\n // Do not onBlur when the callout is opened\n return;\n }\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n };\n _this._onDropdownKeyDown = function (ev) {\n // If Dropdown disabled do not process any keyboard events.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n var newIndex;\n var selectedIndex = _this.state.selectedIndices.length ? _this.state.selectedIndices[0] : -1;\n var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n var isOpen = _this.state.isOpen;\n switch (ev.which) {\n case KeyCodes.enter:\n _this.setState({\n isOpen: !isOpen,\n });\n break;\n case KeyCodes.escape:\n if (!isOpen) {\n return;\n }\n _this.setState({\n isOpen: false,\n });\n break;\n case KeyCodes.up:\n if (containsExpandCollapseModifier) {\n if (isOpen) {\n _this.setState({ isOpen: false });\n break;\n }\n return;\n }\n if (_this.props.multiSelect) {\n _this.setState({ isOpen: true });\n }\n else if (!_this._isDisabled()) {\n newIndex = _this._moveIndex(ev, -1, selectedIndex - 1, selectedIndex);\n }\n break;\n case KeyCodes.down:\n if (containsExpandCollapseModifier) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n if ((containsExpandCollapseModifier && !isOpen) || _this.props.multiSelect) {\n _this.setState({ isOpen: true });\n }\n else if (!_this._isDisabled()) {\n newIndex = _this._moveIndex(ev, 1, selectedIndex + 1, selectedIndex);\n }\n break;\n case KeyCodes.home:\n if (!_this.props.multiSelect) {\n newIndex = _this._moveIndex(ev, 1, 0, selectedIndex);\n }\n break;\n case KeyCodes.end:\n if (!_this.props.multiSelect) {\n newIndex = _this._moveIndex(ev, -1, _this.props.options.length - 1, selectedIndex);\n }\n break;\n case KeyCodes.space:\n // event handled in _onDropdownKeyUp\n break;\n default:\n return;\n }\n if (newIndex !== selectedIndex) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n _this._onDropdownKeyUp = function (ev) {\n // If Dropdown disabled do not process any keyboard events.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n var isOpen = _this.state.isOpen;\n if (_this.props.onKeyUp) {\n _this.props.onKeyUp(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n switch (ev.which) {\n case KeyCodes.space:\n _this.setState({\n isOpen: !isOpen,\n });\n break;\n default:\n if (shouldHandleKey && isOpen) {\n _this.setState({ isOpen: false });\n }\n return;\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onZoneKeyDown = function (ev) {\n var elementToFocus;\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n switch (ev.which) {\n case KeyCodes.up:\n if (containsExpandCollapseModifier) {\n _this.setState({ isOpen: false });\n }\n else {\n if (_this._host.current) {\n elementToFocus = getLastFocusable(_this._host.current, _this._host.current.lastChild, true);\n }\n }\n break;\n // All directional keystrokes should be canceled when the zone is rendered.\n // This avoids the body scroll from reacting and thus dismissing the dropdown.\n case KeyCodes.home:\n case KeyCodes.end:\n case KeyCodes.pageUp:\n case KeyCodes.pageDown:\n break;\n case KeyCodes.down:\n if (!containsExpandCollapseModifier && _this._host.current) {\n elementToFocus = getFirstFocusable(_this._host.current, _this._host.current.firstChild, true);\n }\n break;\n case KeyCodes.escape:\n _this.setState({ isOpen: false });\n break;\n case KeyCodes.tab:\n _this.setState({ isOpen: false });\n return;\n default:\n return;\n }\n if (elementToFocus) {\n elementToFocus.focus();\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onZoneKeyUp = function (ev) {\n var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n if (shouldHandleKey && _this.state.isOpen) {\n _this.setState({ isOpen: false });\n ev.preventDefault();\n }\n };\n _this._onDropdownClick = function (ev) {\n if (_this.props.onClick) {\n _this.props.onClick(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n var isOpen = _this.state.isOpen;\n var disabled = _this._isDisabled();\n if (!disabled && !_this._shouldOpenOnFocus()) {\n _this.setState({\n isOpen: !isOpen,\n });\n }\n _this._isFocusedByClick = false; // reset\n };\n _this._onDropdownMouseDown = function () {\n _this._isFocusedByClick = true;\n };\n _this._onFocus = function (ev) {\n var disabled = _this._isDisabled();\n if (!disabled) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n var state = { hasFocus: true };\n if (_this._shouldOpenOnFocus()) {\n state.isOpen = true;\n }\n _this.setState(state);\n }\n };\n /**\n * Because the isDisabled prop is deprecated, we have had to repeat this logic all over the place.\n * This helper method avoids all the repetition.\n */\n _this._isDisabled = function () {\n var disabled = _this.props.disabled;\n // eslint-disable-next-line deprecation/deprecation\n var isDisabled = _this.props.isDisabled;\n // Remove this deprecation workaround at 1.0.0\n if (disabled === undefined) {\n disabled = isDisabled;\n }\n return disabled;\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required, disabled = props.disabled;\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n return label ? (React.createElement(Label, { className: _this._classNames.label, id: _this._labelId, required: required, styles: labelStyles, disabled: disabled }, label)) : null;\n };\n initializeComponentRef(_this);\n var multiSelect = props.multiSelect, selectedKey = props.selectedKey, selectedKeys = props.selectedKeys, defaultSelectedKey = props.defaultSelectedKey, defaultSelectedKeys = props.defaultSelectedKeys, options = props.options;\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations(COMPONENT_NAME, props, {\n isDisabled: 'disabled',\n onChanged: 'onChange',\n placeHolder: 'placeholder',\n onRenderPlaceHolder: 'onRenderPlaceholder',\n });\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n defaultSelectedKey: 'selectedKey',\n defaultSelectedKeys: 'selectedKeys',\n selectedKeys: 'selectedKey',\n });\n if (multiSelect) {\n var warnMultiSelect = function (prop) {\n return warn(\"Dropdown property '\" + prop + \"' cannot be used when 'multiSelect' is true. Use '\" + prop + \"s' instead.\");\n };\n if (selectedKey !== undefined) {\n warnMultiSelect('selectedKey');\n }\n if (defaultSelectedKey !== undefined) {\n warnMultiSelect('defaultSelectedKey');\n }\n }\n else {\n var warnNotMultiSelect = function (prop) {\n return warn(\"Dropdown property '\" + prop + \"s' cannot be used when 'multiSelect' is false/unset. Use '\" + prop + \"' instead.\");\n };\n if (selectedKeys !== undefined) {\n warnNotMultiSelect('selectedKey');\n }\n if (defaultSelectedKeys !== undefined) {\n warnNotMultiSelect('defaultSelectedKey');\n }\n }\n }\n _this._id = props.id || getId('Dropdown');\n _this._labelId = _this._id + '-label';\n _this._listId = _this._id + '-list';\n _this._optionId = _this._id + '-option';\n _this._isScrollIdle = true;\n var selectedIndices;\n if (multiSelect) {\n selectedIndices = _this._getSelectedIndexes(options, defaultSelectedKeys !== undefined ? defaultSelectedKeys : selectedKeys);\n }\n else {\n selectedIndices = _this._getSelectedIndexes(options, (defaultSelectedKey !== undefined ? defaultSelectedKey : selectedKey));\n }\n _this._sizePosCache.updateOptions(options);\n _this.state = {\n isOpen: false,\n selectedIndices: selectedIndices,\n hasFocus: false,\n calloutRenderEdge: undefined,\n };\n return _this;\n }\n Object.defineProperty(DropdownBase.prototype, \"selectedOptions\", {\n /**\n * All selected options\n */\n get: function () {\n var options = this.props.options;\n var selectedIndices = this.state.selectedIndices;\n return getAllSelectedOptions(options, selectedIndices);\n },\n enumerable: true,\n configurable: true\n });\n DropdownBase.prototype.componentWillUnmount = function () {\n clearTimeout(this._scrollIdleTimeoutId);\n };\n DropdownBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n // In controlled component usage where selectedKey is provided, update the selectedIndex\n // state if the key or options change.\n var selectedKeyProp;\n // this does a shallow compare (assumes options are pure), for the purposes of determining whether\n // defaultSelectedKey/defaultSelectedKeys are respected.\n var didOptionsChange = newProps.options !== this.props.options;\n if (newProps.multiSelect) {\n if (didOptionsChange && newProps.defaultSelectedKeys !== undefined) {\n selectedKeyProp = 'defaultSelectedKeys';\n }\n else {\n selectedKeyProp = 'selectedKeys';\n }\n }\n else {\n if (didOptionsChange && newProps.defaultSelectedKey !== undefined) {\n selectedKeyProp = 'defaultSelectedKey';\n }\n else {\n selectedKeyProp = 'selectedKey';\n }\n }\n if (newProps[selectedKeyProp] !== undefined &&\n (newProps[selectedKeyProp] !== this.props[selectedKeyProp] || didOptionsChange)) {\n this.setState({\n selectedIndices: this._getSelectedIndexes(newProps.options, newProps[selectedKeyProp]),\n });\n }\n };\n DropdownBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (prevState.isOpen === true && this.state.isOpen === false) {\n this._gotMouseMove = false;\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }\n };\n DropdownBase.prototype.render = function () {\n var _this = this;\n var _a, _b;\n var id = this._id;\n var props = this.props;\n var className = props.className, label = props.label, options = props.options, ariaLabel = props.ariaLabel, required = props.required, errorMessage = props.errorMessage, keytipProps = props.keytipProps, propStyles = props.styles, theme = props.theme, panelProps = props.panelProps, calloutProps = props.calloutProps, _c = props.onRenderTitle, onRenderTitle = _c === void 0 ? this._getTitle : _c, _d = props.onRenderContainer, onRenderContainer = _d === void 0 ? this._onRenderContainer : _d, _e = props.onRenderCaretDown, onRenderCaretDown = _e === void 0 ? this._onRenderCaretDown : _e, _f = props.onRenderLabel, onRenderLabel = _f === void 0 ? this._onRenderLabel : _f;\n var _g = this.state, isOpen = _g.isOpen, selectedIndices = _g.selectedIndices, calloutRenderEdge = _g.calloutRenderEdge, hasFocus = _g.hasFocus;\n // eslint-disable-next-line deprecation/deprecation\n var onRenderPlaceholder = props.onRenderPlaceholder || props.onRenderPlaceHolder || this._getPlaceholder;\n // If our cached options are out of date update our cache\n if (options !== this._sizePosCache.cachedOptions) {\n this._sizePosCache.updateOptions(options);\n }\n var selectedOptions = getAllSelectedOptions(options, selectedIndices);\n var divProps = getNativeProps(props, divProperties);\n var disabled = this._isDisabled();\n var errorMessageId = id + '-errorMessage';\n var ariaActiveDescendant = disabled\n ? undefined\n : isOpen && selectedIndices.length === 1 && selectedIndices[0] >= 0\n ? this._listId + selectedIndices[0]\n : undefined;\n this._classNames = getClassNames(propStyles, {\n theme: theme,\n className: className,\n hasError: !!(errorMessage && errorMessage.length > 0),\n hasLabel: !!label,\n isOpen: isOpen,\n required: required,\n disabled: disabled,\n isRenderingPlaceholder: !selectedOptions.length,\n panelClassName: (_a = panelProps) === null || _a === void 0 ? void 0 : _a.className,\n calloutClassName: (_b = calloutProps) === null || _b === void 0 ? void 0 : _b.className,\n calloutRenderEdge: calloutRenderEdge,\n });\n var hasErrorMessage = !!errorMessage && errorMessage.length > 0;\n return (React.createElement(\"div\", { className: this._classNames.root },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, keytipAttributes, { \"data-is-focusable\": !disabled, ref: _this._dropDown, id: id, tabIndex: disabled ? -1 : 0, role: \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-expanded\": isOpen ? 'true' : 'false', \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? mergeAriaAttributeValues(_this._labelId, _this._optionId) : undefined, \"aria-describedby\": mergeAriaAttributeValues(keytipAttributes['aria-describedby'], hasErrorMessage ? _this._id + '-errorMessage' : undefined), \"aria-activedescendant\": ariaActiveDescendant, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? _this._listId : undefined }, divProps, { className: _this._classNames.dropdown, onBlur: _this._onDropdownBlur, onKeyDown: _this._onDropdownKeyDown, onKeyUp: _this._onDropdownKeyUp, onClick: _this._onDropdownClick, onMouseDown: _this._onDropdownMouseDown, onFocus: _this._onFocus }),\n React.createElement(\"span\", { id: _this._optionId, className: _this._classNames.title, \"aria-live\": hasFocus ? 'polite' : undefined, \"aria-atomic\": hasFocus ? true : undefined }, // If option is selected render title, otherwise render the placeholder text\n selectedOptions.length\n ? onRenderTitle(selectedOptions, _this._onRenderTitle)\n : onRenderPlaceholder(props, _this._onRenderPlaceholder)),\n React.createElement(\"span\", { className: _this._classNames.caretDownWrapper }, onRenderCaretDown(props, _this._onRenderCaretDown)))); }),\n isOpen && onRenderContainer(__assign(__assign({}, props), { onDismiss: this._onDismiss }), this._onRenderContainer),\n hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n };\n DropdownBase.prototype.focus = function (shouldOpenOnFocus) {\n if (this._dropDown.current) {\n this._dropDown.current.focus();\n if (shouldOpenOnFocus) {\n this.setState({\n isOpen: true,\n });\n }\n }\n };\n DropdownBase.prototype.setSelectedIndex = function (event, index) {\n var _this = this;\n var _a = this.props, options = _a.options, selectedKey = _a.selectedKey, selectedKeys = _a.selectedKeys, multiSelect = _a.multiSelect, notifyOnReselect = _a.notifyOnReselect;\n var _b = this.state.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;\n var checked = selectedIndices ? selectedIndices.indexOf(index) > -1 : false;\n var newIndexes = [];\n index = Math.max(0, Math.min(options.length - 1, index));\n // If this is a controlled component then no state change should take place.\n if (selectedKey !== undefined || selectedKeys !== undefined) {\n this._onChange(event, options, index, checked, multiSelect);\n return;\n }\n if (!multiSelect && !notifyOnReselect && index === selectedIndices[0]) {\n return;\n }\n else if (multiSelect) {\n newIndexes = selectedIndices ? this._copyArray(selectedIndices) : [];\n if (checked) {\n var position = newIndexes.indexOf(index);\n if (position > -1) {\n // unchecked the current one\n newIndexes.splice(position, 1);\n }\n }\n else {\n // add the new selected index into the existing one\n newIndexes.push(index);\n }\n }\n else {\n // Set the selected option if this is an uncontrolled component\n newIndexes = [index];\n }\n event.persist();\n // Call onChange after state is updated\n this.setState({\n selectedIndices: newIndexes,\n }, function () {\n _this._onChange(event, options, index, checked, multiSelect);\n });\n };\n DropdownBase.prototype._copyArray = function (array) {\n var newArray = [];\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n var element = array_1[_i];\n newArray.push(element);\n }\n return newArray;\n };\n /**\n * Finds the next valid Dropdown option and sets the selected index to it.\n * @param stepValue - Value of how many items the function should traverse. Should be -1 or 1.\n * @param index - Index of where the search should start\n * @param selectedIndex - The selectedIndex Dropdown's state\n * @returns The next valid dropdown option's index\n */\n DropdownBase.prototype._moveIndex = function (event, stepValue, index, selectedIndex) {\n var options = this.props.options;\n // Return selectedIndex if nothing has changed or options is empty\n if (selectedIndex === index || options.length === 0) {\n return selectedIndex;\n }\n // If the user is pressing the up or down key we want to make\n // sure that the dropdown cycles through the options without\n // causing the screen to scroll. In _onDropdownKeyDown\n // at the very end is a check to see if newIndex !== selectedIndex.\n // If the index is less than 0 and we set it back to 0, then\n // newIndex will equal selectedIndex and not stop the action\n // of the key press happening and vice versa for indexes greater\n // than or equal to the options length.\n if (index >= options.length) {\n index = 0;\n }\n else if (index < 0) {\n index = options.length - 1;\n }\n var stepCounter = 0;\n // If current index is a header or divider, or disabled, increment by step\n while (options[index].itemType === DropdownMenuItemType.Header ||\n options[index].itemType === DropdownMenuItemType.Divider ||\n options[index].disabled) {\n // If stepCounter exceeds length of options, then return selectedIndex (-1)\n if (stepCounter >= options.length) {\n return selectedIndex;\n }\n // If index + stepValue is out of bounds, wrap around\n if (index + stepValue < 0) {\n index = options.length;\n }\n else if (index + stepValue >= options.length) {\n index = -1;\n }\n index = index + stepValue;\n stepCounter++;\n }\n this.setSelectedIndex(event, index);\n return index;\n };\n /** Wrap item list in a FocusZone */\n DropdownBase.prototype._renderFocusableList = function (props) {\n var _a = props.onRenderList, onRenderList = _a === void 0 ? this._onRenderList : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n return (React.createElement(\"div\", { className: this._classNames.dropdownItemsWrapper, onKeyDown: this._onZoneKeyDown, onKeyUp: this._onZoneKeyUp, ref: this._host, tabIndex: 0 },\n React.createElement(FocusZone, { ref: this._focusZone, direction: FocusZoneDirection.vertical, id: this._listId, className: this._classNames.dropdownItems, role: \"listbox\", \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? this._labelId : undefined, \"aria-multiselectable\": multiSelect }, onRenderList(props, this._onRenderList))));\n };\n DropdownBase.prototype._renderSeparator = function (item) {\n var index = item.index, key = item.key;\n if (index > 0) {\n return React.createElement(\"div\", { role: \"separator\", key: key, className: this._classNames.dropdownDivider });\n }\n return null;\n };\n DropdownBase.prototype._renderHeader = function (item) {\n var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOption : _a;\n var key = item.key, id = item.id;\n return (React.createElement(\"div\", { id: id, key: key, className: this._classNames.dropdownItemHeader }, onRenderOption(item, this._onRenderOption)));\n };\n DropdownBase.prototype._onItemMouseEnter = function (item, ev) {\n if (this._shouldIgnoreMouseEvent()) {\n return;\n }\n var targetElement = ev.currentTarget;\n targetElement.focus();\n };\n DropdownBase.prototype._onItemMouseMove = function (item, ev) {\n var targetElement = ev.currentTarget;\n this._gotMouseMove = true;\n if (!this._isScrollIdle || document.activeElement === targetElement) {\n return;\n }\n targetElement.focus();\n };\n DropdownBase.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\n };\n /** Get all selected indexes for multi-select mode */\n DropdownBase.prototype._getSelectedIndexes = function (options, selectedKey) {\n if (selectedKey === undefined) {\n if (this.props.multiSelect) {\n return this._getAllSelectedIndices(options);\n }\n var selectedIndex = this._getSelectedIndex(options, null);\n return selectedIndex !== -1 ? [selectedIndex] : [];\n }\n else if (!Array.isArray(selectedKey)) {\n var selectedIndex = this._getSelectedIndex(options, selectedKey);\n return selectedIndex !== -1 ? [selectedIndex] : [];\n }\n var selectedIndices = [];\n for (var _i = 0, selectedKey_1 = selectedKey; _i < selectedKey_1.length; _i++) {\n var key = selectedKey_1[_i];\n var selectedIndex = this._getSelectedIndex(options, key);\n selectedIndex !== -1 && selectedIndices.push(selectedIndex);\n }\n return selectedIndices;\n };\n DropdownBase.prototype._getAllSelectedIndices = function (options) {\n return options\n .map(function (option, index) { return (option.selected ? index : -1); })\n .filter(function (index) { return index !== -1; });\n };\n DropdownBase.prototype._getSelectedIndex = function (options, selectedKey) {\n return findIndex(options, function (option) {\n // eslint-disable-next-line eqeqeq\n if (selectedKey != null) {\n return option.key === selectedKey;\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n return !!option.selected || !!option.isSelected;\n }\n });\n };\n /**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\n DropdownBase.prototype._isAltOrMeta = function (ev) {\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n DropdownBase.prototype._shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = this._lastKeyDownWasAltOrMeta && this._isAltOrMeta(ev);\n this._lastKeyDownWasAltOrMeta = false;\n return !!keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n };\n /**\n * Returns true if dropdown should set to open on focus.\n * Otherwise, isOpen state should be toggled on click\n */\n DropdownBase.prototype._shouldOpenOnFocus = function () {\n var hasFocus = this.state.hasFocus;\n var openOnKeyboardFocus = this.props.openOnKeyboardFocus;\n return !this._isFocusedByClick && openOnKeyboardFocus === true && !hasFocus;\n };\n DropdownBase.defaultProps = {\n options: [],\n };\n DropdownBase = __decorate([\n withResponsiveMode\n ], DropdownBase);\n return DropdownBase;\n}(React.Component));\nexport { DropdownBase };\n//# sourceMappingURL=Dropdown.base.js.map","var _a, _b, _c;\nimport { __assign, __spreadArrays } from \"tslib\";\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { RectangleEdge } from '../../utilities/positioning';\nimport { FontWeights, HighContrastSelector, getGlobalClassNames, normalize, HighContrastSelectorWhite, getScreenSelector, ScreenWidthMinMedium, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dropdown-container',\n label: 'ms-Dropdown-label',\n dropdown: 'ms-Dropdown',\n title: 'ms-Dropdown-title',\n caretDownWrapper: 'ms-Dropdown-caretDownWrapper',\n caretDown: 'ms-Dropdown-caretDown',\n callout: 'ms-Dropdown-callout',\n panel: 'ms-Dropdown-panel',\n dropdownItems: 'ms-Dropdown-items',\n dropdownItem: 'ms-Dropdown-item',\n dropdownDivider: 'ms-Dropdown-divider',\n dropdownOptionText: 'ms-Dropdown-optionText',\n dropdownItemHeader: 'ms-Dropdown-header',\n titleIsPlaceHolder: 'ms-Dropdown-titleIsPlaceHolder',\n titleHasError: 'ms-Dropdown-title--hasError',\n};\nvar DROPDOWN_HEIGHT = 32;\nvar DROPDOWN_ITEM_HEIGHT = 36;\nvar highContrastAdjustMixin = (_a = {},\n _a[HighContrastSelector + \", \" + HighContrastSelectorWhite.replace('@media ', '')] = __assign({}, getHighContrastNoAdjustStyle()),\n _a);\nvar highContrastItemAndTitleStateMixin = {\n selectors: __assign((_b = {}, _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n }, _b), highContrastAdjustMixin),\n};\nvar highContrastBorderState = {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _c),\n};\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMinMedium);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var theme = props.theme, hasError = props.hasError, hasLabel = props.hasLabel, className = props.className, isOpen = props.isOpen, disabled = props.disabled, required = props.required, isRenderingPlaceholder = props.isRenderingPlaceholder, panelClassName = props.panelClassName, calloutClassName = props.calloutClassName, calloutRenderEdge = props.calloutRenderEdge;\n if (!theme) {\n throw new Error('theme is undefined or null in base Dropdown getStyles function.');\n }\n var globalClassnames = getGlobalClassNames(GlobalClassNames, theme);\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var rootHoverFocusActiveSelectorNeutralDarkMixin = {\n color: semanticColors.menuItemTextHovered,\n };\n var rootHoverFocusActiveSelectorNeutralPrimaryMixin = {\n color: semanticColors.menuItemText,\n };\n var borderColorError = {\n borderColor: semanticColors.errorText,\n };\n var dropdownItemStyle = [\n globalClassnames.dropdownItem,\n {\n backgroundColor: 'transparent',\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '0 8px',\n width: '100%',\n minHeight: DROPDOWN_ITEM_HEIGHT,\n lineHeight: 20,\n height: 0,\n position: 'relative',\n border: '1px solid transparent',\n borderRadius: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n textAlign: 'left',\n '.ms-Button-flexContainer': {\n width: '100%',\n },\n },\n ];\n var selectedItemBackgroundColor = semanticColors.menuItemBackgroundPressed;\n var itemSelectors = function (isSelected) {\n var _a;\n if (isSelected === void 0) { isSelected = false; }\n return {\n selectors: (_a = {\n '&:hover:focus': [\n {\n color: semanticColors.menuItemTextHovered,\n backgroundColor: !isSelected ? semanticColors.menuItemBackgroundHovered : selectedItemBackgroundColor,\n },\n highContrastItemAndTitleStateMixin,\n ],\n '&:focus': [\n {\n backgroundColor: !isSelected ? 'transparent' : selectedItemBackgroundColor,\n },\n highContrastItemAndTitleStateMixin,\n ],\n '&:active': [\n {\n color: semanticColors.menuItemTextHovered,\n backgroundColor: !isSelected ? semanticColors.menuBackground : semanticColors.menuItemBackgroundHovered,\n },\n highContrastItemAndTitleStateMixin,\n ]\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus:after\"] = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n },\n _a[HighContrastSelector] = {\n border: 'none',\n },\n _a),\n };\n };\n var dropdownItemSelected = __spreadArrays(dropdownItemStyle, [\n {\n backgroundColor: selectedItemBackgroundColor,\n color: semanticColors.menuItemTextHovered,\n },\n itemSelectors(true),\n highContrastItemAndTitleStateMixin,\n ]);\n var dropdownItemDisabled = __spreadArrays(dropdownItemStyle, [\n {\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n border: 'none',\n },\n _a),\n },\n ]);\n var titleOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n ? effects.roundedCorner2 + \" \" + effects.roundedCorner2 + \" 0 0\"\n : \"0 0 \" + effects.roundedCorner2 + \" \" + effects.roundedCorner2;\n var calloutOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n ? \"0 0 \" + effects.roundedCorner2 + \" \" + effects.roundedCorner2\n : effects.roundedCorner2 + \" \" + effects.roundedCorner2 + \" 0 0\";\n return {\n root: [globalClassnames.root, className],\n label: globalClassnames.label,\n dropdown: [\n globalClassnames.dropdown,\n normalize,\n fonts.medium,\n {\n color: semanticColors.menuItemText,\n borderColor: semanticColors.focusBorder,\n position: 'relative',\n outline: 0,\n userSelect: 'none',\n selectors: (_b = {},\n _b['&:hover .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { borderColor: isOpen ? palette.neutralSecondary : palette.neutralPrimary },\n highContrastBorderState,\n ],\n _b['&:focus .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { selectors: (_c = {}, _c[HighContrastSelector] = { color: 'Highlight' }, _c) },\n ],\n _b['&:focus:after'] = [\n {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n boxSizing: 'border-box',\n top: '0px',\n left: '0px',\n width: '100%',\n height: '100%',\n // see https://github.com/microsoft/fluentui/pull/9182 for semantic color disc\n border: !disabled ? \"2px solid \" + palette.themePrimary : 'none',\n borderRadius: '2px',\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n },\n ],\n _b['&:active .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { borderColor: palette.themePrimary },\n highContrastBorderState,\n ],\n _b['&:hover .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _b['&:focus .' + globalClassnames.caretDown] = [\n !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n { selectors: (_e = {}, _e[HighContrastSelector] = { color: 'Highlight' }, _e) },\n ],\n _b['&:active .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _b['&:hover .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _b['&:focus .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _b['&:active .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _b['&:hover .' + globalClassnames.titleHasError] = borderColorError,\n _b['&:active .' + globalClassnames.titleHasError] = borderColorError,\n _b),\n },\n isOpen && 'is-open',\n disabled && 'is-disabled',\n required && 'is-required',\n required &&\n !hasLabel && {\n selectors: (_f = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _f[HighContrastSelector] = {\n selectors: {\n ':after': {\n right: -14,\n },\n },\n },\n _f),\n },\n ],\n title: [\n globalClassnames.title,\n normalize,\n {\n backgroundColor: semanticColors.inputBackground,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: semanticColors.inputBorder,\n borderRadius: isOpen ? titleOpenBorderRadius : effects.roundedCorner2,\n cursor: 'pointer',\n display: 'block',\n height: DROPDOWN_HEIGHT,\n lineHeight: DROPDOWN_HEIGHT - 2,\n padding: \"0 28px 0 8px\",\n position: 'relative',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n isRenderingPlaceholder && [globalClassnames.titleIsPlaceHolder, { color: semanticColors.inputPlaceholderText }],\n hasError && [globalClassnames.titleHasError, borderColorError],\n disabled && {\n backgroundColor: semanticColors.disabledBackground,\n border: 'none',\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ border: '1px solid GrayText', color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _g),\n },\n ],\n caretDownWrapper: [\n globalClassnames.caretDownWrapper,\n {\n position: 'absolute',\n top: 1,\n right: 8,\n height: DROPDOWN_HEIGHT,\n lineHeight: DROPDOWN_HEIGHT - 2,\n },\n !disabled && {\n cursor: 'pointer',\n },\n ],\n caretDown: [\n globalClassnames.caretDown,\n { color: palette.neutralSecondary, fontSize: fonts.small.fontSize, pointerEvents: 'none' },\n disabled && {\n color: semanticColors.disabledText,\n selectors: (_h = {},\n _h[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n ],\n errorMessage: __assign(__assign({ color: semanticColors.errorText }, theme.fonts.small), { paddingTop: 5 }),\n callout: [\n globalClassnames.callout,\n {\n boxShadow: effects.elevation8,\n borderRadius: calloutOpenBorderRadius,\n selectors: (_j = {},\n _j['.ms-Callout-main'] = { borderRadius: calloutOpenBorderRadius },\n _j),\n },\n calloutClassName,\n ],\n dropdownItemsWrapper: { selectors: { '&:focus': { outline: 0 } } },\n dropdownItems: [globalClassnames.dropdownItems, { display: 'block' }],\n dropdownItem: __spreadArrays(dropdownItemStyle, [itemSelectors()]),\n dropdownItemSelected: dropdownItemSelected,\n dropdownItemDisabled: dropdownItemDisabled,\n dropdownItemSelectedAndDisabled: [dropdownItemSelected, dropdownItemDisabled, { backgroundColor: 'transparent' }],\n dropdownItemHidden: __spreadArrays(dropdownItemStyle, [{ display: 'none' }]),\n dropdownDivider: [globalClassnames.dropdownDivider, { height: 1, backgroundColor: semanticColors.bodyDivider }],\n dropdownOptionText: [\n globalClassnames.dropdownOptionText,\n {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n minWidth: 0,\n maxWidth: '100%',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n margin: '1px',\n },\n ],\n dropdownItemHeader: [\n globalClassnames.dropdownItemHeader,\n __assign(__assign({}, fonts.medium), { fontWeight: FontWeights.semibold, color: semanticColors.menuHeader, background: 'none', backgroundColor: 'transparent', border: 'none', height: DROPDOWN_ITEM_HEIGHT, lineHeight: DROPDOWN_ITEM_HEIGHT, cursor: 'default', padding: '0 8px', userSelect: 'none', textAlign: 'left', selectors: (_k = {},\n _k[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _k) }),\n ],\n subComponentStyles: {\n label: { root: { display: 'inline-block' } },\n multiSelectItem: {\n root: {\n padding: 0,\n },\n label: {\n alignSelf: 'stretch',\n padding: '0 8px',\n width: '100%',\n },\n },\n panel: {\n root: [panelClassName],\n main: {\n selectors: (_l = {},\n // In case of extra small screen sizes\n _l[MinimumScreenSelector] = {\n // panelWidth xs\n width: 272,\n },\n _l),\n },\n contentInner: { padding: '0 0 20px' },\n },\n },\n };\n};\n//# sourceMappingURL=Dropdown.styles.js.map","import { styled } from '../../Utilities';\nimport { DropdownBase } from './Dropdown.base';\nimport { getStyles } from './Dropdown.styles';\nexport var Dropdown = styled(DropdownBase, getStyles, undefined, {\n scope: 'Dropdown',\n});\n//# sourceMappingURL=Dropdown.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".pickerText_f288f2e4{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid \" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";min-width:180px;padding:1px;min-height:32px}.pickerText_f288f2e4:hover{border-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.pickerInput_f288f2e4{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:0;padding:0 6px 0;margin:1px}.pickerInput_f288f2e4::-ms-clear{display:none}\" }]);\nexport var pickerText = \"pickerText_f288f2e4\";\nexport var pickerInput = \"pickerInput_f288f2e4\";\n//# sourceMappingURL=BaseExtendedPicker.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, initializeComponentRef } from '../../Utilities';\nimport { Autofill } from '../../Autofill';\nimport * as stylesImport from './BaseExtendedPicker.scss';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Selection, SelectionMode, SelectionZone } from '../../Selection';\nvar styles = stylesImport;\nvar BaseExtendedPicker = /** @class */ (function (_super) {\n __extends(BaseExtendedPicker, _super);\n function BaseExtendedPicker(basePickerProps) {\n var _this = _super.call(this, basePickerProps) || this;\n _this.floatingPicker = React.createRef();\n _this.selectedItemsList = React.createRef();\n _this.root = React.createRef();\n _this.input = React.createRef();\n _this.onSelectionChange = function () {\n _this.forceUpdate();\n };\n _this.onInputChange = function (value, composing) {\n // We don't want to update the picker's suggestions when the input is still being composed\n if (!composing) {\n _this.setState({ queryString: value });\n if (_this.floatingPicker.current) {\n _this.floatingPicker.current.onQueryStringChanged(value);\n }\n }\n };\n _this.onInputFocus = function (ev) {\n if (_this.selectedItemsList.current) {\n _this.selectedItemsList.current.unselectAll();\n }\n if (_this.props.inputProps && _this.props.inputProps.onFocus) {\n _this.props.inputProps.onFocus(ev);\n }\n };\n _this.onInputClick = function (ev) {\n if (_this.selectedItemsList.current) {\n _this.selectedItemsList.current.unselectAll();\n }\n if (_this.floatingPicker.current && _this.inputElement) {\n // Update the value if the input value is empty or is different than the current inputText from the floatingPicker\n var shoudUpdateValue = _this.inputElement.value === '' || _this.inputElement.value !== _this.floatingPicker.current.inputText;\n _this.floatingPicker.current.showPicker(shoudUpdateValue);\n }\n };\n // This is protected because we may expect the backspace key to work differently in a different kind of picker.\n // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow\n _this.onBackspace = function (ev) {\n if (ev.which !== KeyCodes.backspace) {\n return;\n }\n if (_this.selectedItemsList.current && _this.items.length) {\n if (_this.input.current &&\n !_this.input.current.isValueSelected &&\n _this.input.current.inputElement === document.activeElement &&\n _this.input.current.cursorLocation === 0) {\n if (_this.floatingPicker.current) {\n _this.floatingPicker.current.hidePicker();\n }\n ev.preventDefault();\n _this.selectedItemsList.current.removeItemAt(_this.items.length - 1);\n _this._onSelectedItemsChanged();\n }\n else if (_this.selectedItemsList.current.hasSelectedItems()) {\n if (_this.floatingPicker.current) {\n _this.floatingPicker.current.hidePicker();\n }\n ev.preventDefault();\n _this.selectedItemsList.current.removeSelectedItems();\n _this._onSelectedItemsChanged();\n }\n }\n };\n _this.onCopy = function (ev) {\n if (_this.selectedItemsList.current) {\n // Pass it down into the selected items list\n _this.selectedItemsList.current.onCopy(ev);\n }\n };\n _this.onPaste = function (ev) {\n if (_this.props.onPaste) {\n var inputText = ev.clipboardData.getData('Text');\n ev.preventDefault();\n _this.props.onPaste(inputText);\n }\n };\n _this._onSuggestionSelected = function (item) {\n var currentRenderedQueryString = _this.props.currentRenderedQueryString;\n var queryString = _this.state.queryString;\n if (currentRenderedQueryString === undefined || currentRenderedQueryString === queryString) {\n var processedItem = _this.props.onItemSelected\n ? _this.props.onItemSelected(item)\n : item;\n if (processedItem === null) {\n return;\n }\n var processedItemObject = processedItem;\n var processedItemPromiseLike = processedItem;\n var newItem_1;\n if (processedItemPromiseLike && processedItemPromiseLike.then) {\n processedItemPromiseLike.then(function (resolvedProcessedItem) {\n newItem_1 = resolvedProcessedItem;\n _this._addProcessedItem(newItem_1);\n });\n }\n else {\n newItem_1 = processedItemObject;\n _this._addProcessedItem(newItem_1);\n }\n }\n };\n _this._onSelectedItemsChanged = function () {\n _this.focus();\n };\n /**\n * The floating picker is the source of truth for if the menu has been opened or not.\n *\n * Because this isn't tracked inside the state of this component, we need to\n * force an update here to keep the rendered output that depends on the picker being open\n * in sync with the state\n *\n * Called when the suggestions is shown or closed\n */\n _this._onSuggestionsShownOrHidden = function () {\n _this.forceUpdate();\n };\n initializeComponentRef(_this);\n _this.selection = new Selection({ onSelectionChanged: function () { return _this.onSelectionChange(); } });\n _this.state = {\n queryString: '',\n // TODO: determine whether this can be removed\n // eslint-disable-next-line react/no-unused-state\n suggestionItems: _this.props.suggestionItems ? _this.props.suggestionItems : null,\n selectedItems: _this.props.defaultSelectedItems\n ? _this.props.defaultSelectedItems\n : _this.props.selectedItems\n ? _this.props.selectedItems\n : null,\n };\n _this.floatingPickerProps = _this.props.floatingPickerProps;\n _this.selectedItemsListProps = _this.props.selectedItemsListProps;\n return _this;\n }\n Object.defineProperty(BaseExtendedPicker.prototype, \"items\", {\n get: function () {\n var _a, _b, _c;\n return _c = (_a = this.state.selectedItems, (_a !== null && _a !== void 0 ? _a : (_b = this.selectedItemsList.current) === null || _b === void 0 ? void 0 : _b.items)), (_c !== null && _c !== void 0 ? _c : null);\n },\n enumerable: true,\n configurable: true\n });\n BaseExtendedPicker.prototype.componentDidMount = function () {\n this.forceUpdate();\n };\n BaseExtendedPicker.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n if (newProps.floatingPickerProps) {\n this.floatingPickerProps = newProps.floatingPickerProps;\n }\n if (newProps.selectedItemsListProps) {\n this.selectedItemsListProps = newProps.selectedItemsListProps;\n }\n if (newProps.selectedItems) {\n this.setState({ selectedItems: newProps.selectedItems });\n }\n };\n BaseExtendedPicker.prototype.focus = function () {\n if (this.input.current) {\n this.input.current.focus();\n }\n };\n BaseExtendedPicker.prototype.clearInput = function () {\n if (this.input.current) {\n this.input.current.clear();\n }\n };\n Object.defineProperty(BaseExtendedPicker.prototype, \"inputElement\", {\n get: function () {\n return this.input.current && this.input.current.inputElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseExtendedPicker.prototype, \"highlightedItems\", {\n get: function () {\n return this.selectedItemsList.current ? this.selectedItemsList.current.highlightedItems() : [];\n },\n enumerable: true,\n configurable: true\n });\n BaseExtendedPicker.prototype.render = function () {\n var _a = this.props, className = _a.className, inputProps = _a.inputProps, disabled = _a.disabled, focusZoneProps = _a.focusZoneProps;\n var activeDescendant = this.floatingPicker.current && this.floatingPicker.current.currentSelectedSuggestionIndex !== -1\n ? 'sug-' + this.floatingPicker.current.currentSelectedSuggestionIndex\n : undefined;\n var isExpanded = this.floatingPicker.current ? this.floatingPicker.current.isSuggestionsShown : false;\n return (React.createElement(\"div\", { ref: this.root, className: css('ms-BasePicker ms-BaseExtendedPicker', className ? className : ''), onKeyDown: this.onBackspace, onCopy: this.onCopy },\n React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.bidirectional }, focusZoneProps),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.multiple },\n React.createElement(\"div\", { className: css('ms-BasePicker-text', styles.pickerText), role: 'list' },\n this.props.headerComponent,\n this.renderSelectedItemsList(),\n this.canAddItems() && (React.createElement(Autofill, __assign({}, inputProps, { className: css('ms-BasePicker-input', styles.pickerInput), ref: this.input, onFocus: this.onInputFocus, onClick: this.onInputClick, onInputValueChange: this.onInputChange, \"aria-activedescendant\": activeDescendant, \"aria-owns\": isExpanded ? 'suggestion-list' : undefined, \"aria-expanded\": isExpanded, \"aria-haspopup\": \"true\", role: \"combobox\", disabled: disabled, onPaste: this.onPaste })))))),\n this.renderFloatingPicker()));\n };\n BaseExtendedPicker.prototype.canAddItems = function () {\n var itemLimit = this.props.itemLimit;\n return itemLimit === undefined || this.items.length < itemLimit;\n };\n BaseExtendedPicker.prototype.renderFloatingPicker = function () {\n var FloatingPicker = this.props.onRenderFloatingPicker;\n return (React.createElement(FloatingPicker, __assign({ componentRef: this.floatingPicker, onChange: this._onSuggestionSelected, onSuggestionsHidden: this._onSuggestionsShownOrHidden, onSuggestionsShown: this._onSuggestionsShownOrHidden, inputElement: this.input.current ? this.input.current.inputElement : undefined, selectedItems: this.items, suggestionItems: this.props.suggestionItems ? this.props.suggestionItems : undefined }, this.floatingPickerProps)));\n };\n BaseExtendedPicker.prototype.renderSelectedItemsList = function () {\n var SelectedItems = this.props.onRenderSelectedItems;\n return (React.createElement(SelectedItems, __assign({ componentRef: this.selectedItemsList, selection: this.selection, selectedItems: this.props.selectedItems ? this.props.selectedItems : undefined, onItemsDeleted: this.props.selectedItems ? this.props.onItemsRemoved : undefined }, this.selectedItemsListProps)));\n };\n BaseExtendedPicker.prototype._addProcessedItem = function (newItem) {\n // If this is a controlled component, call the on item selected callback\n // Otherwise add it to the selectedItemsList\n if (this.props.onItemAdded) {\n this.props.onItemAdded(newItem);\n }\n if (this.selectedItemsList.current) {\n this.selectedItemsList.current.addItems([newItem]);\n }\n if (this.input.current) {\n this.input.current.clear();\n }\n if (this.floatingPicker.current) {\n this.floatingPicker.current.hidePicker();\n }\n this.focus();\n };\n return BaseExtendedPicker;\n}(React.Component));\nexport { BaseExtendedPicker };\n//# sourceMappingURL=BaseExtendedPicker.js.map","import { __extends } from \"tslib\";\nimport './ExtendedPeoplePicker.scss';\nimport { BaseExtendedPicker } from '../BaseExtendedPicker';\n/**\n * {@docCategory ExtendedPeoplePicker}\n */\nvar BaseExtendedPeoplePicker = /** @class */ (function (_super) {\n __extends(BaseExtendedPeoplePicker, _super);\n function BaseExtendedPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BaseExtendedPeoplePicker;\n}(BaseExtendedPicker));\nexport { BaseExtendedPeoplePicker };\n/**\n * {@docCategory ExtendedPeoplePicker}\n */\nvar ExtendedPeoplePicker = /** @class */ (function (_super) {\n __extends(ExtendedPeoplePicker, _super);\n function ExtendedPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ExtendedPeoplePicker;\n}(BaseExtendedPeoplePicker));\nexport { ExtendedPeoplePicker };\n//# sourceMappingURL=ExtendedPeoplePicker.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizer, getNativeProps, divProperties, classNamesFunction, getDocument, memoizeFunction, getRTL, FocusRects, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (theme, dir) {\n var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n var pageDir = getRTL() ? 'rtl' : 'ltr';\n var componentDir = dir ? dir : contextDir;\n return {\n // If Fabric dir !== contextDir\n // Or If contextDir !== pageDir\n // Then we need to set dir of the Fabric root\n rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n // If dir !== contextDir || pageDir\n // then set contextual theme around content\n needsTheme: componentDir !== contextDir,\n };\n};\nvar FabricBase = /** @class */ (function (_super) {\n __extends(FabricBase, _super);\n function FabricBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._rootElement = React.createRef();\n _this._removeClassNameFromBody = undefined;\n return _this;\n }\n FabricBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, Root = _b === void 0 ? 'div' : _b, theme = _a.theme, dir = _a.dir;\n var classNames = this._getClassNames();\n var divProps = getNativeProps(this.props, divProperties, ['dir']);\n var _c = getDir(theme, dir), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n var renderedContent = React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: classNames.root, ref: this._rootElement }));\n if (needsTheme) {\n renderedContent = (React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n }\n return (React.createElement(React.Fragment, null,\n renderedContent,\n React.createElement(FocusRects, { rootRef: this._rootElement })));\n };\n FabricBase.prototype.componentDidMount = function () {\n this._addClassNameToBody();\n };\n FabricBase.prototype.componentWillUnmount = function () {\n if (this._removeClassNameFromBody) {\n this._removeClassNameFromBody();\n }\n };\n FabricBase.prototype._getClassNames = function () {\n var _a = this.props, className = _a.className, theme = _a.theme, applyTheme = _a.applyTheme, styles = _a.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n applyTheme: applyTheme,\n className: className,\n });\n return classNames;\n };\n FabricBase.prototype._addClassNameToBody = function () {\n if (this.props.applyThemeToBody) {\n var classNames_1 = this._getClassNames();\n var currentDoc_1 = getDocument(this._rootElement.current);\n if (currentDoc_1) {\n currentDoc_1.body.classList.add(classNames_1.bodyThemed);\n this._removeClassNameFromBody = function () {\n currentDoc_1.body.classList.remove(classNames_1.bodyThemed);\n };\n }\n }\n };\n return FabricBase;\n}(React.Component));\nexport { FabricBase };\n//# sourceMappingURL=Fabric.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n root: 'ms-Fabric',\n bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, applyTheme = props.applyTheme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: theme.palette.neutralPrimary,\n selectors: {\n '& button': inheritFont,\n '& input': inheritFont,\n '& textarea': inheritFont,\n },\n },\n // apply theme to only if applyTheme is true\n applyTheme && {\n color: theme.semanticColors.bodyText,\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n className,\n ],\n bodyThemed: [\n {\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n ],\n };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../Button/BaseButton.styles';\nexport var getStyles = memoizeFunction(function (theme, className, customStyles) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var customButtonStyles = concatStyleSets(baseButtonStyles, customStyles);\n return __assign(__assign({}, customButtonStyles), { root: [baseButtonStyles.root, className, theme.fonts.medium, customStyles && customStyles.root] });\n});\n//# sourceMappingURL=FacepileButton.styles.js.map","import { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../../Button';\nimport { customizable, nullRender } from '../../Utilities';\nimport { getStyles } from './FacepileButton.styles';\nvar FacepileButton = /** @class */ (function (_super) {\n __extends(FacepileButton, _super);\n function FacepileButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FacepileButton.prototype.render = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, rest = __rest(_a, [\"className\", \"styles\"]);\n var customStyles = getStyles(this.props.theme, className, styles);\n return (React.createElement(BaseButton, __assign({}, rest, { variantClassName: \"ms-Button--facepile\", styles: customStyles, onRenderDescription: nullRender })));\n };\n FacepileButton = __decorate([\n customizable('FacepileButton', ['theme', 'styles'], true)\n ], FacepileButton);\n return FacepileButton;\n}(React.Component));\nexport { FacepileButton };\n//# sourceMappingURL=FacepileButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, classNamesFunction, getId, getNativeProps, initializeComponentRef } from '../../Utilities';\nimport { OverflowButtonType, } from './Facepile.types';\nimport { FacepileButton } from './FacepileButton';\nimport { Icon } from '../../Icon';\nimport { Persona } from '../../Persona';\nimport { PersonaCoin, PersonaSize, PersonaInitialsColor } from '../../PersonaCoin';\nvar getClassNames = classNamesFunction();\n/**\n * FacePile with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Component-Styling)\n */\nvar FacepileBase = /** @class */ (function (_super) {\n __extends(FacepileBase, _super);\n function FacepileBase(props) {\n var _this = _super.call(this, props) || this;\n _this._classNames = getClassNames(_this.props.styles, {\n theme: _this.props.theme,\n className: _this.props.className,\n });\n _this._getPersonaControl = function (persona) {\n var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;\n var personaStyles = {\n details: {\n flex: '1 0 auto',\n },\n };\n return (React.createElement(Persona, __assign({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null), { styles: personaStyles })));\n };\n _this._getPersonaCoinControl = function (persona) {\n var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;\n return (React.createElement(PersonaCoin, __assign({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null))));\n };\n initializeComponentRef(_this);\n _this._ariaDescriptionId = getId();\n return _this;\n }\n FacepileBase.prototype.render = function () {\n var overflowButtonProps = this.props.overflowButtonProps;\n var _a = this.props, chevronButtonProps = _a.chevronButtonProps, // eslint-disable-line deprecation/deprecation\n maxDisplayablePersonas = _a.maxDisplayablePersonas, personas = _a.personas, overflowPersonas = _a.overflowPersonas, showAddButton = _a.showAddButton, ariaLabel = _a.ariaLabel, _b = _a.showTooltip, showTooltip = _b === void 0 ? true : _b;\n var _classNames = this._classNames;\n // Add a check to make sure maxDisplayalePersonas is defined to cover the edge case of it being 0.\n var numPersonasToShow = typeof maxDisplayablePersonas === 'number' ? Math.min(personas.length, maxDisplayablePersonas) : personas.length;\n // Added for deprecating chevronButtonProps. Can remove after v1.0\n if (chevronButtonProps && !overflowButtonProps) {\n overflowButtonProps = chevronButtonProps;\n }\n var hasOverflowPersonas = overflowPersonas && overflowPersonas.length > 0;\n var personasPrimary = hasOverflowPersonas ? personas : personas.slice(0, numPersonasToShow);\n var personasOverflow = (hasOverflowPersonas ? overflowPersonas : personas.slice(numPersonasToShow)) || [];\n return (React.createElement(\"div\", { className: _classNames.root },\n this.onRenderAriaDescription(),\n React.createElement(\"div\", { className: _classNames.itemContainer },\n showAddButton ? this._getAddNewElement() : null,\n React.createElement(\"ul\", { className: _classNames.members, \"aria-label\": ariaLabel }, this._onRenderVisiblePersonas(personasPrimary, personasOverflow.length === 0 && personas.length === 1, showTooltip)),\n overflowButtonProps ? this._getOverflowElement(personasOverflow) : null)));\n };\n FacepileBase.prototype.onRenderAriaDescription = function () {\n var ariaDescription = this.props.ariaDescription;\n var _classNames = this._classNames;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return (ariaDescription && (React.createElement(\"span\", { className: _classNames.screenReaderOnly, id: this._ariaDescriptionId }, ariaDescription)));\n };\n FacepileBase.prototype._onRenderVisiblePersonas = function (personas, singlePersona, showTooltip) {\n var _this = this;\n var _a = this.props, _b = _a.onRenderPersona, onRenderPersona = _b === void 0 ? this._getPersonaControl : _b, _c = _a.onRenderPersonaCoin, onRenderPersonaCoin = _c === void 0 ? this._getPersonaCoinControl : _c;\n return personas.map(function (persona, index) {\n var personaControl = singlePersona\n ? onRenderPersona(persona, _this._getPersonaControl)\n : onRenderPersonaCoin(persona, _this._getPersonaCoinControl);\n return (React.createElement(\"li\", { key: (singlePersona ? 'persona' : 'personaCoin') + \"-\" + index, className: _this._classNames.member }, persona.onClick\n ? _this._getElementWithOnClickEvent(personaControl, persona, showTooltip, index)\n : _this._getElementWithoutOnClickEvent(personaControl, persona, showTooltip, index)));\n });\n };\n FacepileBase.prototype._getElementWithOnClickEvent = function (personaControl, persona, showTooltip, index) {\n var keytipProps = persona.keytipProps;\n return (React.createElement(FacepileButton, __assign({}, getNativeProps(persona, buttonProperties), this._getElementProps(persona, showTooltip, index), { keytipProps: keytipProps, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: this._onPersonaClick.bind(this, persona) }), personaControl));\n };\n FacepileBase.prototype._getElementWithoutOnClickEvent = function (personaControl, persona, showTooltip, index) {\n return (React.createElement(\"div\", __assign({}, getNativeProps(persona, buttonProperties), this._getElementProps(persona, showTooltip, index)), personaControl));\n };\n FacepileBase.prototype._getElementProps = function (persona, showTooltip, index) {\n var _classNames = this._classNames;\n return {\n key: (persona.imageUrl ? 'i' : '') + index,\n 'data-is-focusable': true,\n className: _classNames.itemButton,\n title: showTooltip ? persona.personaName : undefined,\n onMouseMove: this._onPersonaMouseMove.bind(this, persona),\n onMouseOut: this._onPersonaMouseOut.bind(this, persona),\n };\n };\n FacepileBase.prototype._getOverflowElement = function (personasOverflow) {\n switch (this.props.overflowButtonType) {\n case OverflowButtonType.descriptive:\n return this._getDescriptiveOverflowElement(personasOverflow);\n case OverflowButtonType.downArrow:\n return this._getIconElement('ChevronDown');\n case OverflowButtonType.more:\n return this._getIconElement('More');\n default:\n return null;\n }\n };\n FacepileBase.prototype._getDescriptiveOverflowElement = function (personasOverflow) {\n var personaSize = this.props.personaSize;\n if (!personasOverflow || personasOverflow.length < 1) {\n return null;\n }\n var personaNames = personasOverflow.map(function (p) { return p.personaName; }).join(', ');\n var overflowButtonProps = __assign({ title: personaNames }, this.props.overflowButtonProps);\n var numPersonasNotPictured = Math.max(personasOverflow.length, 0);\n var _classNames = this._classNames;\n return (React.createElement(FacepileButton, __assign({}, overflowButtonProps, { ariaDescription: overflowButtonProps.title, className: _classNames.descriptiveOverflowButton }),\n React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitialsNotPictured(numPersonasNotPictured), initialsColor: PersonaInitialsColor.transparent })));\n };\n FacepileBase.prototype._getIconElement = function (icon) {\n var _a = this.props, overflowButtonProps = _a.overflowButtonProps, personaSize = _a.personaSize;\n var overflowInitialsIcon = true;\n var _classNames = this._classNames;\n return (React.createElement(FacepileButton, __assign({}, overflowButtonProps, { className: _classNames.overflowButton }),\n React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitials(icon, overflowInitialsIcon), initialsColor: PersonaInitialsColor.transparent })));\n };\n FacepileBase.prototype._getAddNewElement = function () {\n var _a = this.props, addButtonProps = _a.addButtonProps, personaSize = _a.personaSize;\n var _classNames = this._classNames;\n return (React.createElement(FacepileButton, __assign({}, addButtonProps, { className: _classNames.addButton }),\n React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitials('AddFriend') })));\n };\n FacepileBase.prototype._onPersonaClick = function (persona, ev) {\n persona.onClick(ev, persona);\n ev.preventDefault();\n ev.stopPropagation();\n };\n FacepileBase.prototype._onPersonaMouseMove = function (persona, ev) {\n if (persona.onMouseMove) {\n persona.onMouseMove(ev, persona);\n }\n };\n FacepileBase.prototype._onPersonaMouseOut = function (persona, ev) {\n if (persona.onMouseOut) {\n persona.onMouseOut(ev, persona);\n }\n };\n FacepileBase.prototype._renderInitials = function (iconName, overflowButton) {\n var _classNames = this._classNames;\n return function () {\n return React.createElement(Icon, { iconName: iconName, className: overflowButton ? _classNames.overflowInitialsIcon : '' });\n };\n };\n FacepileBase.prototype._renderInitialsNotPictured = function (numPersonasNotPictured) {\n var _classNames = this._classNames;\n return function () {\n return (React.createElement(\"span\", { className: _classNames.overflowInitialsIcon }, numPersonasNotPictured < 100 ? '+' + numPersonasNotPictured : '99+'));\n };\n };\n FacepileBase.defaultProps = {\n maxDisplayablePersonas: 5,\n personas: [],\n overflowPersonas: [],\n personaSize: PersonaSize.size32,\n };\n return FacepileBase;\n}(React.Component));\nexport { FacepileBase };\n//# sourceMappingURL=Facepile.base.js.map","import { hiddenContentStyle, HighContrastSelector, getFocusStyle, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Facepile',\n addButton: 'ms-Facepile-addButton ms-Facepile-itemButton',\n descriptiveOverflowButton: 'ms-Facepile-descriptiveOverflowButton ms-Facepile-itemButton',\n itemButton: 'ms-Facepile-itemButton ms-Facepile-person',\n itemContainer: 'ms-Facepile-itemContainer',\n members: 'ms-Facepile-members',\n member: 'ms-Facepile-member',\n overflowButton: 'ms-Facepile-overflowButton ms-Facepile-itemButton',\n};\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, _b = props.spacingAroundItemButton, spacingAroundItemButton = _b === void 0 ? 2 : _b;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ItemButtonStyles = {\n textAlign: 'center',\n padding: 0,\n borderRadius: '50%',\n verticalAlign: 'top',\n display: 'inline',\n backgroundColor: 'transparent',\n border: 'none',\n selectors: {\n '&::-moz-focus-inner': {\n padding: 0,\n border: 0,\n },\n },\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n width: 'auto',\n },\n className,\n ],\n addButton: [\n classNames.addButton,\n getFocusStyle(theme, { inset: -1 }),\n ItemButtonStyles,\n {\n fontSize: fonts.medium.fontSize,\n color: palette.white,\n backgroundColor: palette.themePrimary,\n marginRight: spacingAroundItemButton * 2 + 'px',\n selectors: {\n '&:hover': {\n backgroundColor: palette.themeDark,\n },\n '&:focus': {\n backgroundColor: palette.themeDark,\n },\n '&:active': {\n backgroundColor: palette.themeDarker,\n },\n '&:disabled': {\n backgroundColor: palette.neutralTertiaryAlt,\n },\n },\n },\n ],\n descriptiveOverflowButton: [\n classNames.descriptiveOverflowButton,\n getFocusStyle(theme, { inset: -1 }),\n ItemButtonStyles,\n {\n fontSize: fonts.small.fontSize,\n color: palette.neutralSecondary,\n backgroundColor: palette.neutralLighter,\n marginLeft: spacingAroundItemButton * 2 + \"px\",\n },\n ],\n itemButton: [classNames.itemButton, ItemButtonStyles],\n itemContainer: [\n classNames.itemContainer,\n {\n display: 'flex',\n },\n ],\n members: [\n classNames.members,\n {\n display: 'flex',\n overflow: 'hidden',\n listStyleType: 'none',\n padding: 0,\n margin: \"-\" + spacingAroundItemButton + \"px\",\n },\n ],\n member: [\n classNames.member,\n {\n display: 'inline-flex',\n flex: '0 0 auto',\n margin: spacingAroundItemButton + \"px\",\n },\n ],\n overflowButton: [\n classNames.overflowButton,\n getFocusStyle(theme, { inset: -1 }),\n ItemButtonStyles,\n {\n fontSize: fonts.medium.fontSize,\n color: palette.neutralSecondary,\n backgroundColor: palette.neutralLighter,\n marginLeft: spacingAroundItemButton * 2 + \"px\",\n },\n ],\n overflowInitialsIcon: [\n {\n color: palette.neutralPrimary,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'WindowText',\n },\n _a),\n },\n ],\n screenReaderOnly: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Facepile.styles.js.map","import { styled } from '../../Utilities';\nimport { FacepileBase } from './Facepile.base';\nimport { styles } from './Facepile.styles';\n/**\n * The Facepile shows a list of faces or initials in a horizontal lockup. Each circle represents a person.\n */\nexport var Facepile = styled(FacepileBase, styles, undefined, {\n scope: 'Facepile',\n});\n//# sourceMappingURL=Facepile.js.map","/**\n * {@docCategory Facepile}\n */\nexport var OverflowButtonType;\n(function (OverflowButtonType) {\n /** No overflow */\n OverflowButtonType[OverflowButtonType[\"none\"] = 0] = \"none\";\n /** +1 overflow icon */\n OverflowButtonType[OverflowButtonType[\"descriptive\"] = 1] = \"descriptive\";\n /** More overflow icon */\n OverflowButtonType[OverflowButtonType[\"more\"] = 2] = \"more\";\n /** Chevron overflow icon */\n OverflowButtonType[OverflowButtonType[\"downArrow\"] = 3] = \"downArrow\";\n})(OverflowButtonType || (OverflowButtonType = {}));\n//# sourceMappingURL=Facepile.types.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".callout_334300da .ms-Suggestions-itemButton{padding:0;border:none}.callout_334300da .ms-Suggestions{min-width:300px}\" }]);\nexport var callout = \"callout_334300da\";\n//# sourceMappingURL=BaseFloatingPicker.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport * as stylesImport from './BaseFloatingPicker.scss';\nimport { Async, initializeComponentRef, css, KeyCodes } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { SuggestionsControl } from './Suggestions/SuggestionsControl';\nvar styles = stylesImport;\nvar BaseFloatingPicker = /** @class */ (function (_super) {\n __extends(BaseFloatingPicker, _super);\n function BaseFloatingPicker(basePickerProps) {\n var _this = _super.call(this, basePickerProps) || this;\n _this.root = React.createRef();\n _this.suggestionsControl = React.createRef();\n _this.SuggestionsControlOfProperType = SuggestionsControl;\n _this.isComponentMounted = false;\n _this.onQueryStringChanged = function (queryString) {\n if (queryString !== _this.state.queryString) {\n _this.setState({\n queryString: queryString,\n });\n if (_this.props.onInputChanged) {\n _this.props.onInputChanged(queryString);\n }\n _this.updateValue(queryString);\n }\n };\n _this.hidePicker = function () {\n var wasShownBeforeUpdate = _this.isSuggestionsShown;\n _this.setState({\n suggestionsVisible: false,\n });\n if (_this.props.onSuggestionsHidden && wasShownBeforeUpdate) {\n _this.props.onSuggestionsHidden();\n }\n };\n _this.showPicker = function (updateValue) {\n if (updateValue === void 0) { updateValue = false; }\n var wasShownBeforeUpdate = _this.isSuggestionsShown;\n _this.setState({\n suggestionsVisible: true,\n });\n // Update the suggestions if updateValue == true\n var value = _this.props.inputElement ? _this.props.inputElement.value : '';\n if (updateValue) {\n _this.updateValue(value);\n }\n if (_this.props.onSuggestionsShown && !wasShownBeforeUpdate) {\n _this.props.onSuggestionsShown();\n }\n };\n _this.completeSuggestion = function () {\n if (_this.suggestionsControl.current && _this.suggestionsControl.current.hasSuggestionSelected()) {\n _this.onChange(_this.suggestionsControl.current.currentSuggestion.item);\n }\n };\n _this.onSuggestionClick = function (ev, item, index) {\n _this.onChange(item);\n _this._updateSuggestionsVisible(false /*shouldShow*/);\n };\n _this.onSuggestionRemove = function (ev, item, index) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(item);\n }\n if (_this.suggestionsControl.current) {\n _this.suggestionsControl.current.removeSuggestion(index);\n }\n };\n _this.onKeyDown = function (ev) {\n if (!_this.state.suggestionsVisible ||\n (_this.props.inputElement && !_this.props.inputElement.contains(ev.target))) {\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.which;\n switch (keyCode) {\n case KeyCodes.escape:\n _this.hidePicker();\n ev.preventDefault();\n ev.stopPropagation();\n break;\n case KeyCodes.tab:\n case KeyCodes.enter:\n if (!ev.shiftKey &&\n !ev.ctrlKey &&\n _this.suggestionsControl.current &&\n _this.suggestionsControl.current.handleKeyDown(keyCode)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else {\n _this._onValidateInput();\n }\n break;\n case KeyCodes.del:\n if (_this.props.onRemoveSuggestion &&\n _this.suggestionsControl.current &&\n _this.suggestionsControl.current.hasSuggestionSelected &&\n _this.suggestionsControl.current.currentSuggestion &&\n ev.shiftKey) {\n _this.props.onRemoveSuggestion(_this.suggestionsControl.current.currentSuggestion.item);\n _this.suggestionsControl.current.removeSuggestion();\n _this.forceUpdate();\n ev.stopPropagation();\n }\n break;\n case KeyCodes.up:\n if (_this.suggestionsControl.current && _this.suggestionsControl.current.handleKeyDown(keyCode)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._updateActiveDescendant();\n }\n break;\n case KeyCodes.down:\n if (_this.suggestionsControl.current && _this.suggestionsControl.current.handleKeyDown(keyCode)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._updateActiveDescendant();\n }\n break;\n }\n };\n _this._onValidateInput = function () {\n if (_this.state.queryString && _this.props.onValidateInput && _this.props.createGenericItem) {\n var itemToConvert = _this.props.createGenericItem(_this.state.queryString, _this.props.onValidateInput(_this.state.queryString));\n var convertedItems = _this.suggestionStore.convertSuggestionsToSuggestionItems([itemToConvert]);\n _this.onChange(convertedItems[0].item);\n }\n };\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n _this.suggestionStore = basePickerProps.suggestionsStore;\n _this.state = {\n queryString: '',\n didBind: false,\n };\n return _this;\n }\n Object.defineProperty(BaseFloatingPicker.prototype, \"inputText\", {\n get: function () {\n return this.state.queryString;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseFloatingPicker.prototype, \"suggestions\", {\n get: function () {\n return this.suggestionStore.suggestions;\n },\n enumerable: true,\n configurable: true\n });\n BaseFloatingPicker.prototype.forceResolveSuggestion = function () {\n if (this.suggestionsControl.current && this.suggestionsControl.current.hasSuggestionSelected()) {\n this.completeSuggestion();\n }\n else {\n this._onValidateInput();\n }\n };\n Object.defineProperty(BaseFloatingPicker.prototype, \"currentSelectedSuggestionIndex\", {\n get: function () {\n return this.suggestionsControl.current ? this.suggestionsControl.current.currentSuggestionIndex : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseFloatingPicker.prototype, \"isSuggestionsShown\", {\n get: function () {\n return this.state.suggestionsVisible === undefined ? false : this.state.suggestionsVisible;\n },\n enumerable: true,\n configurable: true\n });\n BaseFloatingPicker.prototype.componentDidMount = function () {\n this._bindToInputElement();\n this.isComponentMounted = true;\n this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);\n };\n BaseFloatingPicker.prototype.componentDidUpdate = function () {\n this._bindToInputElement();\n };\n BaseFloatingPicker.prototype.componentWillUnmount = function () {\n this._unbindFromInputElement();\n this.isComponentMounted = false;\n };\n BaseFloatingPicker.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n if (newProps.suggestionItems) {\n this.updateSuggestions(newProps.suggestionItems);\n }\n };\n BaseFloatingPicker.prototype.updateSuggestions = function (suggestions, forceUpdate) {\n if (forceUpdate === void 0) { forceUpdate = false; }\n this.suggestionStore.updateSuggestions(suggestions);\n if (forceUpdate) {\n this.forceUpdate();\n }\n };\n BaseFloatingPicker.prototype.render = function () {\n var className = this.props.className;\n return (React.createElement(\"div\", { ref: this.root, className: css('ms-BasePicker ms-BaseFloatingPicker', className ? className : '') }, this.renderSuggestions()));\n };\n BaseFloatingPicker.prototype.renderSuggestions = function () {\n var TypedSuggestionsControl = this.SuggestionsControlOfProperType;\n return this.state.suggestionsVisible ? (React.createElement(Callout, __assign({ className: styles.callout, isBeakVisible: false, gapSpace: 5, target: this.props.inputElement, onDismiss: this.hidePicker, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintForRTL: DirectionalHint.bottomRightEdge, calloutWidth: this.props.calloutWidth ? this.props.calloutWidth : 0 }, this.props.pickerCalloutProps),\n React.createElement(TypedSuggestionsControl, __assign({ onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionsControl, completeSuggestion: this.completeSuggestion, shouldLoopSelection: false }, this.props.pickerSuggestionsProps)))) : null;\n };\n BaseFloatingPicker.prototype.onSelectionChange = function () {\n this.forceUpdate();\n };\n BaseFloatingPicker.prototype.updateValue = function (updatedValue) {\n if (updatedValue === '') {\n this.updateSuggestionWithZeroState();\n }\n else {\n this._onResolveSuggestions(updatedValue);\n }\n };\n BaseFloatingPicker.prototype.updateSuggestionWithZeroState = function () {\n if (this.props.onZeroQuerySuggestion) {\n var onEmptyInputFocus = this.props.onZeroQuerySuggestion;\n var suggestions = onEmptyInputFocus(this.props.selectedItems);\n this.updateSuggestionsList(suggestions);\n }\n else {\n this.hidePicker();\n }\n };\n BaseFloatingPicker.prototype.updateSuggestionsList = function (suggestions) {\n var _this = this;\n var suggestionsArray = suggestions;\n var suggestionsPromiseLike = suggestions;\n // Check to see if the returned value is an array, if it is then just pass it into the next function.\n // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n // If it is then resolve it asynchronously.\n if (Array.isArray(suggestionsArray)) {\n this.updateSuggestions(suggestionsArray, true /*forceUpdate*/);\n }\n else if (suggestionsPromiseLike && suggestionsPromiseLike.then) {\n // Ensure that the promise will only use the callback if it was the most recent one.\n var promise_1 = (this.currentPromise = suggestionsPromiseLike);\n promise_1.then(function (newSuggestions) {\n // Only update if the next promise has not yet resolved and\n // the floating picker is still mounted.\n if (promise_1 === _this.currentPromise && _this.isComponentMounted) {\n _this.updateSuggestions(newSuggestions, true /*forceUpdate*/);\n }\n });\n }\n };\n BaseFloatingPicker.prototype.onChange = function (item) {\n if (this.props.onChange) {\n this.props.onChange(item);\n }\n };\n BaseFloatingPicker.prototype._updateActiveDescendant = function () {\n if (this.props.inputElement && this.suggestionsControl.current && this.suggestionsControl.current.selectedElement) {\n var selectedElId = this.suggestionsControl.current.selectedElement.getAttribute('id');\n if (selectedElId) {\n this.props.inputElement.setAttribute('aria-activedescendant', selectedElId);\n }\n }\n };\n BaseFloatingPicker.prototype._onResolveSuggestions = function (updatedValue) {\n var suggestions = this.props.onResolveSuggestions(updatedValue, this.props.selectedItems);\n this._updateSuggestionsVisible(true /*shouldShow*/);\n if (suggestions !== null) {\n this.updateSuggestionsList(suggestions);\n }\n };\n BaseFloatingPicker.prototype._updateSuggestionsVisible = function (shouldShow) {\n if (shouldShow) {\n this.showPicker();\n }\n else {\n this.hidePicker();\n }\n };\n BaseFloatingPicker.prototype._bindToInputElement = function () {\n if (this.props.inputElement && !this.state.didBind) {\n this.props.inputElement.addEventListener('keydown', this.onKeyDown);\n this.setState({ didBind: true });\n }\n };\n BaseFloatingPicker.prototype._unbindFromInputElement = function () {\n if (this.props.inputElement && this.state.didBind) {\n this.props.inputElement.removeEventListener('keydown', this.onKeyDown);\n this.setState({ didBind: false });\n }\n };\n return BaseFloatingPicker;\n}(React.Component));\nexport { BaseFloatingPicker };\n//# sourceMappingURL=BaseFloatingPicker.js.map","import { __assign, __extends } from \"tslib\";\nimport { getRTL, getInitials } from '../../../Utilities';\nimport { BaseFloatingPicker } from '../BaseFloatingPicker';\nimport { SuggestionItemNormal } from './PeoplePickerItems/SuggestionItemDefault';\nimport './PeoplePicker.scss';\n/**\n * {@docCategory FloatingPeoplePicker}\n */\nvar BaseFloatingPeoplePicker = /** @class */ (function (_super) {\n __extends(BaseFloatingPeoplePicker, _super);\n function BaseFloatingPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BaseFloatingPeoplePicker;\n}(BaseFloatingPicker));\nexport { BaseFloatingPeoplePicker };\nvar FloatingPeoplePicker = /** @class */ (function (_super) {\n __extends(FloatingPeoplePicker, _super);\n function FloatingPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FloatingPeoplePicker.defaultProps = {\n onRenderSuggestionsItem: function (props, itemProps) {\n return SuggestionItemNormal(__assign({}, props), __assign({}, itemProps));\n },\n createGenericItem: createItem,\n };\n return FloatingPeoplePicker;\n}(BaseFloatingPeoplePicker));\nexport { FloatingPeoplePicker };\nexport function createItem(name, isValid) {\n var personaToConvert = {\n key: name,\n primaryText: name,\n imageInitials: '!',\n isValid: isValid,\n };\n if (!isValid) {\n personaToConvert.imageInitials = getInitials(name, getRTL());\n }\n return personaToConvert;\n}\n//# sourceMappingURL=FloatingPeoplePicker.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '../../../../Utilities';\nimport { Persona, PersonaSize, PersonaPresence } from '../../../../Persona';\nimport * as stylesImport from '../PeoplePicker.scss';\nexport var SuggestionItemNormal = function (personaProps, suggestionItemProps) {\n return (React.createElement(\"div\", { className: css('ms-PeoplePicker-personaContent', stylesImport.peoplePickerPersonaContent) },\n React.createElement(Persona, __assign({ presence: personaProps.presence !== undefined ? personaProps.presence : PersonaPresence.none, size: PersonaSize.size40, className: css('ms-PeoplePicker-Persona', stylesImport.peoplePickerPersona), showSecondaryText: true }, personaProps))));\n};\n//# sourceMappingURL=SuggestionItemDefault.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".resultContent_5b9ff123{display:table-row}.resultContent_5b9ff123 .resultItem_5b9ff123{display:table-cell;vertical-align:bottom}.peoplePickerPersona_5b9ff123{width:180px}.peoplePickerPersona_5b9ff123 .ms-Persona-details{width:100%}.peoplePicker_5b9ff123 .ms-BasePicker-text{min-height:40px}.peoplePickerPersonaContent_5b9ff123{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:7px 12px}\" }]);\nexport var resultContent = \"resultContent_5b9ff123\";\nexport var resultItem = \"resultItem_5b9ff123\";\nexport var peoplePickerPersona = \"peoplePickerPersona_5b9ff123\";\nexport var peoplePicker = \"peoplePicker_5b9ff123\";\nexport var peoplePickerPersonaContent = \"peoplePickerPersonaContent_5b9ff123\";\n//# sourceMappingURL=PeoplePicker.scss.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".root_36fd6562{min-width:260px}.actionButton_36fd6562{background:0 0;background-color:transparent;border:0;cursor:pointer;margin:0;padding:0;position:relative;width:100%;font-size:12px}html[dir=ltr] .actionButton_36fd6562{text-align:left}html[dir=rtl] .actionButton_36fd6562{text-align:right}.actionButton_36fd6562:hover{background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \";cursor:pointer}.actionButton_36fd6562:active,.actionButton_36fd6562:focus{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.actionButton_36fd6562 .ms-Button-icon{font-size:16px;width:25px}.actionButton_36fd6562 .ms-Button-label{margin:0 4px 0 9px}html[dir=rtl] .actionButton_36fd6562 .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_36fd6562{background-color:\" }, { \"theme\": \"themeLighter\", \"defaultValue\": \"#deecf9\" }, { \"rawString\": \"}.buttonSelected_36fd6562:hover{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \";cursor:pointer}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.buttonSelected_36fd6562:hover{background-color:Highlight;color:HighlightText}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.buttonSelected_36fd6562{background-color:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.suggestionsTitle_36fd6562{font-size:12px}.suggestionsSpinner_36fd6562{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir=ltr] .suggestionsSpinner_36fd6562{padding-left:14px}html[dir=rtl] .suggestionsSpinner_36fd6562{padding-right:14px}html[dir=ltr] .suggestionsSpinner_36fd6562{text-align:left}html[dir=rtl] .suggestionsSpinner_36fd6562{text-align:right}.suggestionsSpinner_36fd6562 .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_36fd6562 .ms-Spinner-label{display:inline-block;margin:0 10px 0 16px;vertical-align:middle}html[dir=rtl] .suggestionsSpinner_36fd6562 .ms-Spinner-label{margin:0 16px 0 10px}.itemButton_36fd6562{height:100%;width:100%;padding:7px 12px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.itemButton_36fd6562{color:WindowText}}.screenReaderOnly_36fd6562{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var root = \"root_36fd6562\";\nexport var actionButton = \"actionButton_36fd6562\";\nexport var buttonSelected = \"buttonSelected_36fd6562\";\nexport var suggestionsTitle = \"suggestionsTitle_36fd6562\";\nexport var suggestionsSpinner = \"suggestionsSpinner_36fd6562\";\nexport var itemButton = \"itemButton_36fd6562\";\nexport var screenReaderOnly = \"screenReaderOnly_36fd6562\";\n//# sourceMappingURL=SuggestionsControl.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { css, KeyCodes, initializeComponentRef } from '../../../Utilities';\nimport { SuggestionsCore } from './SuggestionsCore';\nimport * as stylesImport from './SuggestionsControl.scss';\nimport { hiddenContentStyle, mergeStyles } from '../../../Styling';\nvar styles = stylesImport;\nexport var SuggestionItemType;\n(function (SuggestionItemType) {\n SuggestionItemType[SuggestionItemType[\"header\"] = 0] = \"header\";\n SuggestionItemType[SuggestionItemType[\"suggestion\"] = 1] = \"suggestion\";\n SuggestionItemType[SuggestionItemType[\"footer\"] = 2] = \"footer\";\n})(SuggestionItemType || (SuggestionItemType = {}));\nvar SuggestionsHeaderFooterItem = /** @class */ (function (_super) {\n __extends(SuggestionsHeaderFooterItem, _super);\n function SuggestionsHeaderFooterItem(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n SuggestionsHeaderFooterItem.prototype.render = function () {\n var _a;\n var _b = this.props, renderItem = _b.renderItem, onExecute = _b.onExecute, isSelected = _b.isSelected, id = _b.id, className = _b.className;\n return onExecute ? (React.createElement(\"div\", { id: id, onClick: onExecute, className: css('ms-Suggestions-sectionButton', className, styles.actionButton, (_a = {},\n _a['is-selected ' + styles.buttonSelected] = isSelected,\n _a)) }, renderItem())) : (React.createElement(\"div\", { id: id, className: css('ms-Suggestions-section', className, styles.suggestionsTitle) }, renderItem()));\n };\n return SuggestionsHeaderFooterItem;\n}(React.Component));\nexport { SuggestionsHeaderFooterItem };\n/**\n * Class when used with SuggestionsStore, renders a suggestions control with customizable headers and footers\n */\nvar SuggestionsControl = /** @class */ (function (_super) {\n __extends(SuggestionsControl, _super);\n function SuggestionsControl(suggestionsProps) {\n var _this = _super.call(this, suggestionsProps) || this;\n _this._selectedElement = React.createRef();\n _this._suggestions = React.createRef();\n _this.SuggestionsOfProperType = SuggestionsCore;\n initializeComponentRef(_this);\n _this.state = {\n selectedHeaderIndex: -1,\n selectedFooterIndex: -1,\n suggestions: suggestionsProps.suggestions,\n };\n return _this;\n }\n SuggestionsControl.prototype.componentDidMount = function () {\n this.resetSelectedItem();\n };\n SuggestionsControl.prototype.componentDidUpdate = function () {\n this.scrollSelected();\n };\n SuggestionsControl.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n var _this = this;\n if (newProps.suggestions) {\n this.setState({ suggestions: newProps.suggestions }, function () {\n _this.resetSelectedItem();\n });\n }\n };\n SuggestionsControl.prototype.componentWillUnmount = function () {\n var _a;\n (_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.deselectAllSuggestions();\n };\n SuggestionsControl.prototype.render = function () {\n var _a = this.props, className = _a.className, headerItemsProps = _a.headerItemsProps, footerItemsProps = _a.footerItemsProps, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText;\n var screenReaderTextStyles = mergeStyles(hiddenContentStyle);\n var shouldAlertSuggestionsAvailableText = this.state.suggestions && this.state.suggestions.length > 0 && suggestionsAvailableAlertText;\n return (React.createElement(\"div\", { className: css('ms-Suggestions', className ? className : '', styles.root) },\n headerItemsProps && this.renderHeaderItems(),\n this._renderSuggestions(),\n footerItemsProps && this.renderFooterItems(),\n shouldAlertSuggestionsAvailableText ? (React.createElement(\"span\", { role: \"alert\", \"aria-live\": \"polite\", className: screenReaderTextStyles }, suggestionsAvailableAlertText)) : null));\n };\n Object.defineProperty(SuggestionsControl.prototype, \"currentSuggestion\", {\n get: function () {\n var _a;\n return ((_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.getCurrentItem()) || undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SuggestionsControl.prototype, \"currentSuggestionIndex\", {\n get: function () {\n return this._suggestions.current ? this._suggestions.current.currentIndex : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SuggestionsControl.prototype, \"selectedElement\", {\n get: function () {\n var _a;\n return this._selectedElement.current ? this._selectedElement.current : (_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.selectedElement;\n },\n enumerable: true,\n configurable: true\n });\n SuggestionsControl.prototype.hasSuggestionSelected = function () {\n var _a;\n return ((_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.hasSuggestionSelected()) || false;\n };\n SuggestionsControl.prototype.hasSelection = function () {\n var _a = this.state, selectedHeaderIndex = _a.selectedHeaderIndex, selectedFooterIndex = _a.selectedFooterIndex;\n return selectedHeaderIndex !== -1 || this.hasSuggestionSelected() || selectedFooterIndex !== -1;\n };\n SuggestionsControl.prototype.executeSelectedAction = function () {\n var _a;\n var _b = this.props, headerItemsProps = _b.headerItemsProps, footerItemsProps = _b.footerItemsProps;\n var _c = this.state, selectedHeaderIndex = _c.selectedHeaderIndex, selectedFooterIndex = _c.selectedFooterIndex;\n if (headerItemsProps && selectedHeaderIndex !== -1 && selectedHeaderIndex < headerItemsProps.length) {\n var selectedHeaderItem = headerItemsProps[selectedHeaderIndex];\n if (selectedHeaderItem.onExecute) {\n selectedHeaderItem.onExecute();\n }\n }\n else if ((_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.hasSuggestionSelected()) {\n this.props.completeSuggestion();\n }\n else if (footerItemsProps && selectedFooterIndex !== -1 && selectedFooterIndex < footerItemsProps.length) {\n var selectedFooterItem = footerItemsProps[selectedFooterIndex];\n if (selectedFooterItem.onExecute) {\n selectedFooterItem.onExecute();\n }\n }\n };\n SuggestionsControl.prototype.removeSuggestion = function (index) {\n var _a, _b;\n (_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.removeSuggestion(index ? index : (_b = this._suggestions.current) === null || _b === void 0 ? void 0 : _b.currentIndex);\n };\n /**\n * Handles the key down, returns true, if the event was handled, false otherwise\n * @param keyCode - The keyCode to handle\n */\n SuggestionsControl.prototype.handleKeyDown = function (keyCode) {\n var _a, _b, _c, _d;\n var _e = this.state, selectedHeaderIndex = _e.selectedHeaderIndex, selectedFooterIndex = _e.selectedFooterIndex;\n var isKeyDownHandled = false;\n if (keyCode === KeyCodes.down) {\n if (selectedHeaderIndex === -1 &&\n !((_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.hasSuggestionSelected()) &&\n selectedFooterIndex === -1) {\n this.selectFirstItem();\n }\n else if (selectedHeaderIndex !== -1) {\n this.selectNextItem(SuggestionItemType.header);\n isKeyDownHandled = true;\n }\n else if ((_b = this._suggestions.current) === null || _b === void 0 ? void 0 : _b.hasSuggestionSelected()) {\n this.selectNextItem(SuggestionItemType.suggestion);\n isKeyDownHandled = true;\n }\n else if (selectedFooterIndex !== -1) {\n this.selectNextItem(SuggestionItemType.footer);\n isKeyDownHandled = true;\n }\n }\n else if (keyCode === KeyCodes.up) {\n if (selectedHeaderIndex === -1 &&\n !((_c = this._suggestions.current) === null || _c === void 0 ? void 0 : _c.hasSuggestionSelected()) &&\n selectedFooterIndex === -1) {\n this.selectLastItem();\n }\n else if (selectedHeaderIndex !== -1) {\n this.selectPreviousItem(SuggestionItemType.header);\n isKeyDownHandled = true;\n }\n else if ((_d = this._suggestions.current) === null || _d === void 0 ? void 0 : _d.hasSuggestionSelected()) {\n this.selectPreviousItem(SuggestionItemType.suggestion);\n isKeyDownHandled = true;\n }\n else if (selectedFooterIndex !== -1) {\n this.selectPreviousItem(SuggestionItemType.footer);\n isKeyDownHandled = true;\n }\n }\n else if (keyCode === KeyCodes.enter || keyCode === KeyCodes.tab) {\n if (this.hasSelection()) {\n this.executeSelectedAction();\n isKeyDownHandled = true;\n }\n }\n return isKeyDownHandled;\n };\n // TODO get the element to scroll into view properly regardless of direction.\n SuggestionsControl.prototype.scrollSelected = function () {\n if (this._selectedElement.current) {\n this._selectedElement.current.scrollIntoView(false);\n }\n };\n SuggestionsControl.prototype.renderHeaderItems = function () {\n var _this = this;\n var _a = this.props, headerItemsProps = _a.headerItemsProps, suggestionsHeaderContainerAriaLabel = _a.suggestionsHeaderContainerAriaLabel;\n var selectedHeaderIndex = this.state.selectedHeaderIndex;\n return headerItemsProps ? (React.createElement(\"div\", { className: css('ms-Suggestions-headerContainer', styles.suggestionsContainer), id: \"suggestionHeader-list\", role: \"list\", \"aria-label\": suggestionsHeaderContainerAriaLabel }, headerItemsProps.map(function (headerItemProps, index) {\n var isSelected = selectedHeaderIndex !== -1 && selectedHeaderIndex === index;\n return headerItemProps.shouldShow() ? (React.createElement(\"div\", { ref: isSelected ? _this._selectedElement : undefined, id: 'sug-header' + index, key: 'sug-header' + index, role: \"listitem\", \"aria-label\": headerItemProps.ariaLabel },\n React.createElement(SuggestionsHeaderFooterItem, { id: 'sug-header-item' + index, isSelected: isSelected, renderItem: headerItemProps.renderItem, onExecute: headerItemProps.onExecute, className: headerItemProps.className }))) : null;\n }))) : null;\n };\n SuggestionsControl.prototype.renderFooterItems = function () {\n var _this = this;\n var _a = this.props, footerItemsProps = _a.footerItemsProps, suggestionsFooterContainerAriaLabel = _a.suggestionsFooterContainerAriaLabel;\n var selectedFooterIndex = this.state.selectedFooterIndex;\n return footerItemsProps ? (React.createElement(\"div\", { className: css('ms-Suggestions-footerContainer', styles.suggestionsContainer), id: \"suggestionFooter-list\", role: \"list\", \"aria-label\": suggestionsFooterContainerAriaLabel }, footerItemsProps.map(function (footerItemProps, index) {\n var isSelected = selectedFooterIndex !== -1 && selectedFooterIndex === index;\n return footerItemProps.shouldShow() ? (React.createElement(\"div\", { ref: isSelected ? _this._selectedElement : undefined, id: 'sug-footer' + index, key: 'sug-footer' + index, role: \"listitem\", \"aria-label\": footerItemProps.ariaLabel },\n React.createElement(SuggestionsHeaderFooterItem, { id: 'sug-footer-item' + index, isSelected: isSelected, renderItem: footerItemProps.renderItem, onExecute: footerItemProps.onExecute, className: footerItemProps.className }))) : null;\n }))) : null;\n };\n SuggestionsControl.prototype._renderSuggestions = function () {\n var TypedSuggestions = this.SuggestionsOfProperType;\n return React.createElement(TypedSuggestions, __assign({ ref: this._suggestions }, this.props, { suggestions: this.state.suggestions }));\n };\n /**\n * Selects the next selectable item\n */\n SuggestionsControl.prototype.selectNextItem = function (itemType, originalItemType) {\n // If the recursive calling has not found a selectable item in the other suggestion item type groups\n // And the method is being called again with the original item type,\n // Select the first selectable item of this suggestion item type group (could be the currently selected item)\n if (itemType === originalItemType) {\n this._selectNextItemOfItemType(itemType);\n return;\n }\n var startedItemType = originalItemType !== undefined ? originalItemType : itemType;\n // Try to set the selection to the next selectable item, of the same suggestion item type group\n // If this is the original item type, use the current index\n var selectionChanged = this._selectNextItemOfItemType(itemType, startedItemType === itemType ? this._getCurrentIndexForType(itemType) : undefined);\n // If the selection did not change, try to select from the next suggestion type group\n if (!selectionChanged) {\n this.selectNextItem(this._getNextItemSectionType(itemType), startedItemType);\n }\n };\n /**\n * Selects the previous selectable item\n */\n SuggestionsControl.prototype.selectPreviousItem = function (itemType, originalItemType) {\n // If the recursive calling has not found a selectable item in the other suggestion item type groups\n // And the method is being called again with the original item type,\n // Select the last selectable item of this suggestion item type group (could be the currently selected item)\n if (itemType === originalItemType) {\n this._selectPreviousItemOfItemType(itemType);\n return;\n }\n var startedItemType = originalItemType !== undefined ? originalItemType : itemType;\n // Try to set the selection to the previous selectable item, of the same suggestion item type group\n var selectionChanged = this._selectPreviousItemOfItemType(itemType, startedItemType === itemType ? this._getCurrentIndexForType(itemType) : undefined);\n // If the selection did not change, try to select from the previous suggestion type group\n if (!selectionChanged) {\n this.selectPreviousItem(this._getPreviousItemSectionType(itemType), startedItemType);\n }\n };\n /**\n * Resets the selected state and selects the first selectable item\n */\n SuggestionsControl.prototype.resetSelectedItem = function () {\n var _a;\n this.setState({ selectedHeaderIndex: -1, selectedFooterIndex: -1 });\n (_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.deselectAllSuggestions();\n // Select the first item if the shouldSelectFirstItem prop is not set or it is set and it returns true\n if (this.props.shouldSelectFirstItem === undefined || this.props.shouldSelectFirstItem()) {\n this.selectFirstItem();\n }\n };\n /**\n * Selects the first item\n */\n SuggestionsControl.prototype.selectFirstItem = function () {\n if (this._selectNextItemOfItemType(SuggestionItemType.header)) {\n return;\n }\n if (this._selectNextItemOfItemType(SuggestionItemType.suggestion)) {\n return;\n }\n this._selectNextItemOfItemType(SuggestionItemType.footer);\n };\n /**\n * Selects the last item\n */\n SuggestionsControl.prototype.selectLastItem = function () {\n if (this._selectPreviousItemOfItemType(SuggestionItemType.footer)) {\n return;\n }\n if (this._selectPreviousItemOfItemType(SuggestionItemType.suggestion)) {\n return;\n }\n this._selectPreviousItemOfItemType(SuggestionItemType.header);\n };\n /**\n * Selects the next item in the suggestion item type group, given the current index\n * If none is able to be selected, returns false, otherwise returns true\n * @param itemType - The suggestion item type\n * @param currentIndex - The current index, default is -1\n */\n SuggestionsControl.prototype._selectNextItemOfItemType = function (itemType, currentIndex) {\n if (currentIndex === void 0) { currentIndex = -1; }\n var _a, _b;\n if (itemType === SuggestionItemType.suggestion) {\n if (this.state.suggestions.length > currentIndex + 1) {\n (_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.setSelectedSuggestion(currentIndex + 1);\n this.setState({ selectedHeaderIndex: -1, selectedFooterIndex: -1 });\n return true;\n }\n }\n else {\n var isHeader = itemType === SuggestionItemType.header;\n var itemProps = isHeader ? this.props.headerItemsProps : this.props.footerItemsProps;\n if (itemProps && itemProps.length > currentIndex + 1) {\n for (var i = currentIndex + 1; i < itemProps.length; i++) {\n var item = itemProps[i];\n if (item.onExecute && item.shouldShow()) {\n this.setState({ selectedHeaderIndex: isHeader ? i : -1 });\n this.setState({ selectedFooterIndex: isHeader ? -1 : i });\n (_b = this._suggestions.current) === null || _b === void 0 ? void 0 : _b.deselectAllSuggestions();\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * Selects the previous item in the suggestion item type group, given the current index\n * If none is able to be selected, returns false, otherwise returns true\n * @param itemType - The suggestion item type\n * @param currentIndex - The current index. If none is provided, the default is the items length of specified type\n */\n SuggestionsControl.prototype._selectPreviousItemOfItemType = function (itemType, currentIndex) {\n var _a, _b;\n if (itemType === SuggestionItemType.suggestion) {\n var index = currentIndex !== undefined ? currentIndex : this.state.suggestions.length;\n if (index > 0) {\n (_a = this._suggestions.current) === null || _a === void 0 ? void 0 : _a.setSelectedSuggestion(index - 1);\n this.setState({ selectedHeaderIndex: -1, selectedFooterIndex: -1 });\n return true;\n }\n }\n else {\n var isHeader = itemType === SuggestionItemType.header;\n var itemProps = isHeader ? this.props.headerItemsProps : this.props.footerItemsProps;\n if (itemProps) {\n var index = currentIndex !== undefined ? currentIndex : itemProps.length;\n if (index > 0) {\n for (var i = index - 1; i >= 0; i--) {\n var item = itemProps[i];\n if (item.onExecute && item.shouldShow()) {\n this.setState({ selectedHeaderIndex: isHeader ? i : -1 });\n this.setState({ selectedFooterIndex: isHeader ? -1 : i });\n (_b = this._suggestions.current) === null || _b === void 0 ? void 0 : _b.deselectAllSuggestions();\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n SuggestionsControl.prototype._getCurrentIndexForType = function (itemType) {\n switch (itemType) {\n case SuggestionItemType.header:\n return this.state.selectedHeaderIndex;\n case SuggestionItemType.suggestion:\n return this._suggestions.current.currentIndex;\n case SuggestionItemType.footer:\n return this.state.selectedFooterIndex;\n }\n };\n SuggestionsControl.prototype._getNextItemSectionType = function (itemType) {\n switch (itemType) {\n case SuggestionItemType.header:\n return SuggestionItemType.suggestion;\n case SuggestionItemType.suggestion:\n return SuggestionItemType.footer;\n case SuggestionItemType.footer:\n return SuggestionItemType.header;\n }\n };\n SuggestionsControl.prototype._getPreviousItemSectionType = function (itemType) {\n switch (itemType) {\n case SuggestionItemType.header:\n return SuggestionItemType.footer;\n case SuggestionItemType.suggestion:\n return SuggestionItemType.header;\n case SuggestionItemType.footer:\n return SuggestionItemType.suggestion;\n }\n };\n return SuggestionsControl;\n}(React.Component));\nexport { SuggestionsControl };\n//# sourceMappingURL=SuggestionsControl.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".suggestionsContainer_a6f0007f{overflow-y:auto;overflow-x:hidden;max-height:300px}.suggestionsContainer_a6f0007f .ms-Suggestion-item:hover{background-color:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \";cursor:pointer}.suggestionsContainer_a6f0007f .is-suggested{background-color:\" }, { \"theme\": \"themeLighter\", \"defaultValue\": \"#deecf9\" }, { \"rawString\": \"}.suggestionsContainer_a6f0007f .is-suggested:hover{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \";cursor:pointer}\" }]);\nexport var suggestionsContainer = \"suggestionsContainer_a6f0007f\";\n//# sourceMappingURL=SuggestionsCore.scss.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, css } from '../../../Utilities';\nimport { SuggestionsItem } from '../../../Pickers';\nimport * as stylesImport from './SuggestionsCore.scss';\nvar styles = stylesImport;\n/**\n * Class when used with SuggestionsStore, renders a basic suggestions control\n */\nvar SuggestionsCore = /** @class */ (function (_super) {\n __extends(SuggestionsCore, _super);\n function SuggestionsCore(suggestionsProps) {\n var _this = _super.call(this, suggestionsProps) || this;\n _this._selectedElement = React.createRef();\n _this.SuggestionsItemOfProperType = SuggestionsItem;\n _this._onClickTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n _this.props.onSuggestionClick(ev, item, index);\n };\n };\n _this._onRemoveTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n var onSuggestionRemove = _this.props.onSuggestionRemove;\n onSuggestionRemove(ev, item, index);\n ev.stopPropagation();\n };\n };\n initializeComponentRef(_this);\n _this.currentIndex = -1;\n return _this;\n }\n /**\n * Increments the selected suggestion index\n */\n SuggestionsCore.prototype.nextSuggestion = function () {\n var suggestions = this.props.suggestions;\n if (suggestions && suggestions.length > 0) {\n if (this.currentIndex === -1) {\n this.setSelectedSuggestion(0);\n return true;\n }\n else if (this.currentIndex < suggestions.length - 1) {\n this.setSelectedSuggestion(this.currentIndex + 1);\n return true;\n }\n else if (this.props.shouldLoopSelection && this.currentIndex === suggestions.length - 1) {\n this.setSelectedSuggestion(0);\n return true;\n }\n }\n return false;\n };\n /**\n * Decrements the selected suggestion index\n */\n SuggestionsCore.prototype.previousSuggestion = function () {\n var suggestions = this.props.suggestions;\n if (suggestions && suggestions.length > 0) {\n if (this.currentIndex === -1) {\n this.setSelectedSuggestion(suggestions.length - 1);\n return true;\n }\n else if (this.currentIndex > 0) {\n this.setSelectedSuggestion(this.currentIndex - 1);\n return true;\n }\n else if (this.props.shouldLoopSelection && this.currentIndex === 0) {\n this.setSelectedSuggestion(suggestions.length - 1);\n return true;\n }\n }\n return false;\n };\n Object.defineProperty(SuggestionsCore.prototype, \"selectedElement\", {\n get: function () {\n return this._selectedElement.current || undefined;\n },\n enumerable: true,\n configurable: true\n });\n SuggestionsCore.prototype.getCurrentItem = function () {\n return this.props.suggestions[this.currentIndex];\n };\n SuggestionsCore.prototype.getSuggestionAtIndex = function (index) {\n return this.props.suggestions[index];\n };\n SuggestionsCore.prototype.hasSuggestionSelected = function () {\n return this.currentIndex !== -1 && this.currentIndex < this.props.suggestions.length;\n };\n SuggestionsCore.prototype.removeSuggestion = function (index) {\n this.props.suggestions.splice(index, 1);\n };\n SuggestionsCore.prototype.deselectAllSuggestions = function () {\n if (this.currentIndex > -1 && this.props.suggestions[this.currentIndex]) {\n this.props.suggestions[this.currentIndex].selected = false;\n this.currentIndex = -1;\n this.forceUpdate();\n }\n };\n SuggestionsCore.prototype.setSelectedSuggestion = function (index) {\n var suggestions = this.props.suggestions;\n if (index > suggestions.length - 1 || index < 0) {\n this.currentIndex = 0;\n this.currentSuggestion.selected = false;\n this.currentSuggestion = suggestions[0];\n this.currentSuggestion.selected = true;\n }\n else {\n if (this.currentIndex > -1 && suggestions[this.currentIndex]) {\n suggestions[this.currentIndex].selected = false;\n }\n suggestions[index].selected = true;\n this.currentIndex = index;\n this.currentSuggestion = suggestions[index];\n }\n this.forceUpdate();\n };\n SuggestionsCore.prototype.componentDidUpdate = function () {\n this.scrollSelected();\n };\n SuggestionsCore.prototype.render = function () {\n var _this = this;\n var _a = this.props, onRenderSuggestion = _a.onRenderSuggestion, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, suggestionsContainerAriaLabel = _a.suggestionsContainerAriaLabel;\n var TypedSuggestionsItem = this.SuggestionsItemOfProperType;\n var suggestions = this.props.suggestions;\n if (resultsMaximumNumber) {\n suggestions = suggestions.slice(0, resultsMaximumNumber);\n }\n return (React.createElement(\"div\", { className: css('ms-Suggestions-container', styles.suggestionsContainer), id: \"suggestion-list\", role: \"list\", \"aria-label\": suggestionsContainerAriaLabel }, suggestions.map(function (suggestion, index) { return (React.createElement(\"div\", { ref: suggestion.selected || index === _this.currentIndex ? _this._selectedElement : undefined, key: suggestion.item.key ? suggestion.item.key : index, id: 'sug-' + index, role: \"listitem\", \"aria-label\": suggestion.ariaLabel },\n React.createElement(TypedSuggestionsItem, { id: 'sug-item' + index, suggestionModel: suggestion, RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index), isSelectedOverride: index === _this.currentIndex }))); })));\n };\n // TODO get the element to scroll into view properly regardless of direction.\n SuggestionsCore.prototype.scrollSelected = function () {\n var _a;\n if (((_a = this._selectedElement.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView) !== undefined) {\n this._selectedElement.current.scrollIntoView(false);\n }\n };\n return SuggestionsCore;\n}(React.Component));\nexport { SuggestionsCore };\n//# sourceMappingURL=SuggestionsCore.js.map","var SuggestionsStore = /** @class */ (function () {\n function SuggestionsStore(options) {\n var _this = this;\n this._isSuggestionModel = function (value) {\n return value.item !== undefined;\n };\n this._ensureSuggestionModel = function (suggestion) {\n if (_this._isSuggestionModel(suggestion)) {\n return suggestion;\n }\n else {\n return {\n item: suggestion,\n selected: false,\n ariaLabel: _this.getAriaLabel !== undefined\n ? _this.getAriaLabel(suggestion)\n : suggestion.name ||\n suggestion.text ||\n suggestion.primaryText,\n };\n }\n };\n this.suggestions = [];\n this.getAriaLabel = options && options.getAriaLabel;\n }\n SuggestionsStore.prototype.updateSuggestions = function (newSuggestions) {\n if (newSuggestions && newSuggestions.length > 0) {\n this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);\n }\n else {\n this.suggestions = [];\n }\n };\n SuggestionsStore.prototype.getSuggestions = function () {\n return this.suggestions;\n };\n SuggestionsStore.prototype.getSuggestionAtIndex = function (index) {\n return this.suggestions[index];\n };\n SuggestionsStore.prototype.removeSuggestion = function (index) {\n this.suggestions.splice(index, 1);\n };\n SuggestionsStore.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {\n return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];\n };\n return SuggestionsStore;\n}());\nexport { SuggestionsStore };\n//# sourceMappingURL=SuggestionsStore.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { modalize } from '@uifabric/utilities';\nimport { elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, getDocument, focusAsync, initializeComponentRef, on, } from '../../Utilities';\nvar FocusTrapZone = /** @class */ (function (_super) {\n __extends(FocusTrapZone, _super);\n function FocusTrapZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._firstBumper = React.createRef();\n _this._lastBumper = React.createRef();\n _this._hasFocus = false;\n _this._onRootFocus = function (ev) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n _this._hasFocus = true;\n };\n _this._onRootBlur = function (ev) {\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = _this._getDocument().activeElement;\n }\n if (!elementContains(_this._root.current, relatedTarget)) {\n _this._hasFocus = false;\n }\n };\n _this._onFirstBumperFocus = function () {\n _this._onBumperFocus(true);\n };\n _this._onLastBumperFocus = function () {\n _this._onBumperFocus(false);\n };\n _this._onBumperFocus = function (isFirstBumper) {\n if (_this.props.disabled) {\n return;\n }\n var currentBumper = (isFirstBumper === _this._hasFocus\n ? _this._lastBumper.current\n : _this._firstBumper.current);\n if (_this._root.current) {\n var nextFocusable = isFirstBumper === _this._hasFocus\n ? getLastTabbable(_this._root.current, currentBumper, true, false)\n : getFirstTabbable(_this._root.current, currentBumper, true, false);\n if (nextFocusable) {\n if (_this._isBumper(nextFocusable)) {\n // This can happen when FTZ contains no tabbable elements.\n // focus will take care of finding a focusable element in FTZ.\n _this.focus();\n }\n else {\n nextFocusable.focus();\n }\n }\n }\n };\n _this._onFocusCapture = function (ev) {\n if (_this.props.onFocusCapture) {\n _this.props.onFocusCapture(ev);\n }\n if (ev.target !== ev.currentTarget && !_this._isBumper(ev.target)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n _this._previouslyFocusedElementInTrapZone = ev.target;\n }\n };\n _this._forceFocusInTrap = function (ev) {\n if (_this.props.disabled) {\n return;\n }\n if (FocusTrapZone._focusStack.length && _this === FocusTrapZone._focusStack[FocusTrapZone._focusStack.length - 1]) {\n var focusedElement = _this._getDocument().activeElement;\n if (!elementContains(_this._root.current, focusedElement)) {\n var doc_1 = _this._getDocument();\n if (doc_1 && doc_1.activeElement === doc_1.body) {\n setTimeout(function () {\n if (doc_1 && doc_1.activeElement === doc_1.body) {\n _this.focus();\n _this._hasFocus = true;\n }\n }, 0);\n }\n else {\n _this.focus();\n _this._hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n _this._forceClickInTrap = function (ev) {\n if (_this.props.disabled) {\n return;\n }\n if (FocusTrapZone._focusStack.length && _this === FocusTrapZone._focusStack[FocusTrapZone._focusStack.length - 1]) {\n var clickedElement = ev.target;\n if (clickedElement && !elementContains(_this._root.current, clickedElement)) {\n _this.focus();\n _this._hasFocus = true; // set focus here since we stop event propagation\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n FocusTrapZone.prototype.componentDidMount = function () {\n this._bringFocusIntoZone();\n this._updateEventHandlers(this.props);\n if (!this.props.disabled && this._root.current && this.props.enableAriaHiddenSiblings) {\n this._unmodalize = modalize(this._root.current);\n }\n };\n FocusTrapZone.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n var elementToFocusOnDismiss = nextProps.elementToFocusOnDismiss;\n if (elementToFocusOnDismiss && this._previouslyFocusedElementOutsideTrapZone !== elementToFocusOnDismiss) {\n this._previouslyFocusedElementOutsideTrapZone = elementToFocusOnDismiss;\n }\n this._updateEventHandlers(nextProps);\n };\n FocusTrapZone.prototype.componentDidUpdate = function (prevProps) {\n var prevForceFocusInsideTrap = prevProps.forceFocusInsideTrap !== undefined ? prevProps.forceFocusInsideTrap : true;\n var newForceFocusInsideTrap = this.props.forceFocusInsideTrap !== undefined ? this.props.forceFocusInsideTrap : true;\n var prevDisabled = prevProps.disabled !== undefined ? prevProps.disabled : false;\n var newDisabled = this.props.disabled !== undefined ? this.props.disabled : false;\n if ((!prevForceFocusInsideTrap && newForceFocusInsideTrap) || (prevDisabled && !newDisabled)) {\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled.\n // Emulate what happens when a FocusTrapZone gets mounted.\n this._bringFocusIntoZone();\n if (!this._unmodalize && this._root.current && this.props.enableAriaHiddenSiblings) {\n this._unmodalize = modalize(this._root.current);\n }\n }\n else if ((prevForceFocusInsideTrap && !newForceFocusInsideTrap) || (!prevDisabled && newDisabled)) {\n // Transition from forceFocusInsideTrap / FTZ enabled to disabled.\n // Emulate what happens when a FocusTrapZone gets unmounted.\n this._returnFocusToInitiator();\n if (this._unmodalize) {\n this._unmodalize();\n }\n }\n };\n FocusTrapZone.prototype.componentWillUnmount = function () {\n // don't handle return focus unless forceFocusInsideTrap is true or focus is still within FocusTrapZone\n if (!this.props.disabled ||\n this.props.forceFocusInsideTrap ||\n !elementContains(this._root.current, this._getDocument().activeElement)) {\n this._returnFocusToInitiator();\n }\n // Dispose of event handlers so their closures can be garbage-collected\n if (this._disposeClickHandler) {\n this._disposeClickHandler();\n this._disposeClickHandler = undefined;\n }\n if (this._disposeFocusHandler) {\n this._disposeFocusHandler();\n this._disposeFocusHandler = undefined;\n }\n if (this._unmodalize) {\n this._unmodalize();\n }\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete this._previouslyFocusedElementInTrapZone;\n delete this._previouslyFocusedElementOutsideTrapZone;\n };\n FocusTrapZone.prototype.render = function () {\n var _a = this.props, className = _a.className, _b = _a.disabled, disabled = _b === void 0 ? false : _b, ariaLabelledBy = _a.ariaLabelledBy;\n var divProps = getNativeProps(this.props, divProperties);\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed',\n },\n tabIndex: disabled ? -1 : 0,\n 'data-is-visible': true,\n };\n return (React.createElement(\"div\", __assign({}, divProps, { className: className, ref: this._root, \"aria-labelledby\": ariaLabelledBy, onFocusCapture: this._onFocusCapture, onFocus: this._onRootFocus, onBlur: this._onRootBlur }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: this._firstBumper, onFocus: this._onFirstBumperFocus })),\n this.props.children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: this._lastBumper, onFocus: this._onLastBumperFocus }))));\n };\n FocusTrapZone.prototype.focus = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, focusPreviouslyFocusedInnerElement = _a.focusPreviouslyFocusedInnerElement, firstFocusableSelector = _a.firstFocusableSelector, firstFocusableTarget = _a.firstFocusableTarget;\n if (focusPreviouslyFocusedInnerElement &&\n this._previouslyFocusedElementInTrapZone &&\n elementContains(this._root.current, this._previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n this._focusAsync(this._previouslyFocusedElementInTrapZone);\n return;\n }\n var focusSelector = typeof firstFocusableSelector === 'string'\n ? firstFocusableSelector\n : firstFocusableSelector && firstFocusableSelector();\n var _firstFocusableChild = null;\n if (this._root.current) {\n if (typeof firstFocusableTarget === 'string') {\n _firstFocusableChild = this._root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n _firstFocusableChild = firstFocusableTarget(this._root.current);\n }\n else if (focusSelector) {\n _firstFocusableChild = this._root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!_firstFocusableChild) {\n _firstFocusableChild = getNextElement(this._root.current, this._root.current.firstChild, false, false, false, true);\n }\n }\n if (_firstFocusableChild) {\n this._focusAsync(_firstFocusableChild);\n }\n };\n FocusTrapZone.prototype._focusAsync = function (element) {\n if (!this._isBumper(element)) {\n focusAsync(element);\n }\n };\n FocusTrapZone.prototype._bringFocusIntoZone = function () {\n var _a = this.props, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.disableFirstFocus, disableFirstFocus = _c === void 0 ? false : _c;\n if (disabled) {\n return;\n }\n FocusTrapZone._focusStack.push(this);\n this._previouslyFocusedElementOutsideTrapZone = elementToFocusOnDismiss\n ? elementToFocusOnDismiss\n : this._getDocument().activeElement;\n if (!disableFirstFocus && !elementContains(this._root.current, this._previouslyFocusedElementOutsideTrapZone)) {\n this.focus();\n }\n };\n FocusTrapZone.prototype._returnFocusToInitiator = function () {\n var _this = this;\n var ignoreExternalFocusing = this.props.ignoreExternalFocusing;\n FocusTrapZone._focusStack = FocusTrapZone._focusStack.filter(function (value) {\n return _this !== value;\n });\n var doc = this._getDocument();\n var activeElement = doc.activeElement;\n if (!ignoreExternalFocusing &&\n this._previouslyFocusedElementOutsideTrapZone &&\n typeof this._previouslyFocusedElementOutsideTrapZone.focus === 'function' &&\n (elementContains(this._root.current, activeElement) || activeElement === doc.body)) {\n this._focusAsync(this._previouslyFocusedElementOutsideTrapZone);\n }\n };\n FocusTrapZone.prototype._updateEventHandlers = function (newProps) {\n var _a = newProps.isClickableOutsideFocusTrap, isClickableOutsideFocusTrap = _a === void 0 ? false : _a, _b = newProps.forceFocusInsideTrap, forceFocusInsideTrap = _b === void 0 ? true : _b;\n if (forceFocusInsideTrap && !this._disposeFocusHandler) {\n this._disposeFocusHandler = on(window, 'focus', this._forceFocusInTrap, true);\n }\n else if (!forceFocusInsideTrap && this._disposeFocusHandler) {\n this._disposeFocusHandler();\n this._disposeFocusHandler = undefined;\n }\n if (!isClickableOutsideFocusTrap && !this._disposeClickHandler) {\n this._disposeClickHandler = on(window, 'click', this._forceClickInTrap, true);\n }\n else if (isClickableOutsideFocusTrap && this._disposeClickHandler) {\n this._disposeClickHandler();\n this._disposeClickHandler = undefined;\n }\n };\n FocusTrapZone.prototype._isBumper = function (element) {\n return element === this._firstBumper.current || element === this._lastBumper.current;\n };\n FocusTrapZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusTrapZone._focusStack = [];\n return FocusTrapZone;\n}(React.Component));\nexport { FocusTrapZone };\n//# sourceMappingURL=FocusTrapZone.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-groupFooter',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n {\n position: 'relative',\n padding: '5px 38px',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=GroupFooter.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { GroupSpacer } from './GroupSpacer';\nvar getClassNames = classNamesFunction();\nexport var GroupFooterBase = function (props) {\n var group = props.group, groupLevel = props.groupLevel, footerText = props.footerText, indentWidth = props.indentWidth, styles = props.styles, theme = props.theme;\n var classNames = getClassNames(styles, { theme: theme });\n if (group && footerText) {\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(GroupSpacer, { indentWidth: indentWidth, count: groupLevel }),\n footerText));\n }\n return null;\n};\n//# sourceMappingURL=GroupFooter.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupFooter.styles';\nimport { GroupFooterBase } from './GroupFooter.base';\nexport var GroupFooter = styled(GroupFooterBase, getStyles, undefined, {\n scope: 'GroupFooter',\n});\n//# sourceMappingURL=GroupFooter.js.map","import { getGlobalClassNames, getFocusStyle, AnimationVariables, FontWeights, IconFontSizes, } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from '../DetailsList/DetailsRow.styles';\nimport { CHECK_CELL_WIDTH } from '../DetailsList/DetailsRowCheck.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as EXPAND_BUTTON_WIDTH } from './GroupSpacer';\nvar GlobalClassNames = {\n root: 'ms-GroupHeader',\n compact: 'ms-GroupHeader--compact',\n check: 'ms-GroupHeader-check',\n dropIcon: 'ms-GroupHeader-dropIcon',\n expand: 'ms-GroupHeader-expand',\n isCollapsed: 'is-collapsed',\n title: 'ms-GroupHeader-title',\n isSelected: 'is-selected',\n iconTag: 'ms-Icon--Tag',\n group: 'ms-GroupedList-group',\n isDropping: 'is-dropping',\n};\nvar beziers = {\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n};\nvar DEFAULT_GROUP_HEADER_HEIGHT = 48;\nvar COMPACT_GROUP_HEADER_HEIGHT = 40;\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, className = props.className, selected = props.selected, isCollapsed = props.isCollapsed, compact = props.compact;\n // padding from the source to align GroupHeader title with DetailsRow's first cell.\n var cellLeftPadding = DEFAULT_CELL_STYLE_PROPS.cellLeftPadding;\n var finalRowHeight = compact ? COMPACT_GROUP_HEADER_HEIGHT : DEFAULT_GROUP_HEADER_HEIGHT;\n var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var checkExpandResetStyles = [\n getFocusStyle(theme),\n {\n cursor: 'default',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n },\n ];\n return {\n root: [\n classNames.root,\n getFocusStyle(theme),\n theme.fonts.medium,\n {\n // keep the border for height but color it so it's invisible.\n borderBottom: \"1px solid \" + semanticColors.listBackground,\n cursor: 'default',\n userSelect: 'none',\n selectors: (_a = {\n ':hover': {\n background: semanticColors.listItemBackgroundHovered,\n color: semanticColors.actionLinkHovered,\n }\n },\n _a[\"&:hover .\" + classNames.check] = {\n opacity: 1,\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus .\" + classNames.check] = {\n opacity: 1,\n },\n _a[\":global(.\" + classNames.group + \".\" + classNames.isDropping + \")\"] = {\n selectors: (_b = {},\n _b[\"& > .\" + classNames.root + \" .\" + classNames.dropIcon] = {\n transition: \"transform \" + AnimationVariables.durationValue4 + \" \" + beziers.easeOutCirc + \" \" +\n (\"opacity \" + AnimationVariables.durationValue1 + \" \" + beziers.easeOutSine),\n transitionDelay: AnimationVariables.durationValue3,\n opacity: 1,\n transform: \"rotate(0.2deg) scale(1);\",\n },\n _b[\".\" + classNames.check] = {\n opacity: 0,\n },\n _b),\n },\n _a),\n },\n selected && [\n classNames.isSelected,\n {\n background: semanticColors.listItemBackgroundChecked,\n selectors: (_c = {\n ':hover': {\n background: semanticColors.listItemBackgroundCheckedHovered,\n }\n },\n _c[\"\" + classNames.check] = {\n opacity: 1,\n },\n _c),\n },\n ],\n compact && [classNames.compact, { border: 'none' }],\n className,\n ],\n groupHeaderContainer: [\n {\n display: 'flex',\n alignItems: 'center',\n height: finalRowHeight,\n },\n ],\n headerCount: [\n {\n padding: '0px 4px',\n },\n ],\n check: [\n classNames.check,\n checkExpandResetStyles,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n // paddingTop and marginTop brought from the DetailsRow.styles.ts with explanation below.\n // Ensure that the check cell covers the top border of the cell.\n // This ensures the click target does not leave a spot which would\n // cause other items to be deselected.\n paddingTop: 1,\n marginTop: -1,\n opacity: 0,\n width: CHECK_CELL_WIDTH,\n height: finalRowHeight,\n selectors: (_d = {},\n _d[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n opacity: 1,\n },\n _d),\n },\n ],\n expand: [\n classNames.expand,\n checkExpandResetStyles,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: fonts.small.fontSize,\n width: EXPAND_BUTTON_WIDTH,\n height: finalRowHeight,\n color: selected ? palette.neutralPrimary : palette.neutralSecondary,\n selectors: {\n ':hover': {\n backgroundColor: selected ? palette.neutralQuaternary : palette.neutralLight,\n },\n ':active': {\n backgroundColor: selected ? palette.neutralTertiaryAlt : palette.neutralQuaternaryAlt,\n },\n },\n },\n ],\n expandIsCollapsed: [\n isCollapsed\n ? [\n classNames.isCollapsed,\n {\n transform: 'rotate(0deg)',\n transformOrigin: '50% 50%',\n transition: 'transform .1s linear',\n },\n ]\n : {\n transform: getRTL(theme) ? 'rotate(-90deg)' : 'rotate(90deg)',\n transformOrigin: '50% 50%',\n transition: 'transform .1s linear',\n },\n ],\n title: [\n classNames.title,\n {\n paddingLeft: cellLeftPadding,\n fontSize: compact ? fonts.medium.fontSize : fonts.mediumPlus.fontSize,\n fontWeight: isCollapsed ? FontWeights.regular : FontWeights.semibold,\n cursor: 'pointer',\n outline: 0,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n ],\n dropIcon: [\n classNames.dropIcon,\n {\n position: 'absolute',\n left: -26,\n fontSize: IconFontSizes.large,\n color: palette.neutralSecondary,\n transition: \"transform \" + AnimationVariables.durationValue2 + \" \" + beziers.easeInBack + \", \" +\n (\"opacity \" + AnimationVariables.durationValue4 + \" \" + beziers.easeOutSine),\n opacity: 0,\n transform: 'rotate(0.2deg) scale(0.65)',\n transformOrigin: '10px 10px',\n selectors: (_e = {},\n _e[\":global(.\" + classNames.iconTag + \")\"] = {\n position: 'absolute',\n },\n _e),\n },\n ],\n };\n};\n//# sourceMappingURL=GroupHeader.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { composeRenderFunction, classNamesFunction, getId, getRTL, getRTLSafeKeyCode, KeyCodes } from '../../Utilities';\nimport { SelectionMode } from '../../Selection';\nimport { Check } from '../../Check';\nimport { Icon } from '../../Icon';\nimport { GroupSpacer } from './GroupSpacer';\nimport { Spinner } from '../../Spinner';\nvar getClassNames = classNamesFunction();\nvar GroupHeaderBase = /** @class */ (function (_super) {\n __extends(GroupHeaderBase, _super);\n function GroupHeaderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._toggleCollapse = function () {\n var _a = _this.props, group = _a.group, onToggleCollapse = _a.onToggleCollapse, isGroupLoading = _a.isGroupLoading;\n var isCollapsed = _this.state.isCollapsed;\n var newCollapsed = !isCollapsed;\n var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(group);\n _this.setState({\n isCollapsed: newCollapsed,\n isLoadingVisible: newLoadingVisible,\n });\n if (onToggleCollapse) {\n onToggleCollapse(group);\n }\n };\n _this._onKeyUp = function (ev) {\n var _a = _this.props, group = _a.group, onGroupHeaderKeyUp = _a.onGroupHeaderKeyUp;\n if (onGroupHeaderKeyUp) {\n onGroupHeaderKeyUp(ev, group);\n }\n if (!ev.defaultPrevented) {\n var shouldOpen = _this.state.isCollapsed && ev.which === getRTLSafeKeyCode(KeyCodes.right, _this.props.theme);\n var shouldClose = !_this.state.isCollapsed && ev.which === getRTLSafeKeyCode(KeyCodes.left, _this.props.theme);\n if (shouldClose || shouldOpen) {\n _this._toggleCollapse();\n ev.stopPropagation();\n ev.preventDefault();\n }\n }\n };\n _this._onToggleClick = function (ev) {\n _this._toggleCollapse();\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onHeaderClick = function () {\n var _a = _this.props, group = _a.group, onGroupHeaderClick = _a.onGroupHeaderClick;\n if (onGroupHeaderClick) {\n onGroupHeaderClick(group);\n }\n };\n _this._onRenderTitle = function (props) {\n var group = props.group;\n if (!group) {\n return null;\n }\n var onRenderName = props.onRenderName\n ? composeRenderFunction(props.onRenderName, _this._onRenderName)\n : _this._onRenderName;\n return (React.createElement(\"div\", { className: _this._classNames.title, id: _this._id, onClick: _this._onHeaderClick, role: \"gridcell\", \"aria-colspan\": _this.props.ariaColSpan, \"data-selection-invoke\": true }, onRenderName(props)));\n };\n _this._onRenderName = function (props) {\n var group = props.group;\n if (!group) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", null, group.name),\n React.createElement(\"span\", { className: _this._classNames.headerCount },\n \"(\",\n group.count,\n group.hasMoreData && '+',\n \")\")));\n };\n _this._id = getId('GroupHeader');\n _this.state = {\n isCollapsed: (_this.props.group && _this.props.group.isCollapsed),\n isLoadingVisible: false,\n };\n return _this;\n }\n GroupHeaderBase.getDerivedStateFromProps = function (nextProps, previousState) {\n if (nextProps.group) {\n var newCollapsed = nextProps.group.isCollapsed;\n var isGroupLoading = nextProps.isGroupLoading;\n var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(nextProps.group);\n return __assign(__assign({}, previousState), { isCollapsed: newCollapsed || false, isLoadingVisible: newLoadingVisible || false });\n }\n return previousState;\n };\n GroupHeaderBase.prototype.render = function () {\n var _a = this.props, group = _a.group, _b = _a.groupLevel, groupLevel = _b === void 0 ? 0 : _b, viewport = _a.viewport, selectionMode = _a.selectionMode, loadingText = _a.loadingText, \n // eslint-disable-next-line deprecation/deprecation\n _c = _a.isSelected, \n // eslint-disable-next-line deprecation/deprecation\n isSelected = _c === void 0 ? false : _c, _d = _a.selected, selected = _d === void 0 ? false : _d, indentWidth = _a.indentWidth, onRenderGroupHeaderCheckbox = _a.onRenderGroupHeaderCheckbox, _e = _a.isCollapsedGroupSelectVisible, isCollapsedGroupSelectVisible = _e === void 0 ? true : _e, expandButtonProps = _a.expandButtonProps, expandButtonIcon = _a.expandButtonIcon, selectAllButtonProps = _a.selectAllButtonProps, theme = _a.theme, styles = _a.styles, className = _a.className, compact = _a.compact, ariaPosInSet = _a.ariaPosInSet, ariaSetSize = _a.ariaSetSize, ariaRowIndex = _a.ariaRowIndex, useFastIcons = _a.useFastIcons;\n var onRenderTitle = this.props.onRenderTitle\n ? composeRenderFunction(this.props.onRenderTitle, this._onRenderTitle)\n : this._onRenderTitle;\n var defaultCheckboxRender = useFastIcons ? this._fastDefaultCheckboxRender : this._defaultCheckboxRender;\n var onRenderCheckbox = onRenderGroupHeaderCheckbox\n ? composeRenderFunction(onRenderGroupHeaderCheckbox, defaultCheckboxRender)\n : defaultCheckboxRender;\n var _f = this.state, isCollapsed = _f.isCollapsed, isLoadingVisible = _f.isLoadingVisible;\n var canSelectGroup = selectionMode === SelectionMode.multiple;\n var isSelectionCheckVisible = canSelectGroup && (isCollapsedGroupSelectVisible || !(group && group.isCollapsed));\n var currentlySelected = selected || isSelected;\n var isRTL = getRTL(theme);\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: currentlySelected,\n isCollapsed: isCollapsed,\n compact: compact,\n });\n if (!group) {\n return null;\n }\n return (React.createElement(\"div\", { className: this._classNames.root, style: viewport ? { minWidth: viewport.width } : {}, role: \"row\", \"aria-setsize\": ariaSetSize, \"aria-posinset\": ariaPosInSet, \"aria-rowindex\": ariaRowIndex, \"data-is-focusable\": true, onKeyUp: this._onKeyUp, \"aria-label\": group.ariaLabel, \"aria-labelledby\": group.ariaLabel ? undefined : this._id, \"aria-expanded\": !this.state.isCollapsed, \"aria-selected\": canSelectGroup ? currentlySelected : undefined, \"aria-level\": groupLevel + 1, \"data-selection-index\": group.startIndex, \"data-selection-span\": group.count },\n React.createElement(\"div\", { className: this._classNames.groupHeaderContainer, role: \"presentation\" },\n isSelectionCheckVisible ? (React.createElement(\"div\", { role: \"gridcell\" },\n React.createElement(\"button\", __assign({ \"data-is-focusable\": false, type: \"button\", className: this._classNames.check, role: \"checkbox\", id: this._id + \"-check\", \"aria-checked\": currentlySelected, \"aria-labelledby\": this._id + \"-check \" + this._id, \"data-selection-toggle\": true }, selectAllButtonProps), onRenderCheckbox({ checked: currentlySelected, theme: theme }, onRenderCheckbox)))) : (selectionMode !== SelectionMode.none && React.createElement(GroupSpacer, { indentWidth: indentWidth, count: 1 })),\n React.createElement(GroupSpacer, { indentWidth: indentWidth, count: groupLevel }),\n React.createElement(\"div\", { className: this._classNames.dropIcon, role: \"presentation\" },\n React.createElement(Icon, { iconName: \"Tag\" })),\n React.createElement(\"div\", { role: \"gridcell\" },\n React.createElement(\"button\", __assign({ \"data-is-focusable\": false, \"data-selection-disabled\": true, type: \"button\", className: this._classNames.expand, onClick: this._onToggleClick, \"aria-expanded\": !this.state.isCollapsed }, expandButtonProps),\n React.createElement(Icon, { className: this._classNames.expandIsCollapsed, iconName: expandButtonIcon || (isRTL ? 'ChevronLeftMed' : 'ChevronRightMed') }))),\n onRenderTitle(this.props),\n isLoadingVisible && React.createElement(Spinner, { label: loadingText }))));\n };\n GroupHeaderBase.prototype._defaultCheckboxRender = function (checkboxProps) {\n return React.createElement(Check, { checked: checkboxProps.checked });\n };\n GroupHeaderBase.prototype._fastDefaultCheckboxRender = function (checkboxProps) {\n return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });\n };\n GroupHeaderBase.defaultProps = {\n expandButtonProps: { 'aria-label': 'expand collapse group' },\n };\n return GroupHeaderBase;\n}(React.Component));\nexport { GroupHeaderBase };\nvar FastCheck = React.memo(function (props) {\n return React.createElement(Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });\n});\n//# sourceMappingURL=GroupHeader.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupHeader.styles';\nimport { GroupHeaderBase } from './GroupHeader.base';\nexport var GroupHeader = styled(GroupHeaderBase, getStyles, undefined, {\n scope: 'GroupHeader',\n});\n//# sourceMappingURL=GroupHeader.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-GroupShowAll',\n link: 'ms-Link',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme;\n var fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n position: 'relative',\n padding: '10px 84px',\n cursor: 'pointer',\n selectors: (_a = {},\n _a[\".\" + classNames.link] = {\n fontSize: fonts.small.fontSize,\n },\n _a),\n },\n ],\n };\n};\n//# sourceMappingURL=GroupShowAll.styles.js.map","import * as React from 'react';\nimport { useCallback } from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { Link } from '../../Link';\nimport { GroupSpacer } from './GroupSpacer';\nvar getClassNames = classNamesFunction();\nexport var GroupShowAllBase = function (props) {\n var group = props.group, groupLevel = props.groupLevel, _a = props.showAllLinkText, showAllLinkText = _a === void 0 ? 'Show All' : _a, styles = props.styles, theme = props.theme, onToggleSummarize = props.onToggleSummarize;\n var classNames = getClassNames(styles, { theme: theme });\n var memoizedOnClick = useCallback(function (ev) {\n onToggleSummarize(group);\n ev.stopPropagation();\n ev.preventDefault();\n }, [onToggleSummarize, group]);\n if (group) {\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(GroupSpacer, { count: groupLevel }),\n React.createElement(Link, { onClick: memoizedOnClick }, showAllLinkText)));\n }\n return null;\n};\n//# sourceMappingURL=GroupShowAll.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupShowAll.styles';\nimport { GroupShowAllBase } from './GroupShowAll.base';\nexport var GroupShowAll = styled(GroupShowAllBase, getStyles, undefined, { scope: 'GroupShowAll' });\n//# sourceMappingURL=GroupShowAll.js.map","import * as React from 'react';\nexport var SPACER_WIDTH = 36;\nexport var GroupSpacer = function (props) {\n var count = props.count, _a = props.indentWidth, indentWidth = _a === void 0 ? SPACER_WIDTH : _a, _b = props.role, role = _b === void 0 ? 'presentation' : _b;\n var width = count * indentWidth;\n return count > 0 ? (React.createElement(\"span\", { className: 'ms-GroupSpacer', style: { display: 'inline-block', width: width }, role: role })) : null;\n};\n//# sourceMappingURL=GroupSpacer.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction, KeyCodes, getRTLSafeKeyCode, css } from '../../Utilities';\nimport { GroupedListSection } from './GroupedListSection';\nimport { List } from '../../List';\nimport { SelectionMode } from '../../utilities/selection/index';\nimport { DEFAULT_ROW_HEIGHTS } from '../DetailsList/DetailsRow.styles';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nvar getClassNames = classNamesFunction();\nvar ROW_HEIGHT = DEFAULT_ROW_HEIGHTS.rowHeight, COMPACT_ROW_HEIGHT = DEFAULT_ROW_HEIGHTS.compactRowHeight;\nvar GroupedListBase = /** @class */ (function (_super) {\n __extends(GroupedListBase, _super);\n function GroupedListBase(props) {\n var _this = _super.call(this, props) || this;\n _this._list = React.createRef();\n _this._renderGroup = function (group, groupIndex) {\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, groupProps = _a.groupProps, items = _a.items, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selectionMode = _a.selectionMode, selection = _a.selection, viewport = _a.viewport, onShouldVirtualize = _a.onShouldVirtualize, groups = _a.groups, compact = _a.compact;\n // override group header/footer props as needed\n var dividerProps = {\n onToggleSelectGroup: _this._onToggleSelectGroup,\n onToggleCollapse: _this._onToggleCollapse,\n onToggleSummarize: _this._onToggleSummarize,\n };\n var headerProps = __assign(__assign({}, groupProps.headerProps), dividerProps);\n var showAllProps = __assign(__assign({}, groupProps.showAllProps), dividerProps);\n var footerProps = __assign(__assign({}, groupProps.footerProps), dividerProps);\n var groupNestingDepth = _this._getGroupNestingDepth();\n if (!groupProps.showEmptyGroups && group && group.count === 0) {\n return null;\n }\n var finalListProps = __assign(__assign({}, (listProps || {})), { version: _this.state.version });\n return (React.createElement(GroupedListSection, { key: _this._getGroupKey(group, groupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: groupProps && groupProps.getGroupItemLimit, group: group, groupIndex: groupIndex, groupNestingDepth: groupNestingDepth, groupProps: groupProps, headerProps: headerProps, listProps: finalListProps, items: items, onRenderCell: onRenderCell, onRenderGroupHeader: groupProps.onRenderHeader, onRenderGroupShowAll: groupProps.onRenderShowAll, onRenderGroupFooter: groupProps.onRenderFooter, selectionMode: selectionMode, selection: selection, showAllProps: showAllProps, viewport: viewport, onShouldVirtualize: onShouldVirtualize, groupedListClassNames: _this._classNames, groups: groups, compact: compact }));\n };\n _this._getDefaultGroupItemLimit = function (group) {\n return group.count;\n };\n _this._getGroupItemLimit = function (group) {\n var groupProps = _this.props.groupProps;\n var getGroupItemLimit = groupProps && groupProps.getGroupItemLimit ? groupProps.getGroupItemLimit : _this._getDefaultGroupItemLimit;\n return getGroupItemLimit(group);\n };\n _this._getGroupHeight = function (group) {\n var rowHeight = _this.props.compact ? COMPACT_ROW_HEIGHT : ROW_HEIGHT;\n return rowHeight + (group.isCollapsed ? 0 : rowHeight * _this._getGroupItemLimit(group));\n };\n _this._getPageHeight = function (itemIndex) {\n var groups = _this.state.groups;\n var _a = _this.props.getGroupHeight, getGroupHeight = _a === void 0 ? _this._getGroupHeight : _a;\n var pageGroup = groups && groups[itemIndex];\n if (pageGroup) {\n return getGroupHeight(pageGroup, itemIndex);\n }\n else {\n return 0;\n }\n };\n _this._onToggleCollapse = function (group) {\n var groupProps = _this.props.groupProps;\n var onToggleCollapse = groupProps && groupProps.headerProps && groupProps.headerProps.onToggleCollapse;\n if (group) {\n if (onToggleCollapse) {\n onToggleCollapse(group);\n }\n group.isCollapsed = !group.isCollapsed;\n _this._updateIsSomeGroupExpanded();\n _this.forceUpdate();\n }\n };\n _this._onToggleSelectGroup = function (group) {\n var _a = _this.props, selection = _a.selection, selectionMode = _a.selectionMode;\n if (group && selection && selectionMode === SelectionMode.multiple) {\n selection.toggleRangeSelected(group.startIndex, group.count);\n }\n };\n _this._isInnerZoneKeystroke = function (ev) {\n return ev.which === getRTLSafeKeyCode(KeyCodes.right);\n };\n _this._onToggleSummarize = function (group) {\n var groupProps = _this.props.groupProps;\n var onToggleSummarize = groupProps && groupProps.showAllProps && groupProps.showAllProps.onToggleSummarize;\n if (onToggleSummarize) {\n onToggleSummarize(group);\n }\n else {\n if (group) {\n group.isShowingAll = !group.isShowingAll;\n }\n _this.forceUpdate();\n }\n };\n _this._getPageSpecification = function (itemIndex) {\n var groups = _this.state.groups;\n var pageGroup = groups && groups[itemIndex];\n return {\n key: pageGroup && pageGroup.key,\n };\n };\n initializeComponentRef(_this);\n _this._isSomeGroupExpanded = _this._computeIsSomeGroupExpanded(props.groups);\n var _a = props.listProps, _b = (_a === void 0 ? {} : _a).version, version = _b === void 0 ? {} : _b;\n _this.state = {\n groups: props.groups,\n items: props.items,\n listProps: props.listProps,\n version: version,\n };\n return _this;\n }\n GroupedListBase.getDerivedStateFromProps = function (nextProps, previousState) {\n var groups = nextProps.groups, selectionMode = nextProps.selectionMode, compact = nextProps.compact, items = nextProps.items, listProps = nextProps.listProps;\n var listVersion = listProps && listProps.version;\n var nextState = __assign(__assign({}, previousState), { selectionMode: selectionMode,\n compact: compact,\n groups: groups,\n listProps: listProps });\n var shouldForceUpdates = false;\n var previousListVersion = previousState.listProps && previousState.listProps.version;\n if (listVersion !== previousListVersion ||\n items !== previousState.items ||\n groups !== previousState.groups ||\n selectionMode !== previousState.selectionMode ||\n compact !== previousState.compact) {\n // If there are any props not passed explicitly to `List` which have an impact on the behavior of `onRenderCell`,\n // these need to 'force-update' this component by revving the version. Otherwise, the List might render with stale\n // data.\n shouldForceUpdates = true;\n }\n if (shouldForceUpdates) {\n nextState = __assign(__assign({}, nextState), { version: {} });\n }\n return nextState;\n };\n GroupedListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n if (this._list.current) {\n this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n }\n };\n GroupedListBase.prototype.getStartItemIndexInView = function () {\n return this._list.current.getStartItemIndexInView() || 0;\n };\n GroupedListBase.prototype.componentDidMount = function () {\n var _a = this.props, groupProps = _a.groupProps, _b = _a.groups, groups = _b === void 0 ? [] : _b;\n if (groupProps && groupProps.isAllGroupsCollapsed) {\n this._setGroupsCollapsedState(groups, groupProps.isAllGroupsCollapsed);\n }\n };\n GroupedListBase.prototype.render = function () {\n var _a = this.props, className = _a.className, usePageCache = _a.usePageCache, onShouldVirtualize = _a.onShouldVirtualize, theme = _a.theme, _b = _a.role, role = _b === void 0 ? 'treegrid' : _b, styles = _a.styles, compact = _a.compact, _c = _a.focusZoneProps, focusZoneProps = _c === void 0 ? {} : _c, _d = _a.rootListProps, rootListProps = _d === void 0 ? {} : _d;\n var _e = this.state, groups = _e.groups, version = _e.version;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n compact: compact,\n });\n var _f = focusZoneProps.shouldEnterInnerZone, shouldEnterInnerZone = _f === void 0 ? this._isInnerZoneKeystroke : _f;\n return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, \"data-automationid\": \"GroupedList\", \"data-is-scrollable\": \"false\", role: \"presentation\" }, focusZoneProps, { shouldEnterInnerZone: shouldEnterInnerZone, className: css(this._classNames.root, focusZoneProps.className) }), !groups ? (this._renderGroup(undefined, 0)) : (React.createElement(List, __assign({ ref: this._list, role: role, items: groups, onRenderCell: this._renderGroup, getItemCountForPage: this._returnOne, getPageHeight: this._getPageHeight, getPageSpecification: this._getPageSpecification, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, version: version }, rootListProps)))));\n };\n GroupedListBase.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this._forceListUpdates();\n };\n GroupedListBase.prototype.toggleCollapseAll = function (allCollapsed) {\n var _a = this.state.groups, groups = _a === void 0 ? [] : _a;\n var groupProps = this.props.groupProps;\n var onToggleCollapseAll = groupProps && groupProps.onToggleCollapseAll;\n if (groups.length > 0) {\n if (onToggleCollapseAll) {\n onToggleCollapseAll(allCollapsed);\n }\n this._setGroupsCollapsedState(groups, allCollapsed);\n this._updateIsSomeGroupExpanded();\n this.forceUpdate();\n }\n };\n GroupedListBase.prototype._setGroupsCollapsedState = function (groups, isCollapsed) {\n for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) {\n groups[groupIndex].isCollapsed = isCollapsed;\n }\n };\n GroupedListBase.prototype._returnOne = function () {\n return 1;\n };\n GroupedListBase.prototype._getGroupKey = function (group, index) {\n return 'group-' + (group && group.key ? group.key : String(index));\n };\n GroupedListBase.prototype._getGroupNestingDepth = function () {\n var groups = this.state.groups;\n var level = 0;\n var groupsInLevel = groups;\n while (groupsInLevel && groupsInLevel.length > 0) {\n level++;\n groupsInLevel = groupsInLevel[0].children;\n }\n return level;\n };\n GroupedListBase.prototype._forceListUpdates = function (groups) {\n this.setState({\n version: {},\n });\n };\n GroupedListBase.prototype._computeIsSomeGroupExpanded = function (groups) {\n var _this = this;\n return !!(groups &&\n groups.some(function (group) { return (group.children ? _this._computeIsSomeGroupExpanded(group.children) : !group.isCollapsed); }));\n };\n GroupedListBase.prototype._updateIsSomeGroupExpanded = function () {\n var groups = this.state.groups;\n var onGroupExpandStateChanged = this.props.onGroupExpandStateChanged;\n var newIsSomeGroupExpanded = this._computeIsSomeGroupExpanded(groups);\n if (this._isSomeGroupExpanded !== newIsSomeGroupExpanded) {\n if (onGroupExpandStateChanged) {\n onGroupExpandStateChanged(newIsSomeGroupExpanded);\n }\n this._isSomeGroupExpanded = newIsSomeGroupExpanded;\n }\n };\n GroupedListBase.defaultProps = {\n selectionMode: SelectionMode.multiple,\n isHeaderVisible: true,\n groupProps: {},\n compact: false,\n };\n return GroupedListBase;\n}(React.Component));\nexport { GroupedListBase };\n//# sourceMappingURL=GroupedList.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupedList.styles';\nimport { GroupedListBase } from './GroupedList.base';\nexport var GroupedList = styled(GroupedListBase, getStyles, undefined, {\n scope: 'GroupedList',\n});\n//# sourceMappingURL=GroupedList.js.map","import { getGlobalClassNames, AnimationVariables } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-GroupedList',\n compact: 'ms-GroupedList--Compact',\n group: 'ms-GroupedList-group',\n link: 'ms-Link',\n listCell: 'ms-List-cell',\n};\nvar beziers = {\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, className = props.className, compact = props.compact;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.small,\n {\n position: 'relative',\n selectors: (_a = {},\n _a[\".\" + classNames.listCell] = {\n minHeight: 38,\n },\n _a),\n },\n compact && [\n classNames.compact,\n {\n selectors: (_b = {},\n _b[\".\" + classNames.listCell] = {\n minHeight: 32,\n },\n _b),\n },\n ],\n className,\n ],\n group: [\n classNames.group,\n {\n transition: \"background-color \" + AnimationVariables.durationValue2 + \" \" + beziers.easeInOutSine,\n },\n ],\n groupIsDropping: {\n backgroundColor: palette.neutralLight,\n },\n };\n};\n//# sourceMappingURL=GroupedList.styles.js.map","/**\n * {@docCategory GroupedList}\n */\nexport var CollapseAllVisibility;\n(function (CollapseAllVisibility) {\n CollapseAllVisibility[CollapseAllVisibility[\"hidden\"] = 0] = \"hidden\";\n CollapseAllVisibility[CollapseAllVisibility[\"visible\"] = 1] = \"visible\";\n})(CollapseAllVisibility || (CollapseAllVisibility = {}));\n//# sourceMappingURL=GroupedList.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, css, getId, EventGroup } from '../../Utilities';\nimport { SELECTION_CHANGE } from '../../utilities/selection/index';\nimport { GroupHeader } from './GroupHeader';\nimport { GroupShowAll } from './GroupShowAll';\nimport { GroupFooter } from './GroupFooter';\nimport { List } from '../../List';\nvar DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';\nvar GroupedListSection = /** @class */ (function (_super) {\n __extends(GroupedListSection, _super);\n function GroupedListSection(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._list = React.createRef();\n _this._subGroupRefs = {};\n _this._droppingClassName = '';\n _this._onRenderGroupHeader = function (props) {\n return React.createElement(GroupHeader, __assign({}, props));\n };\n _this._onRenderGroupShowAll = function (props) {\n return React.createElement(GroupShowAll, __assign({}, props));\n };\n _this._onRenderGroupFooter = function (props) {\n return React.createElement(GroupFooter, __assign({}, props));\n };\n _this._renderSubGroup = function (subGroup, subGroupIndex) {\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, getGroupItemLimit = _a.getGroupItemLimit, groupNestingDepth = _a.groupNestingDepth, groupProps = _a.groupProps, items = _a.items, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selection = _a.selection, selectionMode = _a.selectionMode, viewport = _a.viewport, onRenderGroupHeader = _a.onRenderGroupHeader, onRenderGroupShowAll = _a.onRenderGroupShowAll, onRenderGroupFooter = _a.onRenderGroupFooter, onShouldVirtualize = _a.onShouldVirtualize, group = _a.group, compact = _a.compact;\n var nestingDepth = subGroup.level ? subGroup.level + 1 : groupNestingDepth;\n return !subGroup || subGroup.count > 0 || (groupProps && groupProps.showEmptyGroups) ? (React.createElement(GroupedListSection, { ref: function (ref) { return (_this._subGroupRefs['subGroup_' + subGroupIndex] = ref); }, key: _this._getGroupKey(subGroup, subGroupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: getGroupItemLimit, group: subGroup, groupIndex: subGroupIndex, groupNestingDepth: nestingDepth, groupProps: groupProps, headerProps: headerProps, items: items, listProps: listProps, onRenderCell: onRenderCell, selection: selection, selectionMode: selectionMode, showAllProps: showAllProps, viewport: viewport, onRenderGroupHeader: onRenderGroupHeader, onRenderGroupShowAll: onRenderGroupShowAll, onRenderGroupFooter: onRenderGroupFooter, onShouldVirtualize: onShouldVirtualize, groups: group ? group.children : [], compact: compact })) : null;\n };\n /**\n * collect all the data we need to enable drag/drop for a group\n */\n _this._getGroupDragDropOptions = function () {\n var _a = _this.props, group = _a.group, groupIndex = _a.groupIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;\n var options = {\n eventMap: eventsToRegister,\n selectionIndex: -1,\n context: { data: group, index: groupIndex, isGroup: true },\n updateDropState: _this._updateDroppingState,\n canDrag: dragDropEvents.canDrag,\n canDrop: dragDropEvents.canDrop,\n onDrop: dragDropEvents.onDrop,\n onDragStart: dragDropEvents.onDragStart,\n onDragEnter: dragDropEvents.onDragEnter,\n onDragLeave: dragDropEvents.onDragLeave,\n onDragEnd: dragDropEvents.onDragEnd,\n onDragOver: dragDropEvents.onDragOver,\n };\n return options;\n };\n /**\n * update groupIsDropping state based on the input value, which is used to change style during drag and drop\n *\n * @param newValue - new isDropping state value\n * @param event - the event trigger dropping state change which can be dragenter, dragleave etc\n */\n _this._updateDroppingState = function (newIsDropping, event) {\n var isDropping = _this.state.isDropping;\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, group = _a.group;\n if (isDropping !== newIsDropping) {\n if (isDropping) {\n if (dragDropEvents && dragDropEvents.onDragLeave) {\n dragDropEvents.onDragLeave(group, event);\n }\n }\n else {\n if (dragDropEvents && dragDropEvents.onDragEnter) {\n _this._droppingClassName = dragDropEvents.onDragEnter(group, event);\n }\n }\n _this.setState({ isDropping: newIsDropping });\n }\n };\n var selection = props.selection, group = props.group;\n initializeComponentRef(_this);\n _this._id = getId('GroupedListSection');\n _this.state = {\n isDropping: false,\n isSelected: selection && group ? selection.isRangeSelected(group.startIndex, group.count) : false,\n };\n _this._events = new EventGroup(_this);\n return _this;\n }\n GroupedListSection.prototype.componentDidMount = function () {\n var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection;\n if (dragDropHelper && this._root.current) {\n this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());\n }\n if (selection) {\n this._events.on(selection, SELECTION_CHANGE, this._onSelectionChange);\n }\n };\n GroupedListSection.prototype.componentWillUnmount = function () {\n this._events.dispose();\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n }\n };\n GroupedListSection.prototype.componentDidUpdate = function (previousProps) {\n if (this.props.group !== previousProps.group ||\n this.props.groupIndex !== previousProps.groupIndex ||\n this.props.dragDropHelper !== previousProps.dragDropHelper) {\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n if (this.props.dragDropHelper && this._root.current) {\n this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());\n }\n }\n };\n GroupedListSection.prototype.render = function () {\n var _a = this.props, getGroupItemLimit = _a.getGroupItemLimit, group = _a.group, groupIndex = _a.groupIndex, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, viewport = _a.viewport, selectionMode = _a.selectionMode, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? this._onRenderGroupHeader : _b, _c = _a.onRenderGroupShowAll, onRenderGroupShowAll = _c === void 0 ? this._onRenderGroupShowAll : _c, _d = _a.onRenderGroupFooter, onRenderGroupFooter = _d === void 0 ? this._onRenderGroupFooter : _d, onShouldVirtualize = _a.onShouldVirtualize, groupedListClassNames = _a.groupedListClassNames, groups = _a.groups, compact = _a.compact, _e = _a.listProps, listProps = _e === void 0 ? {} : _e;\n var isSelected = this.state.isSelected;\n var renderCount = group && getGroupItemLimit ? getGroupItemLimit(group) : Infinity;\n var isShowAllVisible = group &&\n !group.children &&\n !group.isCollapsed &&\n !group.isShowingAll &&\n (group.count > renderCount || group.hasMoreData);\n var hasNestedGroups = group && group.children && group.children.length > 0;\n var version = listProps.version;\n var dividerProps = {\n group: group,\n groupIndex: groupIndex,\n groupLevel: group ? group.level : 0,\n isSelected: isSelected,\n selected: isSelected,\n viewport: viewport,\n selectionMode: selectionMode,\n groups: groups,\n compact: compact,\n };\n var ariaControlsProps = {\n groupedListId: this._id,\n ariaSetSize: groups ? groups.length : undefined,\n ariaPosInSet: groupIndex !== undefined ? groupIndex + 1 : undefined,\n };\n var groupHeaderProps = __assign(__assign(__assign({}, headerProps), dividerProps), ariaControlsProps);\n var groupShowAllProps = __assign(__assign({}, showAllProps), dividerProps);\n var groupFooterProps = __assign(__assign({}, footerProps), dividerProps);\n var isDraggable = !!this.props.dragDropHelper &&\n this._getGroupDragDropOptions().canDrag(group) &&\n !!this.props.dragDropEvents.canDragGroups;\n return (React.createElement(\"div\", __assign({ ref: this._root }, (isDraggable && { draggable: true }), { className: css(groupedListClassNames && groupedListClassNames.group, this._getDroppingClassName()), role: \"presentation\" }),\n onRenderGroupHeader(groupHeaderProps, this._onRenderGroupHeader),\n group && group.isCollapsed ? null : hasNestedGroups ? (React.createElement(List, { role: \"presentation\", ref: this._list, items: group ? group.children : [], onRenderCell: this._renderSubGroup, getItemCountForPage: this._returnOne, onShouldVirtualize: onShouldVirtualize, version: version, id: this._id })) : (this._onRenderGroup(renderCount)),\n group && group.isCollapsed\n ? null\n : isShowAllVisible && onRenderGroupShowAll(groupShowAllProps, this._onRenderGroupShowAll),\n onRenderGroupFooter(groupFooterProps, this._onRenderGroupFooter)));\n };\n GroupedListSection.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this.forceListUpdate();\n };\n GroupedListSection.prototype.forceListUpdate = function () {\n var group = this.props.group;\n if (this._list.current) {\n this._list.current.forceUpdate();\n if (group && group.children && group.children.length > 0) {\n var subGroupCount = group.children.length;\n for (var i = 0; i < subGroupCount; i++) {\n var subGroup = this._list.current.pageRefs['subGroup_' + String(i)];\n if (subGroup) {\n subGroup.forceListUpdate();\n }\n }\n }\n }\n else {\n var subGroup = this._subGroupRefs['subGroup_' + String(0)];\n if (subGroup) {\n subGroup.forceListUpdate();\n }\n }\n };\n GroupedListSection.prototype._onSelectionChange = function () {\n var _a = this.props, group = _a.group, selection = _a.selection;\n if (selection && group) {\n var isSelected = selection.isRangeSelected(group.startIndex, group.count);\n if (isSelected !== this.state.isSelected) {\n this.setState({ isSelected: isSelected });\n }\n }\n };\n GroupedListSection.prototype._onRenderGroupCell = function (onRenderCell, groupNestingDepth, group) {\n return function (item, itemIndex) {\n return onRenderCell(groupNestingDepth, item, itemIndex, group);\n };\n };\n GroupedListSection.prototype._onRenderGroup = function (renderCount) {\n var _a;\n var _b = this.props, group = _b.group, items = _b.items, onRenderCell = _b.onRenderCell, listProps = _b.listProps, groupNestingDepth = _b.groupNestingDepth, onShouldVirtualize = _b.onShouldVirtualize, groupProps = _b.groupProps;\n var count = group && !group.isShowingAll ? group.count : items.length;\n var startIndex = group ? group.startIndex : 0;\n return (React.createElement(List, __assign({ role: groupProps && groupProps.role ? groupProps.role : 'rowgroup', \"aria-label\": (_a = group) === null || _a === void 0 ? void 0 : _a.name, items: items, onRenderCell: this._onRenderGroupCell(onRenderCell, groupNestingDepth, group), ref: this._list, renderCount: Math.min(count, renderCount), startIndex: startIndex, onShouldVirtualize: onShouldVirtualize, id: this._id }, listProps)));\n };\n GroupedListSection.prototype._returnOne = function () {\n return 1;\n };\n GroupedListSection.prototype._getGroupKey = function (group, index) {\n return 'group-' + (group && group.key ? group.key : String(group.level) + String(index));\n };\n /**\n * get the correct css class to reflect the dropping state for a given group\n *\n * If the group is the current drop target, return the default dropping class name\n * Otherwise, return '';\n *\n */\n GroupedListSection.prototype._getDroppingClassName = function () {\n var isDropping = this.state.isDropping;\n var _a = this.props, group = _a.group, groupedListClassNames = _a.groupedListClassNames;\n isDropping = !!(group && isDropping);\n return css(isDropping && this._droppingClassName, isDropping && DEFAULT_DROPPING_CSS_CLASS, isDropping && groupedListClassNames && groupedListClassNames.groupIsDropping);\n };\n return GroupedListSection;\n}(React.Component));\nexport { GroupedListSection };\n//# sourceMappingURL=GroupedListSection.js.map","var _this = this;\nimport { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction, KeyCodes, getRTLSafeKeyCode, css, getId, EventGroup, } from '../../Utilities';\nimport { List } from '../../List';\nimport { SelectionMode, SELECTION_CHANGE } from '../../Selection';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { GroupHeader } from './GroupHeader';\nimport { GroupShowAll } from './GroupShowAll';\nimport { GroupFooter } from './GroupFooter';\nvar flattenItems = function (groups, items, memoItems, getGroupItemLimit) {\n var _a;\n if (!groups) {\n return items;\n }\n if (memoItems.length < 1) {\n // Not the exact final size but gets us in the ballpark.\n // This helps avoid trashing memory when building\n // the flattened list.\n memoItems = new Array(items.length);\n }\n var index = 0;\n // const stack: IGroup[] = [];\n var stack = [];\n var j = groups.length - 1;\n while (j >= 0) {\n stack.push({ group: groups[j], groupIndex: j + 1 });\n j--;\n }\n while (stack.length > 0) {\n // eslint-disable-next-line prefer-const\n var _b = stack.pop(), group = _b.group, groupIndex = _b.groupIndex;\n memoItems[index] = {\n group: group,\n groupId: getId('GroupedListSection'),\n type: 'header',\n groupIndex: groupIndex,\n };\n index++;\n while (group.isCollapsed !== true && ((_a = group) === null || _a === void 0 ? void 0 : _a.children) && group.children.length > 0) {\n j = group.children.length - 1;\n while (j > 0) {\n stack.push({ group: group.children[j], groupIndex: j + 1 });\n j--;\n }\n group = group.children[0];\n memoItems[index] = {\n group: group,\n groupId: getId('GroupedListSection'),\n type: 'header',\n groupIndex: 1,\n };\n index++;\n }\n if (group.isCollapsed !== true) {\n var itemIndex = group.startIndex;\n var renderCount = getGroupItemLimit ? getGroupItemLimit(group) : Infinity;\n var count = !group.isShowingAll ? group.count : items.length;\n var itemEnd = itemIndex + Math.min(count, renderCount);\n while (itemIndex < itemEnd) {\n memoItems[index] = {\n group: group,\n item: items[itemIndex],\n itemIndex: itemIndex,\n type: 'item',\n };\n itemIndex++;\n index++;\n }\n var isShowAllVisible = !group.children &&\n !group.isCollapsed &&\n !group.isShowingAll &&\n (group.count > renderCount || group.hasMoreData);\n if (isShowAllVisible) {\n memoItems[index] = {\n group: group,\n type: 'showAll',\n };\n index++;\n }\n }\n // Placeholder for a potential footer.\n // Whether or not a footer is displayed is resolved\n // by the footer render function so this is just a marker\n // for where a footer may go.\n memoItems[index] = {\n group: group,\n type: 'footer',\n };\n index++;\n }\n memoItems.length = index;\n // console.log('MEMO ITEMS', memoItems);\n return memoItems;\n};\nvar useIsGroupSelected = function (startIndex, count, selection, eventGroup) {\n var _a = React.useState(function () { var _a, _b; return _b = (_a = selection) === null || _a === void 0 ? void 0 : _a.isRangeSelected(startIndex, count), (_b !== null && _b !== void 0 ? _b : false); }), isSelected = _a[0], setIsSelected = _a[1];\n React.useEffect(function () {\n if (selection && eventGroup) {\n var changeHandler_1 = function () {\n var _a, _b;\n setIsSelected((_b = (_a = selection) === null || _a === void 0 ? void 0 : _a.isRangeSelected(startIndex, count), (_b !== null && _b !== void 0 ? _b : false)));\n };\n eventGroup.on(selection, SELECTION_CHANGE, changeHandler_1);\n return function () {\n var _a;\n (_a = eventGroup) === null || _a === void 0 ? void 0 : _a.off(selection, SELECTION_CHANGE, changeHandler_1);\n };\n }\n }, [startIndex, count, selection, eventGroup]);\n return isSelected;\n};\nvar computeIsSomeGroupExpanded = function (groups) {\n return !!(groups && groups.some(function (group) { return (group.children ? computeIsSomeGroupExpanded(group.children) : !group.isCollapsed); }));\n};\nvar setGroupsCollapsedState = function (groups, isCollapsed) {\n if (groups === undefined) {\n return;\n }\n for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) {\n groups[groupIndex].isCollapsed = isCollapsed;\n }\n};\nvar isInnerZoneKeystroke = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === getRTLSafeKeyCode(KeyCodes.right);\n};\nvar getClassNames = classNamesFunction();\nvar getKey = function (item, _index) {\n var _a, _b;\n switch (item.type) {\n case 'item':\n return _b = (_a = item.item) === null || _a === void 0 ? void 0 : _a.key, (_b !== null && _b !== void 0 ? _b : null);\n case 'header':\n return item.group.key;\n case 'footer':\n return item.group.key + \"-footer\";\n case 'showAll':\n return item.group.key + \"-showAll\";\n }\n return null;\n};\nvar renderGroupHeader = function (props, _defaultRender) {\n return React.createElement(GroupHeader, __assign({}, props));\n};\nvar renderGroupShowAll = function (props, _defaultRender) {\n return React.createElement(GroupShowAll, __assign({}, props));\n};\nvar renderGroupFooter = function (props, _defaultRender) {\n if (props.group && props.footerText) {\n return React.createElement(GroupFooter, __assign({}, props));\n }\n return null;\n};\nexport var GroupedListV2FC = function (props) {\n var _a;\n var selection = props.selection, _b = props.selectionMode, selectionMode = _b === void 0 ? SelectionMode.multiple : _b, _c = props.groupProps, groupProps = _c === void 0 ? {} : _c, _d = props.compact, compact = _d === void 0 ? false : _d, _e = props.items, items = _e === void 0 ? [] : _e, groups = props.groups, onGroupExpandStateChanged = props.onGroupExpandStateChanged, className = props.className, usePageCache = props.usePageCache, onShouldVirtualize = props.onShouldVirtualize, theme = props.theme, _f = props.role, role = _f === void 0 ? 'treegrid' : _f, styles = props.styles, _g = props.focusZoneProps, focusZoneProps = _g === void 0 ? {} : _g, _h = props.rootListProps, rootListProps = _h === void 0 ? {} : _h, onRenderCell = props.onRenderCell, viewport = props.viewport, listRef = props.listRef, groupExpandedVersion = props.groupExpandedVersion, versionFromProps = props.version;\n var _j = groupProps.onRenderHeader, onRenderHeader = _j === void 0 ? renderGroupHeader : _j, _k = groupProps.onRenderFooter, onRenderFooter = _k === void 0 ? renderGroupFooter : _k, _l = groupProps.onRenderShowAll, onRenderShowAll = _l === void 0 ? renderGroupShowAll : _l;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n compact: compact,\n });\n var events = React.useRef();\n var flatList = React.useRef([]);\n var isSomeGroupExpanded = React.useRef(computeIsSomeGroupExpanded(groups));\n var _m = React.useState({}), version = _m[0], setVersion = _m[1];\n var _o = React.useState({}), toggleVersion = _o[0], setToggleVersion = _o[1];\n // eslint-disable-next-line deprecation/deprecation\n var _p = focusZoneProps.shouldEnterInnerZone, shouldEnterInnerZone = _p === void 0 ? isInnerZoneKeystroke : _p;\n var listView = React.useMemo(function () {\n var _a;\n return flattenItems(groups, items, flatList.current, (_a = groupProps) === null || _a === void 0 ? void 0 : _a.getGroupItemLimit);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groups, (_a = groupProps) === null || _a === void 0 ? void 0 : _a.getGroupItemLimit, items, toggleVersion, flatList]);\n var getPageSpecification = React.useCallback(function (flattenedIndex) {\n var pageGroup = listView[flattenedIndex];\n return {\n key: pageGroup.type === 'header' ? pageGroup.group.key : undefined,\n };\n }, [listView]);\n React.useEffect(function () {\n var _a;\n if ((_a = groupProps) === null || _a === void 0 ? void 0 : _a.isAllGroupsCollapsed) {\n setGroupsCollapsedState(groups, groupProps.isAllGroupsCollapsed);\n }\n events.current = new EventGroup(_this);\n return function () {\n var _a;\n (_a = events.current) === null || _a === void 0 ? void 0 : _a.dispose();\n events.current = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(function () {\n setVersion({});\n }, [versionFromProps]);\n React.useEffect(function () {\n var _a;\n var newIsSomeGroupExpanded = computeIsSomeGroupExpanded(groups);\n if (newIsSomeGroupExpanded !== isSomeGroupExpanded.current) {\n isSomeGroupExpanded.current = newIsSomeGroupExpanded;\n (_a = onGroupExpandStateChanged) === null || _a === void 0 ? void 0 : _a(newIsSomeGroupExpanded);\n }\n }, [groups, toggleVersion, onGroupExpandStateChanged, groupExpandedVersion]);\n var onToggleCollapse = React.useCallback(function (group) {\n var _a, _b, _c;\n var onToggleCollapseFn = (_b = (_a = groupProps) === null || _a === void 0 ? void 0 : _a.headerProps) === null || _b === void 0 ? void 0 : _b.onToggleCollapse;\n if (group) {\n (_c = onToggleCollapseFn) === null || _c === void 0 ? void 0 : _c(group);\n group.isCollapsed = !group.isCollapsed;\n setToggleVersion({});\n setVersion({});\n }\n }, [setToggleVersion, groupProps]);\n var onToggleSelectGroup = function (group) {\n if (group && selection && selectionMode === SelectionMode.multiple) {\n selection.toggleRangeSelected(group.startIndex, group.count);\n }\n };\n var onToggleSummarize = function (group) {\n var _a, _b;\n var onToggleSummarizeFn = (_b = (_a = groupProps) === null || _a === void 0 ? void 0 : _a.showAllProps) === null || _b === void 0 ? void 0 : _b.onToggleSummarize;\n if (onToggleSummarizeFn) {\n onToggleSummarizeFn(group);\n }\n else {\n if (group) {\n group.isShowingAll = !group.isShowingAll;\n }\n setVersion({});\n setToggleVersion({});\n }\n };\n var getDividerProps = function (group, flattenedIndex) {\n var _a;\n var dividerProps = {\n group: group,\n groupIndex: flattenedIndex,\n groupLevel: (_a = group.level, (_a !== null && _a !== void 0 ? _a : 0)),\n viewport: viewport,\n selectionMode: selectionMode,\n groups: groups,\n compact: compact,\n onToggleSelectGroup: onToggleSelectGroup,\n onToggleCollapse: onToggleCollapse,\n onToggleSummarize: onToggleSummarize,\n };\n return dividerProps;\n };\n var renderHeader = function (item, flattenedIndex) {\n var group = item.group;\n var ariaProps;\n if (role === 'treegrid') {\n // GroupedList default role\n ariaProps = {\n ariaLevel: group.level ? group.level + 1 : 1,\n ariaSetSize: groups ? groups.length : undefined,\n ariaPosInSet: item.groupIndex,\n };\n }\n else {\n // Grouped DetailsList\n ariaProps = {\n ariaRowIndex: flattenedIndex,\n };\n }\n var headerProps = __assign(__assign(__assign(__assign({}, groupProps.headerProps), getDividerProps(item.group, flattenedIndex)), { key: group.key, groupedListId: item.groupId }), ariaProps);\n return (React.createElement(GroupItem, { render: onRenderHeader, defaultRender: renderGroupHeader, item: item, selection: selection, eventGroup: events.current, props: headerProps }));\n };\n var renderShowAll = function (item, flattenedIndex) {\n var group = item.group;\n var groupShowAllProps = __assign(__assign(__assign({}, groupProps.showAllProps), getDividerProps(group, flattenedIndex)), { key: group.key ? group.key + \"-show-all\" : undefined });\n return onRenderShowAll(groupShowAllProps, renderGroupShowAll);\n };\n var renderFooter = function (item, flattenedIndex) {\n var group = item.group;\n var groupFooterProps = __assign(__assign(__assign({}, groupProps.footerProps), getDividerProps(group, flattenedIndex)), { key: group.key ? group.key + \"-footer\" : undefined });\n return onRenderFooter(groupFooterProps, renderGroupFooter);\n };\n var renderItem = function (item, flattenedIndex) {\n var _a;\n if (item.type === 'header') {\n return renderHeader(item, flattenedIndex);\n }\n else if (item.type === 'showAll') {\n return renderShowAll(item, flattenedIndex);\n }\n else if (item.type === 'footer') {\n return renderFooter(item, flattenedIndex);\n }\n else {\n var level = item.group.level ? item.group.level + 1 : 1;\n return onRenderCell(level, item.item, (_a = item.itemIndex, (_a !== null && _a !== void 0 ? _a : flattenedIndex)), item.group);\n }\n };\n return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, \"data-automationid\": \"GroupedList\", \"data-is-scrollable\": \"false\", role: \"presentation\" }, focusZoneProps, { shouldEnterInnerZone: shouldEnterInnerZone, className: css(classNames.root, focusZoneProps.className) }),\n React.createElement(List, __assign({ ref: listRef, role: role, items: listView, \n // eslint-disable-next-line\n onRenderCellConditional: renderItem, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, getPageSpecification: getPageSpecification, version: version, getKey: getKey }, rootListProps))));\n};\nvar GroupItem = function (_a) {\n var render = _a.render, defaultRender = _a.defaultRender, item = _a.item, selection = _a.selection, eventGroup = _a.eventGroup, props = _a.props;\n var group = item.group;\n var isSelected = useIsGroupSelected(group.startIndex, group.count, selection, eventGroup);\n var mergedProps = __assign(__assign({}, props), { isSelected: isSelected, selected: isSelected });\n return render(mergedProps, defaultRender);\n};\nvar GroupedListV2Wrapper = /** @class */ (function (_super) {\n __extends(GroupedListV2Wrapper, _super);\n function GroupedListV2Wrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._list = React.createRef();\n initializeComponentRef(_this);\n var _a = props.listProps, _b = (_a === void 0 ? {} : _a).version, version = _b === void 0 ? {} : _b, groups = props.groups;\n _this.state = {\n version: version,\n groupExpandedVersion: {},\n groups: groups,\n };\n return _this;\n }\n GroupedListV2Wrapper.getDerivedStateFromProps = function (nextProps, previousState) {\n var groups = nextProps.groups, selectionMode = nextProps.selectionMode, compact = nextProps.compact, items = nextProps.items, listProps = nextProps.listProps;\n var nextListVersion = listProps && listProps.version;\n var nextState = __assign(__assign({}, previousState), { groups: groups });\n if (nextListVersion !== previousState.version ||\n items !== previousState.items ||\n groups !== previousState.groups ||\n selectionMode !== previousState.selectionMode ||\n compact !== previousState.compact) {\n nextState.version = {};\n }\n return nextState;\n };\n GroupedListV2Wrapper.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n if (this._list.current) {\n this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n }\n };\n GroupedListV2Wrapper.prototype.getStartItemIndexInView = function () {\n var _a;\n return ((_a = this._list.current) === null || _a === void 0 ? void 0 : _a.getStartItemIndexInView()) || 0;\n };\n GroupedListV2Wrapper.prototype.render = function () {\n return React.createElement(GroupedListV2FC, __assign({}, this.props, this.state, { listRef: this._list }));\n };\n GroupedListV2Wrapper.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this._forceListUpdate();\n };\n GroupedListV2Wrapper.prototype.toggleCollapseAll = function (allCollapsed) {\n var _a, _b, _c;\n var groups = this.state.groups;\n var groupProps = this.props.groupProps;\n if (groups && groups.length > 0) {\n (_c = (_a = groupProps) === null || _a === void 0 ? void 0 : (_b = _a).onToggleCollapseAll) === null || _c === void 0 ? void 0 : _c.call(_b, allCollapsed);\n setGroupsCollapsedState(groups, allCollapsed);\n this.setState({\n groupExpandedVersion: {},\n });\n this.forceUpdate();\n }\n };\n GroupedListV2Wrapper.prototype._forceListUpdate = function () {\n this.setState({\n version: {},\n });\n };\n GroupedListV2Wrapper.displayName = 'GroupedListV2';\n return GroupedListV2Wrapper;\n}(React.Component));\nexport { GroupedListV2Wrapper };\n//# sourceMappingURL=GroupedListV2.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupedList.styles';\nimport { GroupedListV2Wrapper } from './GroupedListV2.base';\n/**\n * NOTE: GroupedListV2 is \"unstable\" and meant for preview use. It passes\n * the same test suite as GroupedList but it is an entirely new implementation\n * so it may have bugs and implementation details may change without notice.\n *\n * GroupedListV2 is an API-compatible replacement for GroupedList with a new implementation\n * that addresses issues GroupedList has with virtualizing nested lists under certain\n * conditions.\n */\nvar GroupedListV2 = styled(GroupedListV2Wrapper, getStyles, undefined, {\n scope: 'GroupedListV2',\n});\nGroupedListV2.displayName = 'GroupedListV2_unstable';\nexport { GroupedListV2 as GroupedListV2_unstable };\n//# sourceMappingURL=GroupedListV2.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../../Utilities';\nimport { DirectionalHint } from '../../../common/DirectionalHint';\nimport { Callout, FocusTrapCallout } from '../../../Callout';\nexport var CardCallout = function (props) {\n var _a = props.gapSpace, gapSpace = _a === void 0 ? 0 : _a, _b = props.directionalHint, directionalHint = _b === void 0 ? DirectionalHint.bottomLeftEdge : _b, directionalHintFixed = props.directionalHintFixed, targetElement = props.targetElement, firstFocus = props.firstFocus, trapFocus = props.trapFocus, onLeave = props.onLeave, className = props.className, finalHeight = props.finalHeight, content = props.content, calloutProps = props.calloutProps;\n var mergedCalloutProps = __assign(__assign(__assign({}, getNativeProps(props, divProperties)), { className: className, target: targetElement, isBeakVisible: false, directionalHint: directionalHint, directionalHintFixed: directionalHintFixed, finalHeight: finalHeight, minPagePadding: 24, onDismiss: onLeave, gapSpace: gapSpace }), calloutProps);\n return (React.createElement(React.Fragment, null, trapFocus ? (React.createElement(FocusTrapCallout, __assign({}, mergedCalloutProps, { focusTrapProps: {\n forceFocusInsideTrap: false,\n isClickableOutsideFocusTrap: true,\n disableFirstFocus: !firstFocus,\n } }), content)) : (React.createElement(Callout, __assign({}, mergedCalloutProps), content))));\n};\n//# sourceMappingURL=CardCallout.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes, Async, initializeComponentRef } from '../../Utilities';\nimport { ExpandingCardMode, } from './ExpandingCard.types';\nimport { CardCallout } from './CardCallout/CardCallout';\nvar getClassNames = classNamesFunction();\nvar ExpandingCardBase = /** @class */ (function (_super) {\n __extends(ExpandingCardBase, _super);\n function ExpandingCardBase(props) {\n var _this = _super.call(this, props) || this;\n _this._expandedElem = React.createRef();\n _this._onKeyDown = function (ev) {\n if (ev.which === KeyCodes.escape) {\n _this.props.onLeave && _this.props.onLeave(ev);\n }\n };\n _this._onRenderCompactCard = function () {\n return React.createElement(\"div\", { className: _this._classNames.compactCard }, _this.props.onRenderCompactCard(_this.props.renderData));\n };\n _this._onRenderExpandedCard = function () {\n // firstFrameRendered helps in initially setting height of expanded card to 1px, even if mode prop is set to\n // ExpandingCardMode.expanded on first render. This is to make sure transition animation takes place.\n !_this.state.firstFrameRendered &&\n _this._async.requestAnimationFrame(function () {\n _this.setState({\n firstFrameRendered: true,\n });\n });\n return (React.createElement(\"div\", { className: _this._classNames.expandedCard, ref: _this._expandedElem },\n React.createElement(\"div\", { className: _this._classNames.expandedCardScroll }, _this.props.onRenderExpandedCard && _this.props.onRenderExpandedCard(_this.props.renderData))));\n };\n _this._checkNeedsScroll = function () {\n var expandedCardHeight = _this.props.expandedCardHeight;\n _this._async.requestAnimationFrame(function () {\n if (_this._expandedElem.current && _this._expandedElem.current.scrollHeight >= expandedCardHeight) {\n _this.setState({\n needsScroll: true,\n });\n }\n });\n };\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n _this.state = {\n firstFrameRendered: false,\n needsScroll: false,\n };\n return _this;\n }\n ExpandingCardBase.prototype.componentDidMount = function () {\n this._checkNeedsScroll();\n };\n ExpandingCardBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n ExpandingCardBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, compactCardHeight = _a.compactCardHeight, expandedCardHeight = _a.expandedCardHeight, theme = _a.theme, mode = _a.mode, className = _a.className;\n var _b = this.state, needsScroll = _b.needsScroll, firstFrameRendered = _b.firstFrameRendered;\n var finalHeight = compactCardHeight + expandedCardHeight;\n this._classNames = getClassNames(styles, {\n theme: theme,\n compactCardHeight: compactCardHeight,\n className: className,\n expandedCardHeight: expandedCardHeight,\n needsScroll: needsScroll,\n expandedCardFirstFrameRendered: mode === ExpandingCardMode.expanded && firstFrameRendered,\n });\n var content = (React.createElement(\"div\", { onMouseEnter: this.props.onEnter, onMouseLeave: this.props.onLeave, onKeyDown: this._onKeyDown },\n this._onRenderCompactCard(),\n this._onRenderExpandedCard()));\n return (React.createElement(CardCallout, __assign({}, this.props, { content: content, finalHeight: finalHeight, className: this._classNames.root })));\n };\n ExpandingCardBase.defaultProps = {\n compactCardHeight: 156,\n expandedCardHeight: 384,\n directionalHintFixed: true,\n };\n return ExpandingCardBase;\n}(React.Component));\nexport { ExpandingCardBase };\n//# sourceMappingURL=ExpandingCard.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ExpandingCard-root',\n compactCard: 'ms-ExpandingCard-compactCard',\n expandedCard: 'ms-ExpandingCard-expandedCard',\n expandedCardScroll: 'ms-ExpandingCard-expandedCardScrollRegion',\n};\nexport function getStyles(props) {\n var _a;\n var theme = props.theme, needsScroll = props.needsScroll, expandedCardFirstFrameRendered = props.expandedCardFirstFrameRendered, compactCardHeight = props.compactCardHeight, expandedCardHeight = props.expandedCardHeight, className = props.className;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n width: 320,\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n },\n _a),\n },\n className,\n ],\n compactCard: [\n classNames.compactCard,\n {\n pointerEvents: 'auto',\n position: 'relative',\n height: compactCardHeight,\n },\n ],\n expandedCard: [\n classNames.expandedCard,\n {\n height: 1,\n overflowY: 'hidden',\n pointerEvents: 'auto',\n transition: 'height 0.467s cubic-bezier(0.5, 0, 0, 1)',\n selectors: {\n ':before': {\n content: '\"\"',\n position: 'relative',\n display: 'block',\n top: 0,\n left: 24,\n width: 272,\n height: 1,\n backgroundColor: palette.neutralLighter,\n },\n },\n },\n expandedCardFirstFrameRendered && {\n height: expandedCardHeight,\n },\n ],\n expandedCardScroll: [\n classNames.expandedCardScroll,\n needsScroll && {\n height: '100%',\n boxSizing: 'border-box',\n overflowY: 'auto',\n },\n ],\n };\n}\n//# sourceMappingURL=ExpandingCard.styles.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './ExpandingCard.styles';\nimport { ExpandingCardBase } from './ExpandingCard.base';\nexport var ExpandingCard = styled(ExpandingCardBase, getStyles, undefined, {\n scope: 'ExpandingCard',\n});\n//# sourceMappingURL=ExpandingCard.js.map","/**\n * {@docCategory HoverCard}\n */\nexport var ExpandingCardMode;\n(function (ExpandingCardMode) {\n /**\n * To have top compact card only\n */\n ExpandingCardMode[ExpandingCardMode[\"compact\"] = 0] = \"compact\";\n /**\n * To have both top compact and bottom expanded card\n */\n ExpandingCardMode[ExpandingCardMode[\"expanded\"] = 1] = \"expanded\";\n})(ExpandingCardMode || (ExpandingCardMode = {}));\n//# sourceMappingURL=ExpandingCard.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps, getId, KeyCodes, getDocument, classNamesFunction, initializeComponentRef, EventGroup, Async, } from '../../Utilities';\nimport { OpenCardMode, HoverCardType, } from './HoverCard.types';\nimport { ExpandingCard } from './ExpandingCard';\nimport { ExpandingCardMode } from './ExpandingCard.types';\nimport { PlainCard } from './PlainCard/PlainCard';\nvar getClassNames = classNamesFunction();\nvar HoverCardBase = /** @class */ (function (_super) {\n __extends(HoverCardBase, _super);\n // Constructor\n function HoverCardBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._hoverCard = React.createRef();\n _this.dismiss = function (withTimeOut) {\n _this._async.clearTimeout(_this._openTimerId);\n _this._async.clearTimeout(_this._dismissTimerId);\n if (!withTimeOut) {\n _this._setDismissedState();\n }\n else {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._setDismissedState();\n }, _this.props.cardDismissDelay);\n }\n };\n // Show HoverCard\n _this._cardOpen = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (_this._shouldBlockHoverCard() || (ev.type === 'keydown' && !(ev.which === _this.props.openHotKey))) {\n return;\n }\n _this._async.clearTimeout(_this._dismissTimerId);\n if (ev.type === 'mouseenter') {\n _this._currentMouseTarget = ev.currentTarget;\n }\n _this._executeCardOpen(ev);\n };\n _this._executeCardOpen = function (ev) {\n _this._async.clearTimeout(_this._openTimerId);\n _this._openTimerId = _this._async.setTimeout(function () {\n _this.setState(function (prevState) {\n if (!prevState.isHoverCardVisible) {\n return {\n isHoverCardVisible: true,\n mode: ExpandingCardMode.compact,\n openMode: ev.type === 'keydown' ? OpenCardMode.hotKey : OpenCardMode.hover,\n };\n }\n return prevState;\n });\n }, _this.props.cardOpenDelay);\n };\n /**\n * Hide HoverCard\n * How we dismiss the card depends on where the callback is coming from.\n * This is provided by the `isNativeEvent` argument.\n * true: Event is coming from event listeners set up in componentDidMount.\n * false: Event is coming from the `onLeave` prop from the HoverCard component.\n */\n _this._cardDismiss = function (isNativeEvent, ev) {\n if (isNativeEvent) {\n // We expect these to be MouseEvents, If not, return.\n if (!(ev instanceof MouseEvent)) {\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.type === 'keydown' && ev.which !== KeyCodes.escape) {\n return;\n }\n // Dismiss if not sticky and currentTarget is the same element that mouse last entered\n // eslint-disable-next-line deprecation/deprecation\n if (!_this.props.sticky && (_this._currentMouseTarget === ev.currentTarget || ev.which === KeyCodes.escape)) {\n _this.dismiss(true);\n }\n }\n else {\n // If this is a mouseleave event and the component is sticky, do not dismiss.\n if (_this.props.sticky &&\n !(ev instanceof MouseEvent) &&\n ev.nativeEvent instanceof MouseEvent &&\n ev.type === 'mouseleave') {\n return;\n }\n _this.dismiss(true);\n }\n };\n _this._setDismissedState = function () {\n _this.setState({\n isHoverCardVisible: false,\n mode: ExpandingCardMode.compact,\n openMode: OpenCardMode.hover,\n });\n };\n _this._instantOpenAsExpanded = function (ev) {\n _this._async.clearTimeout(_this._dismissTimerId);\n _this.setState(function (prevState) {\n if (!prevState.isHoverCardVisible) {\n return {\n isHoverCardVisible: true,\n mode: ExpandingCardMode.expanded,\n };\n }\n return prevState;\n });\n };\n _this._setEventListeners = function () {\n var _a = _this.props, trapFocus = _a.trapFocus, instantOpenOnClick = _a.instantOpenOnClick, eventListenerTarget = _a.eventListenerTarget;\n var target = eventListenerTarget\n ? _this._getTargetElement(eventListenerTarget)\n : _this._getTargetElement(_this.props.target);\n var nativeEventDismiss = _this._nativeDismissEvent;\n // target can be undefined if ref isn't available, only assign\n // events when defined to avoid throwing exception.\n if (target) {\n _this._events.on(target, 'mouseenter', _this._cardOpen);\n _this._events.on(target, 'mouseleave', nativeEventDismiss);\n if (trapFocus) {\n _this._events.on(target, 'keydown', _this._cardOpen);\n }\n else {\n _this._events.on(target, 'focus', _this._cardOpen);\n _this._events.on(target, 'blur', nativeEventDismiss);\n }\n if (instantOpenOnClick) {\n _this._events.on(target, 'click', _this._instantOpenAsExpanded);\n }\n else {\n _this._events.on(target, 'mousedown', nativeEventDismiss);\n _this._events.on(target, 'keydown', nativeEventDismiss);\n }\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._nativeDismissEvent = _this._cardDismiss.bind(_this, true);\n _this._childDismissEvent = _this._cardDismiss.bind(_this, false);\n _this.state = {\n isHoverCardVisible: false,\n mode: ExpandingCardMode.compact,\n openMode: OpenCardMode.hover,\n };\n return _this;\n }\n HoverCardBase.prototype.componentDidMount = function () {\n this._setEventListeners();\n };\n HoverCardBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n HoverCardBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _this = this;\n if (prevProps.target !== this.props.target) {\n this._events.off();\n this._setEventListeners();\n }\n if (prevState.isHoverCardVisible !== this.state.isHoverCardVisible) {\n if (this.state.isHoverCardVisible) {\n this._async.setTimeout(function () {\n _this.setState({\n mode: ExpandingCardMode.expanded,\n }, function () {\n _this.props.onCardExpand && _this.props.onCardExpand();\n });\n }, this.props.expandedCardOpenDelay);\n this.props.onCardVisible && this.props.onCardVisible();\n }\n else {\n this.setState({\n mode: ExpandingCardMode.compact,\n });\n this.props.onCardHide && this.props.onCardHide();\n }\n }\n };\n // Render\n HoverCardBase.prototype.render = function () {\n var _a = this.props, expandingCardProps = _a.expandingCardProps, children = _a.children, id = _a.id, _b = _a.setAriaDescribedBy, setAriaDescribedBy = _b === void 0 ? true : _b, customStyles = _a.styles, theme = _a.theme, className = _a.className, type = _a.type, plainCardProps = _a.plainCardProps, trapFocus = _a.trapFocus, setInitialFocus = _a.setInitialFocus;\n var _c = this.state, isHoverCardVisible = _c.isHoverCardVisible, mode = _c.mode, openMode = _c.openMode;\n var hoverCardId = id || getId('hoverCard');\n this._classNames = getClassNames(customStyles, {\n theme: theme,\n className: className,\n });\n // Common props for both card types.\n var commonCardProps = __assign(__assign({}, getNativeProps(this.props, divProperties)), { id: hoverCardId, trapFocus: !!trapFocus, firstFocus: setInitialFocus || openMode === OpenCardMode.hotKey, targetElement: this._getTargetElement(this.props.target), onEnter: this._cardOpen, onLeave: this._childDismissEvent });\n var finalExpandedCardProps = __assign(__assign(__assign({}, expandingCardProps), commonCardProps), { mode: mode });\n var finalPlainCardProps = __assign(__assign({}, plainCardProps), commonCardProps);\n return (React.createElement(\"div\", { className: this._classNames.host, ref: this._hoverCard, \"aria-describedby\": setAriaDescribedBy && isHoverCardVisible ? hoverCardId : undefined, \"data-is-focusable\": !this.props.target },\n children,\n isHoverCardVisible &&\n (type === HoverCardType.expanding ? (React.createElement(ExpandingCard, __assign({}, finalExpandedCardProps))) : (React.createElement(PlainCard, __assign({}, finalPlainCardProps))))));\n };\n HoverCardBase.prototype._getTargetElement = function (target) {\n switch (typeof target) {\n case 'string':\n return getDocument().querySelector(target);\n case 'object':\n return target;\n default:\n return this._hoverCard.current || undefined;\n }\n };\n HoverCardBase.prototype._shouldBlockHoverCard = function () {\n return !!(this.props.shouldBlockHoverCard && this.props.shouldBlockHoverCard());\n };\n HoverCardBase.defaultProps = {\n cardOpenDelay: 500,\n cardDismissDelay: 100,\n expandedCardOpenDelay: 1500,\n instantOpenOnClick: false,\n setInitialFocus: false,\n openHotKey: KeyCodes.c,\n type: HoverCardType.expanding,\n };\n return HoverCardBase;\n}(React.Component));\nexport { HoverCardBase };\n//# sourceMappingURL=HoverCard.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n host: 'ms-HoverCard-host',\n};\nexport function getStyles(props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n host: [classNames.host, className],\n };\n}\n//# sourceMappingURL=HoverCard.styles.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './HoverCard.styles';\nimport { HoverCardBase } from './HoverCard.base';\nexport var HoverCard = styled(HoverCardBase, getStyles, undefined, {\n scope: 'HoverCard',\n});\n//# sourceMappingURL=HoverCard.js.map","/**\n * {@docCategory HoverCard}\n */\nexport var OpenCardMode;\n(function (OpenCardMode) {\n /**\n * Open card by hover\n */\n OpenCardMode[OpenCardMode[\"hover\"] = 0] = \"hover\";\n /**\n * Open card by hot key\n */\n OpenCardMode[OpenCardMode[\"hotKey\"] = 1] = \"hotKey\";\n})(OpenCardMode || (OpenCardMode = {}));\n/**\n * {@docCategory HoverCard}\n */\nexport var HoverCardType;\n(function (HoverCardType) {\n /**\n * Plain card consisting of one part responsive to the size of content.\n */\n HoverCardType[\"plain\"] = \"PlainCard\";\n /**\n * File card consisting of two parts: compact and expanded. Has some default sizes if not specified.\n */\n HoverCardType[\"expanding\"] = \"ExpandingCard\";\n})(HoverCardType || (HoverCardType = {}));\n//# sourceMappingURL=HoverCard.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, KeyCodes } from '../../../Utilities';\nimport { CardCallout } from '../CardCallout/CardCallout';\nvar getClassNames = classNamesFunction();\nvar PlainCardBase = /** @class */ (function (_super) {\n __extends(PlainCardBase, _super);\n function PlainCardBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onKeyDown = function (ev) {\n if (ev.which === KeyCodes.escape) {\n _this.props.onLeave && _this.props.onLeave(ev);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n PlainCardBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var content = (React.createElement(\"div\", { onMouseEnter: this.props.onEnter, onMouseLeave: this.props.onLeave, onKeyDown: this._onKeyDown }, this.props.onRenderPlainCard(this.props.renderData)));\n return React.createElement(CardCallout, __assign({}, this.props, { content: content, className: this._classNames.root }));\n };\n return PlainCardBase;\n}(React.Component));\nexport { PlainCardBase };\n//# sourceMappingURL=PlainCard.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-PlainCard-root',\n};\nexport function getStyles(props) {\n var _a;\n var theme = props.theme, className = props.className;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n pointerEvents: 'auto',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n },\n _a),\n },\n className,\n ],\n };\n}\n//# sourceMappingURL=PlainCard.styles.js.map","import { styled } from '../../../Utilities';\nimport { getStyles } from './PlainCard.styles';\nimport { PlainCardBase } from './PlainCard.base';\nexport var PlainCard = styled(PlainCardBase, getStyles, undefined, {\n scope: 'PlainCard',\n});\n//# sourceMappingURL=PlainCard.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n var _a = getIcon(iconName) || {\n subset: {},\n code: undefined,\n }, code = _a.code, subset = _a.subset;\n if (!code) {\n return null;\n }\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var accessibleName = props['aria-label'] || props.title;\n var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n var finalChildren = children;\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n // https://github.com/microsoft/fluentui/issues/10449\n style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n // Icon is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Icon.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n __extends(IconBase, _super);\n function IconBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoadingStateChange = function (state) {\n if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n _this.props.imageProps.onLoadingStateChange(state);\n }\n if (state === ImageLoadState.error) {\n _this.setState({ imageLoadError: true });\n }\n };\n _this.state = {\n imageLoadError: false,\n };\n return _this;\n }\n IconBase.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n var isImage = \n // eslint-disable-next-line deprecation/deprecation\n !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n iconClassName: iconClassName,\n isImage: isImage,\n isPlaceholder: isPlaceholder,\n });\n var RootType = isImage ? 'span' : 'i';\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'aria-label',\n ]);\n var imageLoadError = this.state.imageLoadError;\n var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n var ImageType = (imageLoadError && imageErrorAs) || Image;\n // eslint-disable-next-line deprecation/deprecation\n var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n var hasName = !!(accessibleName ||\n this.props['aria-labelledby'] ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby']);\n var containerProps = hasName\n ? {\n role: isImage || mergeImageProps ? undefined : 'img',\n 'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n }\n : {\n 'aria-hidden': this.props['aria-labelledby'] || imageProps['aria-labelledby'] ? false : true,\n };\n var finalIconContentChildren = iconContentChildren;\n if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n finalIconContentChildren = React.cloneElement(iconContentChildren, {\n alt: accessibleName,\n });\n }\n return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n };\n return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n//# sourceMappingURL=Icon.styles.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n /**\n * Render using the fabric icon font.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"default\"] = 0] = \"default\";\n /**\n * Render using an image, where imageProps would be used.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"image\"] = 1] = \"image\";\n /**\n * Deprecated, use `default`.\n * @deprecated Use `default`.\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * Deprecated, use `image`.\n * @deprecated Use `image`.\n */\n IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n var className = props.className, imageProps = props.imageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var containerProps = props['aria-label']\n ? {}\n : {\n role: 'presentation',\n 'aria-hidden': imageProps.alt || imageProps['aria-labelledby'] ? false : true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageProps))));\n};\n//# sourceMappingURL=ImageIcon.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nvar getClassNames = classNamesFunction();\nvar KEY_PREFIX = 'fabricImage';\nvar ImageBase = /** @class */ (function (_super) {\n __extends(ImageBase, _super);\n function ImageBase(props) {\n var _this = _super.call(this, props) || this;\n // Make an initial assumption about the image layout until we can\n // check the rendered element. The value here only takes effect when\n // shouldStartVisible is true.\n _this._coverStyle = ImageCoverStyle.portrait;\n _this._imageElement = React.createRef();\n _this._frameElement = React.createRef();\n _this._onImageLoaded = function (ev) {\n var _a = _this.props, src = _a.src, onLoad = _a.onLoad;\n if (onLoad) {\n onLoad(ev);\n }\n _this._computeCoverStyle(_this.props);\n if (src) {\n _this.setState({\n loadState: ImageLoadState.loaded,\n });\n }\n };\n _this._onImageError = function (ev) {\n if (_this.props.onError) {\n _this.props.onError(ev);\n }\n _this.setState({\n loadState: ImageLoadState.error,\n });\n };\n _this.state = {\n loadState: ImageLoadState.notLoaded,\n };\n return _this;\n }\n ImageBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n if (nextProps.src !== this.props.src) {\n this.setState({\n loadState: ImageLoadState.notLoaded,\n });\n }\n else if (this.state.loadState === ImageLoadState.loaded) {\n this._computeCoverStyle(nextProps);\n }\n };\n ImageBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._checkImageLoaded();\n if (this.props.onLoadingStateChange && prevState.loadState !== this.state.loadState) {\n this.props.onLoadingStateChange(this.state.loadState);\n }\n };\n ImageBase.prototype.render = function () {\n var imageProps = getNativeProps(this.props, imgProperties, [\n 'width',\n 'height',\n ]);\n var _a = this.props, src = _a.src, alt = _a.alt, width = _a.width, height = _a.height, shouldFadeIn = _a.shouldFadeIn, shouldStartVisible = _a.shouldStartVisible, className = _a.className, imageFit = _a.imageFit, role = _a.role, maximizeFrame = _a.maximizeFrame, styles = _a.styles, theme = _a.theme;\n var loadState = this.state.loadState;\n var coverStyle = this.props.coverStyle !== undefined ? this.props.coverStyle : this._coverStyle;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n width: width,\n height: height,\n maximizeFrame: maximizeFrame,\n shouldFadeIn: shouldFadeIn,\n shouldStartVisible: shouldStartVisible,\n isLoaded: loadState === ImageLoadState.loaded ||\n (loadState === ImageLoadState.notLoaded && this.props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n // If image dimensions aren't specified, the natural size of the image is used.\n return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: this._frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: this._onImageLoaded, onError: this._onImageError, key: KEY_PREFIX + this.props.src || '', className: classNames.image, ref: this._imageElement, src: src, alt: alt, role: role }))));\n };\n ImageBase.prototype._checkImageLoaded = function () {\n var src = this.props.src;\n var loadState = this.state.loadState;\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n var isLoaded = this._imageElement.current\n ? (src && this._imageElement.current.naturalWidth > 0 && this._imageElement.current.naturalHeight > 0) ||\n (this._imageElement.current.complete && ImageBase._svgRegex.test(src))\n : false;\n if (isLoaded) {\n this._computeCoverStyle(this.props);\n this.setState({\n loadState: ImageLoadState.loaded,\n });\n }\n }\n };\n ImageBase.prototype._computeCoverStyle = function (props) {\n var imageFit = props.imageFit, width = props.width, height = props.height;\n // Do not compute cover style if it was already specified in props\n if ((imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n this.props.coverStyle === undefined &&\n this._imageElement.current &&\n this._frameElement.current) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n var desiredRatio = void 0;\n if (typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover) {\n desiredRatio = width / height;\n }\n else {\n desiredRatio = this._frameElement.current.clientWidth / this._frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = this._imageElement.current.naturalWidth / this._imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n this._coverStyle = ImageCoverStyle.landscape;\n }\n else {\n this._coverStyle = ImageCoverStyle.portrait;\n }\n }\n };\n ImageBase.defaultProps = {\n shouldFadeIn: true,\n };\n ImageBase._svgRegex = /\\.svg$/i;\n return ImageBase;\n}(React.Component));\nexport { ImageBase };\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ImageFitStyles = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)',\n };\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n var window = getWindow();\n var supportsObjectFit = window !== undefined && window.navigator.msMaxTouchPoints === undefined;\n var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n scope: 'Image',\n}, true);\n//# sourceMappingURL=Image.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n /**\n * The image has been loaded successfully.\n */\n ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n /**\n * An error has been encountered while loading the image.\n */\n ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n /**\n * Deprecated at v1.3.6, to replace the src in case of errors, use `onLoadingStateChange` instead\n * and rerender the Image with a difference src.\n * @deprecated Use `onLoadingStateChange` instead\n * and rerender the Image with a difference src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n var _a;\n var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n return children((_a = {},\n _a[DATAKTP_TARGET] = keytipId,\n _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n _a['aria-describedby'] = ariaDescribedBy,\n _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, usePrevious } from '@uifabric/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n var uniqueId = React.useRef();\n var keytipProps = options.keytipProps\n ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n var keytipManager = useConst(KeytipManager.getInstance());\n var prevOptions = usePrevious(options);\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n React.useLayoutEffect(function () {\n var _a, _b;\n if (uniqueId.current &&\n keytipProps &&\n (((_a = prevOptions) === null || _a === void 0 ? void 0 : _a.keytipProps) !== options.keytipProps || ((_b = prevOptions) === null || _b === void 0 ? void 0 : _b.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n React.useLayoutEffect(function () {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n return function () {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var nativeKeytipProps = {\n ariaDescribedBy: undefined,\n keytipId: undefined,\n };\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n // Add the parent overflow sequence if necessary\n var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n // Construct aria-describedby and data-ktp-id attributes\n var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n var keySequences = __spreadArrays(newKeytipProps.keySequences);\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n var keytipId = sequencesToID(keySequences);\n return {\n ariaDescribedBy: ariaDescribedBy,\n keytipId: keytipId,\n };\n}\n//# sourceMappingURL=useKeytipData.js.map","import * as React from 'react';\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, DATAKTP_ARIA_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * Hook that creates a ref which is used for passing to Keytip target element.\n * The ref will handle setting the attributes needed for Keytip to work.\n */\nexport function useKeytipRef(options) {\n var _a = useKeytipData(options), keytipId = _a.keytipId, ariaDescribedBy = _a.ariaDescribedBy;\n var contentRef = React.useCallback(function (contentElement) {\n if (!contentElement) {\n return;\n }\n var targetElement = findFirstElement(contentElement, DATAKTP_TARGET) || contentElement;\n var executeElement = findFirstElement(contentElement, DATAKTP_EXECUTE_TARGET) || targetElement;\n var ariaElement = findFirstElement(contentElement, DATAKTP_ARIA_TARGET) || executeElement;\n setAttribute(targetElement, DATAKTP_TARGET, keytipId);\n setAttribute(executeElement, DATAKTP_EXECUTE_TARGET, keytipId);\n setAttribute(ariaElement, 'aria-describedby', ariaDescribedBy, true);\n }, [keytipId, ariaDescribedBy]);\n return contentRef;\n}\nexport function setAttribute(element, attributeName, attributeValue, append) {\n if (append === void 0) { append = false; }\n if (element && attributeValue) {\n var value = attributeValue;\n if (append) {\n var currentValue = element.getAttribute(attributeName);\n if (currentValue && currentValue.indexOf(attributeValue) === -1) {\n value = currentValue + \" \" + attributeValue;\n }\n }\n element.setAttribute(attributeName, value);\n }\n}\nfunction findFirstElement(rootElement, dataAttribute) {\n return rootElement.querySelector(\"[\" + dataAttribute + \"]\");\n}\n//# sourceMappingURL=useKeytipRef.js.map","import { __spreadArrays } from \"tslib\";\nimport { find, values } from '../../Utilities';\nimport { mergeOverflows, sequencesToID } from '../../utilities/keytips/KeytipUtils';\nimport { KTP_LAYER_ID } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling the parent/child relationships between keytips\n */\nvar KeytipTree = /** @class */ (function () {\n /**\n * KeytipTree constructor\n */\n function KeytipTree() {\n this.nodeMap = {};\n // Root has no keytipSequence\n this.root = {\n id: KTP_LAYER_ID,\n children: [],\n parent: '',\n keySequences: [],\n };\n this.nodeMap[this.root.id] = this.root;\n }\n /**\n * Add a keytip node to this KeytipTree\n *\n * @param keytipProps - Keytip to add to the Tree\n * @param uniqueID - Unique ID for this keytip\n * @param persisted - T/F if this keytip should be marked as persisted\n */\n KeytipTree.prototype.addNode = function (keytipProps, uniqueID, persisted) {\n var fullSequence = this._getFullSequence(keytipProps);\n var nodeID = sequencesToID(fullSequence);\n // Take off the last item to calculate the parent sequence\n fullSequence.pop();\n // Parent ID is the root if there aren't any more sequences\n var parentID = this._getParentID(fullSequence);\n // Create node and add to map\n var node = this._createNode(nodeID, parentID, [], keytipProps, persisted);\n this.nodeMap[uniqueID] = node;\n // Try to add self to parents children, if they exist\n var parent = this.getNode(parentID);\n if (parent) {\n parent.children.push(nodeID);\n }\n };\n /**\n * Updates a node in the tree\n *\n * @param keytipProps - Keytip props to update\n * @param uniqueID - Unique ID for this keytip\n */\n KeytipTree.prototype.updateNode = function (keytipProps, uniqueID) {\n var fullSequence = this._getFullSequence(keytipProps);\n var nodeID = sequencesToID(fullSequence);\n // Take off the last item to calculate the parent sequence\n fullSequence.pop();\n // Parent ID is the root if there aren't any more sequences\n var parentID = this._getParentID(fullSequence);\n var node = this.nodeMap[uniqueID];\n var prevParent = node.parent;\n var prevParentNode = this.getNode(prevParent);\n var parent = this.getNode(parentID);\n if (node) {\n if (prevParentNode && prevParent !== parentID) {\n // If parent has changed, remove child from old parent\n var childIndex = prevParentNode.children.indexOf(node.id);\n if (childIndex >= 0) {\n prevParentNode.children.splice(childIndex, 1);\n }\n }\n // If the ID of the node has changed, update node's parent's array of children with new ID\n if (parent && node.id !== nodeID) {\n var index = parent.children.indexOf(node.id);\n if (index >= 0) {\n parent.children[index] = nodeID;\n }\n else {\n parent.children.push(nodeID);\n }\n }\n // Update values\n node.id = nodeID;\n node.keySequences = keytipProps.keySequences;\n node.overflowSetSequence = keytipProps.overflowSetSequence;\n node.onExecute = keytipProps.onExecute;\n node.onReturn = keytipProps.onReturn;\n node.hasDynamicChildren = keytipProps.hasDynamicChildren;\n node.hasMenu = keytipProps.hasMenu;\n node.parent = parentID;\n node.disabled = keytipProps.disabled;\n }\n };\n /**\n * Removes a node from the KeytipTree\n *\n * @param sequence - full string of the node to remove\n */\n KeytipTree.prototype.removeNode = function (keytipProps, uniqueID) {\n var fullSequence = this._getFullSequence(keytipProps);\n var nodeID = sequencesToID(fullSequence);\n // Take off the last sequence to calculate the parent ID\n fullSequence.pop();\n // Parent ID is the root if there aren't any more sequences\n var parentID = this._getParentID(fullSequence);\n var parent = this.getNode(parentID);\n if (parent) {\n // Remove node from its parent's children\n parent.children.splice(parent.children.indexOf(nodeID), 1);\n }\n if (this.nodeMap[uniqueID]) {\n // Remove the node from the nodeMap\n delete this.nodeMap[uniqueID];\n }\n };\n /**\n * Searches the currentKeytip's children to exactly match a sequence. Will not match disabled nodes but\n * will match persisted nodes\n *\n * @param keySequence - string to match\n * @param currentKeytip - The keytip whose children will try to match\n * @returns The node that exactly matched the keySequence, or undefined if none matched\n */\n KeytipTree.prototype.getExactMatchedNode = function (keySequence, currentKeytip) {\n var _this = this;\n var possibleNodes = this.getNodes(currentKeytip.children);\n return find(possibleNodes, function (node) {\n return _this._getNodeSequence(node) === keySequence && !node.disabled;\n });\n };\n /**\n * Searches the currentKeytip's children to find nodes that start with the given sequence. Will not match\n * disabled nodes but will match persisted nodes\n *\n * @param keySequence - string to partially match\n * @param currentKeytip - The keytip whose children will try to partially match\n * @returns List of tree nodes that partially match the given sequence\n */\n KeytipTree.prototype.getPartiallyMatchedNodes = function (keySequence, currentKeytip) {\n var _this = this;\n // Get children that are persisted\n var possibleNodes = this.getNodes(currentKeytip.children);\n return possibleNodes.filter(function (node) {\n return _this._getNodeSequence(node).indexOf(keySequence) === 0 && !node.disabled;\n });\n };\n /**\n * Get the non-persisted children of the give node\n * If no node is given, will use the 'currentKeytip'\n *\n * @param node - Node to get the children for\n * @returns List of node IDs that are the children of the node\n */\n KeytipTree.prototype.getChildren = function (node) {\n var _this = this;\n if (!node) {\n node = this.currentKeytip;\n if (!node) {\n return [];\n }\n }\n var children = node.children;\n return Object.keys(this.nodeMap).reduce(function (nodes, key) {\n if (children.indexOf(_this.nodeMap[key].id) >= 0 && !_this.nodeMap[key].persisted) {\n nodes.push(_this.nodeMap[key].id);\n }\n return nodes;\n }, []);\n };\n /**\n * Gets all nodes from their IDs\n *\n * @param ids - List of keytip IDs\n * @returns Array of nodes that match the given IDs, can be empty\n */\n KeytipTree.prototype.getNodes = function (ids) {\n var _this = this;\n return Object.keys(this.nodeMap).reduce(function (nodes, key) {\n if (ids.indexOf(_this.nodeMap[key].id) >= 0) {\n nodes.push(_this.nodeMap[key]);\n }\n return nodes;\n }, []);\n };\n /**\n * Gets a single node from its ID\n *\n * @param id - ID of the node to get\n * @returns Node with the given ID, if found\n */\n KeytipTree.prototype.getNode = function (id) {\n var nodeMapValues = values(this.nodeMap);\n return find(nodeMapValues, function (node) {\n return node.id === id;\n });\n };\n /**\n * Tests if the currentKeytip in this.keytipTree is the parent of 'keytipProps'\n *\n * @param keytipProps - Keytip to test the parent for\n * @returns T/F if the currentKeytip is this keytipProps' parent\n */\n KeytipTree.prototype.isCurrentKeytipParent = function (keytipProps) {\n if (this.currentKeytip) {\n var fullSequence = __spreadArrays(keytipProps.keySequences);\n if (keytipProps.overflowSetSequence) {\n fullSequence = mergeOverflows(fullSequence, keytipProps.overflowSetSequence);\n }\n // Take off the last sequence to calculate the parent ID\n fullSequence.pop();\n // Parent ID is the root if there aren't any more sequences\n var parentID = fullSequence.length === 0 ? this.root.id : sequencesToID(fullSequence);\n var matchesCurrWithoutOverflow = false;\n if (this.currentKeytip.overflowSetSequence) {\n var currKeytipIdWithoutOverflow = sequencesToID(this.currentKeytip.keySequences);\n matchesCurrWithoutOverflow = currKeytipIdWithoutOverflow === parentID;\n }\n return matchesCurrWithoutOverflow || this.currentKeytip.id === parentID;\n }\n return false;\n };\n KeytipTree.prototype._getParentID = function (fullSequence) {\n return fullSequence.length === 0 ? this.root.id : sequencesToID(fullSequence);\n };\n KeytipTree.prototype._getFullSequence = function (keytipProps) {\n var fullSequence = __spreadArrays(keytipProps.keySequences);\n if (keytipProps.overflowSetSequence) {\n fullSequence = mergeOverflows(fullSequence, keytipProps.overflowSetSequence);\n }\n return fullSequence;\n };\n KeytipTree.prototype._getNodeSequence = function (node) {\n var fullSequence = __spreadArrays(node.keySequences);\n if (node.overflowSetSequence) {\n fullSequence = mergeOverflows(fullSequence, node.overflowSetSequence);\n }\n return fullSequence[fullSequence.length - 1];\n };\n KeytipTree.prototype._createNode = function (id, parentId, children, keytipProps, persisted) {\n var _this = this;\n var keySequences = keytipProps.keySequences, hasDynamicChildren = keytipProps.hasDynamicChildren, overflowSetSequence = keytipProps.overflowSetSequence, hasMenu = keytipProps.hasMenu, onExecute = keytipProps.onExecute, onReturn = keytipProps.onReturn, disabled = keytipProps.disabled;\n var node = {\n id: id,\n keySequences: keySequences,\n overflowSetSequence: overflowSetSequence,\n parent: parentId,\n children: children,\n onExecute: onExecute,\n onReturn: onReturn,\n hasDynamicChildren: hasDynamicChildren,\n hasMenu: hasMenu,\n disabled: disabled,\n persisted: persisted,\n };\n node.children = Object.keys(this.nodeMap).reduce(function (array, nodeMapKey) {\n if (_this.nodeMap[nodeMapKey].parent === id) {\n array.push(_this.nodeMap[nodeMapKey].id);\n }\n return array;\n }, []);\n return node;\n };\n return KeytipTree;\n}());\nexport { KeytipTree };\n//# sourceMappingURL=KeytipTree.js.map","import { __assign, __extends, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { getLayerStyles } from './KeytipLayer.styles';\nimport { Keytip } from '../../Keytip';\nimport { Layer } from '../../Layer';\nimport { classNamesFunction, getDocument, arraysEqual, warn, isMac, EventGroup, Async, initializeComponentRef, KeyCodes, } from '../../Utilities';\nimport { KeytipManager } from '../../utilities/keytips/KeytipManager';\nimport { KeytipTree } from './KeytipTree';\nimport { ktpTargetFromId, ktpTargetFromSequences, sequencesToID, mergeOverflows, } from '../../utilities/keytips/KeytipUtils';\nimport { transitionKeysContain, } from '../../utilities/keytips/IKeytipTransitionKey';\nimport { KeytipEvents, KTP_LAYER_ID, KTP_ARIA_SEPARATOR } from '../../utilities/keytips/KeytipConstants';\n// Default sequence is Alt-Windows (Alt-Meta) in Windows, Option-Control (Alt-Control) in Mac\nvar defaultStartSequence = {\n key: isMac() ? 'Control' : 'Meta',\n modifierKeys: [KeyCodes.alt],\n};\n// Default exit sequence is the same as the start sequence\nvar defaultExitSequence = defaultStartSequence;\n// Default return sequence is Escape\nvar defaultReturnSequence = {\n key: 'Escape',\n};\nvar getClassNames = classNamesFunction();\n/**\n * A layer that holds all keytip items\n * {@docCategory Keytips}\n */\nvar KeytipLayerBase = /** @class */ (function (_super) {\n __extends(KeytipLayerBase, _super);\n function KeytipLayerBase(props, context) {\n var _this = _super.call(this, props, context) || this;\n _this._keytipManager = KeytipManager.getInstance();\n _this._delayedKeytipQueue = [];\n _this._keyHandled = false;\n _this._onDismiss = function (ev) {\n // if we are in keytip mode, then exit keytip mode\n if (_this.state.inKeytipMode) {\n _this._exitKeytipMode(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n _this._keyHandled = false;\n // using key since which has been deprecated and key is now widely suporrted.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/which\n var key = ev.key;\n switch (key) {\n case 'Tab':\n case 'Enter':\n case 'Spacebar':\n case ' ':\n case 'ArrowUp':\n case 'Up':\n case 'ArrowDown':\n case 'Down':\n case 'ArrowLeft':\n case 'Left':\n case 'ArrowRight':\n case 'Right':\n if (_this.state.inKeytipMode) {\n _this._keyHandled = true;\n _this._exitKeytipMode(ev);\n }\n break;\n default:\n // Special cases for browser-specific keys that are not at standard\n // (according to http://www.w3.org/TR/uievents-key/#keys-navigation)\n if (key === 'Esc') {\n // Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/5290772/\n key = 'Escape';\n }\n else if (key === 'OS' || key === 'Win') {\n // Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1232918\n // Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n // and https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/16424492/\n key = 'Meta';\n }\n var transitionKey = { key: key };\n transitionKey.modifierKeys = _this._getModifierKey(key, ev);\n _this.processTransitionInput(transitionKey, ev);\n break;\n }\n };\n _this._onKeyPress = function (ev) {\n if (_this.state.inKeytipMode && !_this._keyHandled) {\n // Call processInput\n _this.processInput(ev.key.toLocaleLowerCase(), ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n _this._onKeytipAdded = function (eventArgs) {\n var _a;\n var keytipProps = eventArgs.keytip;\n var uniqueID = eventArgs.uniqueID;\n _this._keytipTree.addNode(keytipProps, uniqueID);\n _this._setKeytips();\n // Add the keytip to the queue to show later\n if (_this._keytipTree.isCurrentKeytipParent(keytipProps)) {\n // Ensure existing children are still shown.\n _this._delayedKeytipQueue = _this._delayedKeytipQueue.concat(((_a = _this._keytipTree.currentKeytip) === null || _a === void 0 ? void 0 : _a.children) || []);\n _this._addKeytipToQueue(sequencesToID(keytipProps.keySequences));\n // Ensure the child of currentKeytip is successfully added to currentKeytip's children and update it if not.\n // Note: Added this condition because KeytipTree.addNode was not always reflecting updates made to a parent node\n // in currentKeytip when that parent is the currentKeytip.\n if (_this._keytipTree.currentKeytip &&\n _this._keytipTree.currentKeytip.hasDynamicChildren &&\n _this._keytipTree.currentKeytip.children.indexOf(keytipProps.id) < 0) {\n var currNode = _this._keytipTree.getNode(_this._keytipTree.currentKeytip.id);\n if (currNode) {\n _this._keytipTree.currentKeytip = currNode;\n }\n }\n }\n _this._persistedKeytipChecks(keytipProps);\n };\n _this._onKeytipUpdated = function (eventArgs) {\n var _a;\n var keytipProps = eventArgs.keytip;\n var uniqueID = eventArgs.uniqueID;\n _this._keytipTree.updateNode(keytipProps, uniqueID);\n _this._setKeytips();\n if (_this._keytipTree.isCurrentKeytipParent(keytipProps)) {\n // Ensure existing children are still shown.\n _this._delayedKeytipQueue = _this._delayedKeytipQueue.concat(((_a = _this._keytipTree.currentKeytip) === null || _a === void 0 ? void 0 : _a.children) || []);\n _this._addKeytipToQueue(sequencesToID(keytipProps.keySequences));\n }\n _this._persistedKeytipChecks(keytipProps);\n };\n /**\n * Helper function to do checks related to persisted/overflow keytips\n * Done on keytip added and keytip updated\n *\n * @param keytipProps - Keytip props\n */\n _this._persistedKeytipChecks = function (keytipProps) {\n if (_this._newCurrentKeytipSequences && arraysEqual(keytipProps.keySequences, _this._newCurrentKeytipSequences)) {\n _this._triggerKeytipImmediately(keytipProps);\n }\n if (_this._isCurrentKeytipAnAlias(keytipProps)) {\n var keytipSequence = keytipProps.keySequences;\n if (keytipProps.overflowSetSequence) {\n keytipSequence = mergeOverflows(keytipSequence, keytipProps.overflowSetSequence);\n }\n _this._keytipTree.currentKeytip = _this._keytipTree.getNode(sequencesToID(keytipSequence));\n }\n };\n _this._onKeytipRemoved = function (eventArgs) {\n var keytipProps = eventArgs.keytip;\n var uniqueID = eventArgs.uniqueID;\n // Remove keytip from the delayed queue\n _this._removeKeytipFromQueue(sequencesToID(keytipProps.keySequences));\n // Remove the node from the Tree\n _this._keytipTree.removeNode(keytipProps, uniqueID);\n _this._setKeytips();\n };\n _this._onPersistedKeytipAdded = function (eventArgs) {\n var keytipProps = eventArgs.keytip;\n var uniqueID = eventArgs.uniqueID;\n _this._keytipTree.addNode(keytipProps, uniqueID, true);\n };\n _this._onPersistedKeytipRemoved = function (eventArgs) {\n var keytipProps = eventArgs.keytip;\n var uniqueID = eventArgs.uniqueID;\n _this._keytipTree.removeNode(keytipProps, uniqueID);\n };\n _this._onPersistedKeytipExecute = function (eventArgs) {\n _this._persistedKeytipExecute(eventArgs.overflowButtonSequences, eventArgs.keytipSequences);\n };\n /**\n * Sets if we are in keytip mode.\n * Note, this sets both the state for the layer as well as\n * the value that the manager will expose externally.\n * @param inKeytipMode - Boolean so set whether we are in keytip mode or not\n */\n _this._setInKeytipMode = function (inKeytipMode) {\n _this.setState({ inKeytipMode: inKeytipMode });\n _this._keytipManager.inKeytipMode = inKeytipMode;\n };\n /**\n * Emits a warning if duplicate keytips are found for the children of the current keytip\n */\n _this._warnIfDuplicateKeytips = function () {\n var duplicateKeytips = _this._getDuplicateIds(_this._keytipTree.getChildren());\n if (duplicateKeytips.length) {\n warn('Duplicate keytips found for ' + duplicateKeytips.join(', '));\n }\n };\n /**\n * Returns duplicates among keytip IDs.\n * If the returned array is empty, no duplicates were found.\n *\n * @param keytipIds - Array of keytip IDs to find duplicates for\n * @returns - Array of duplicates that were found. Each duplicate will only be added once to this array.\n */\n _this._getDuplicateIds = function (keytipIds) {\n var seenIds = {};\n return keytipIds.filter(function (keytipId) {\n seenIds[keytipId] = seenIds[keytipId] ? seenIds[keytipId] + 1 : 1;\n // Only add the first duplicate keytip seen\n return seenIds[keytipId] === 2;\n });\n };\n initializeComponentRef(_this);\n _this._events = new EventGroup(_this);\n _this._async = new Async(_this);\n var managerKeytips = __spreadArrays(_this._keytipManager.getKeytips());\n _this.state = {\n inKeytipMode: false,\n // Get the initial set of keytips\n keytips: managerKeytips,\n visibleKeytips: _this._getVisibleKeytips(managerKeytips),\n };\n _this._buildTree();\n _this._currentSequence = '';\n // Add keytip listeners\n _this._events.on(_this._keytipManager, KeytipEvents.KEYTIP_ADDED, _this._onKeytipAdded);\n _this._events.on(_this._keytipManager, KeytipEvents.KEYTIP_UPDATED, _this._onKeytipUpdated);\n _this._events.on(_this._keytipManager, KeytipEvents.KEYTIP_REMOVED, _this._onKeytipRemoved);\n _this._events.on(_this._keytipManager, KeytipEvents.PERSISTED_KEYTIP_ADDED, _this._onPersistedKeytipAdded);\n _this._events.on(_this._keytipManager, KeytipEvents.PERSISTED_KEYTIP_REMOVED, _this._onPersistedKeytipRemoved);\n _this._events.on(_this._keytipManager, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, _this._onPersistedKeytipExecute);\n return _this;\n }\n KeytipLayerBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, content = _a.content, styles = _a.styles;\n var _b = this.state, keytips = _b.keytips, visibleKeytips = _b.visibleKeytips;\n this._classNames = getClassNames(styles, {});\n return (React.createElement(Layer, { styles: getLayerStyles },\n React.createElement(\"span\", { id: KTP_LAYER_ID, className: this._classNames.innerContent }, \"\" + content + KTP_ARIA_SEPARATOR),\n keytips &&\n keytips.map(function (keytipProps, index) {\n return (React.createElement(\"span\", { key: index, id: sequencesToID(keytipProps.keySequences), className: _this._classNames.innerContent }, keytipProps.keySequences.join(KTP_ARIA_SEPARATOR)));\n }),\n visibleKeytips &&\n visibleKeytips.map(function (visibleKeytipProps) {\n return React.createElement(Keytip, __assign({ key: sequencesToID(visibleKeytipProps.keySequences) }, visibleKeytipProps));\n })));\n };\n KeytipLayerBase.prototype.componentDidMount = function () {\n // Add window listeners\n this._events.on(window, 'mouseup', this._onDismiss, true /* useCapture */);\n this._events.on(window, 'pointerup', this._onDismiss, true /* useCapture */);\n this._events.on(window, 'resize', this._onDismiss);\n this._events.on(window, 'keydown', this._onKeyDown, true /* useCapture */);\n this._events.on(window, 'keypress', this._onKeyPress, true /* useCapture */);\n this._events.on(window, 'scroll', this._onDismiss, true /* useCapture */);\n // Add keytip listeners\n this._events.on(this._keytipManager, KeytipEvents.ENTER_KEYTIP_MODE, this._enterKeytipMode);\n this._events.on(this._keytipManager, KeytipEvents.EXIT_KEYTIP_MODE, this._exitKeytipMode);\n };\n KeytipLayerBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n // The below public functions are only public for testing purposes\n // They are not intended to be used in app code by using a KeytipLayer reference\n KeytipLayerBase.prototype.getCurrentSequence = function () {\n return this._currentSequence;\n };\n KeytipLayerBase.prototype.getKeytipTree = function () {\n return this._keytipTree;\n };\n /**\n * Processes an IKeytipTransitionKey entered by the user\n *\n * @param transitionKey - IKeytipTransitionKey received by the layer to process\n */\n KeytipLayerBase.prototype.processTransitionInput = function (transitionKey, ev) {\n var currKtp = this._keytipTree.currentKeytip;\n if (transitionKeysContain(this.props.keytipExitSequences, transitionKey) && currKtp) {\n // If key sequence is in 'exit sequences', exit keytip mode\n this._keyHandled = true;\n this._exitKeytipMode(ev);\n }\n else if (transitionKeysContain(this.props.keytipReturnSequences, transitionKey)) {\n // If key sequence is in return sequences, move currentKeytip to parent (or if currentKeytip is the root, exit)\n if (currKtp) {\n this._keyHandled = true;\n if (currKtp.id === this._keytipTree.root.id) {\n // We are at the root, exit keytip mode\n this._exitKeytipMode(ev);\n }\n else {\n // If this keytip has a onReturn prop, we execute the func.\n if (currKtp.onReturn) {\n currKtp.onReturn(this._getKtpExecuteTarget(currKtp), this._getKtpTarget(currKtp));\n }\n // Reset currentSequence\n this._currentSequence = '';\n // Return pointer to its parent\n this._keytipTree.currentKeytip = this._keytipTree.getNode(currKtp.parent);\n // Show children keytips of the new currentKeytip\n this.showKeytips(this._keytipTree.getChildren());\n this._warnIfDuplicateKeytips();\n }\n }\n }\n else if (transitionKeysContain(this.props.keytipStartSequences, transitionKey) && !currKtp) {\n // If key sequence is in 'entry sequences' and currentKeytip is null, we enter keytip mode\n this._keyHandled = true;\n this._enterKeytipMode();\n this._warnIfDuplicateKeytips();\n }\n };\n /**\n * Processes inputs from the document listener and traverse the keytip tree\n *\n * @param key - Key pressed by the user\n */\n KeytipLayerBase.prototype.processInput = function (key, ev) {\n // Concat the input key with the current sequence\n var currSequence = this._currentSequence + key;\n var currKtp = this._keytipTree.currentKeytip;\n // currentKeytip must be defined, otherwise we haven't entered keytip mode yet\n if (currKtp) {\n var node = this._keytipTree.getExactMatchedNode(currSequence, currKtp);\n if (node) {\n this._keytipTree.currentKeytip = currKtp = node;\n var currKtpChildren = this._keytipTree.getChildren();\n // Execute this node's onExecute if defined\n if (currKtp.onExecute) {\n currKtp.onExecute(this._getKtpExecuteTarget(currKtp), this._getKtpTarget(currKtp));\n // Reset currKtp, this might have changed from the onExecute\n currKtp = this._keytipTree.currentKeytip;\n }\n // To exit keytipMode after executing the keytip it must not have a menu or have dynamic children\n if (currKtpChildren.length === 0 && !(currKtp.hasDynamicChildren || currKtp.hasMenu)) {\n this._exitKeytipMode(ev);\n }\n else {\n // Show all children keytips\n this.showKeytips(currKtpChildren);\n this._warnIfDuplicateKeytips();\n }\n // Clear currentSequence\n this._currentSequence = '';\n return;\n }\n var partialNodes = this._keytipTree.getPartiallyMatchedNodes(currSequence, currKtp);\n if (partialNodes.length > 0) {\n // We found nodes that partially match the sequence, so we show only those\n // Omit showing persisted nodes here\n var ids = partialNodes\n .filter(function (partialNode) {\n return !partialNode.persisted;\n })\n .map(function (partialNode) {\n return partialNode.id;\n });\n this.showKeytips(ids);\n // Save currentSequence\n this._currentSequence = currSequence;\n }\n }\n };\n /**\n * Show the given keytips and hide all others\n *\n * @param ids - Keytip IDs to show\n */\n KeytipLayerBase.prototype.showKeytips = function (ids) {\n // Update the visible prop in the manager\n for (var _i = 0, _a = this._keytipManager.getKeytips(); _i < _a.length; _i++) {\n var keytip = _a[_i];\n var keytipId = sequencesToID(keytip.keySequences);\n if (keytip.overflowSetSequence) {\n // Check if the ID with the overflow is the keytip we're looking for\n keytipId = sequencesToID(mergeOverflows(keytip.keySequences, keytip.overflowSetSequence));\n }\n if (ids.indexOf(keytipId) >= 0) {\n keytip.visible = true;\n }\n else {\n keytip.visible = false;\n }\n }\n // Apply the manager changes to the Layer state\n this._setKeytips();\n };\n /**\n * Enters keytip mode for this layer\n */\n KeytipLayerBase.prototype._enterKeytipMode = function () {\n if (this._keytipManager.shouldEnterKeytipMode) {\n if (this._keytipManager.delayUpdatingKeytipChange) {\n this._buildTree();\n this._setKeytips();\n }\n this._keytipTree.currentKeytip = this._keytipTree.root;\n // Show children of root\n this.showKeytips(this._keytipTree.getChildren());\n this._setInKeytipMode(true /* inKeytipMode */);\n if (this.props.onEnterKeytipMode) {\n this.props.onEnterKeytipMode();\n }\n }\n };\n KeytipLayerBase.prototype._buildTree = function () {\n this._keytipTree = new KeytipTree();\n // Add regular and persisted keytips to the tree\n for (var _i = 0, _a = Object.keys(this._keytipManager.keytips); _i < _a.length; _i++) {\n var id = _a[_i];\n var uniqueKeytip = this._keytipManager.keytips[id];\n this._keytipTree.addNode(uniqueKeytip.keytip, uniqueKeytip.uniqueID);\n }\n for (var _b = 0, _c = Object.keys(this._keytipManager.persistedKeytips); _b < _c.length; _b++) {\n var id = _c[_b];\n var uniqueKeytip = this._keytipManager.persistedKeytips[id];\n this._keytipTree.addNode(uniqueKeytip.keytip, uniqueKeytip.uniqueID);\n }\n };\n /**\n * Exits keytip mode for this layer\n */\n KeytipLayerBase.prototype._exitKeytipMode = function (ev) {\n this._keytipTree.currentKeytip = undefined;\n this._currentSequence = '';\n // Hide all keytips\n this.showKeytips([]);\n // Reset the delayed keytips if any\n this._delayedQueueTimeout && this._async.clearTimeout(this._delayedQueueTimeout);\n this._delayedKeytipQueue = [];\n this._setInKeytipMode(false /* inKeytipMode */);\n if (this.props.onExitKeytipMode) {\n this.props.onExitKeytipMode(ev);\n }\n };\n /**\n * Sets the keytips state property\n *\n * @param keytipProps - Keytips to set in this layer\n */\n KeytipLayerBase.prototype._setKeytips = function (keytipProps) {\n if (keytipProps === void 0) { keytipProps = this._keytipManager.getKeytips(); }\n this.setState({ keytips: keytipProps, visibleKeytips: this._getVisibleKeytips(keytipProps) });\n };\n /**\n * Callback function to use for persisted keytips\n *\n * @param overflowButtonSequences - The overflow button sequence to execute\n * @param keytipSequences - The keytip that should become the 'currentKeytip' when it is registered\n */\n KeytipLayerBase.prototype._persistedKeytipExecute = function (overflowButtonSequences, keytipSequences) {\n // Save newCurrentKeytip for later\n this._newCurrentKeytipSequences = keytipSequences;\n // Execute the overflow button's onExecute\n var overflowKeytipNode = this._keytipTree.getNode(sequencesToID(overflowButtonSequences));\n if (overflowKeytipNode && overflowKeytipNode.onExecute) {\n overflowKeytipNode.onExecute(this._getKtpExecuteTarget(overflowKeytipNode), this._getKtpTarget(overflowKeytipNode));\n }\n };\n KeytipLayerBase.prototype._getVisibleKeytips = function (keytips) {\n // Filter out non-visible keytips and duplicates\n var seenIds = {};\n return keytips.filter(function (keytip) {\n var keytipId = sequencesToID(keytip.keySequences);\n if (keytip.overflowSetSequence) {\n // Account for overflow set sequences when checking for duplicates\n keytipId = sequencesToID(mergeOverflows(keytip.keySequences, keytip.overflowSetSequence));\n }\n seenIds[keytipId] = seenIds[keytipId] ? seenIds[keytipId] + 1 : 1;\n return keytip.visible && seenIds[keytipId] === 1;\n });\n };\n /**\n * Gets the ModifierKeyCodes based on the keyboard event\n *\n * @param ev - React.KeyboardEvent\n * @returns List of ModifierKeyCodes that were pressed\n */\n KeytipLayerBase.prototype._getModifierKey = function (key, ev) {\n var modifierKeys = [];\n if (ev.altKey && key !== 'Alt') {\n modifierKeys.push(KeyCodes.alt);\n }\n if (ev.ctrlKey && key !== 'Control') {\n modifierKeys.push(KeyCodes.ctrl);\n }\n if (ev.shiftKey && key !== 'Shift') {\n modifierKeys.push(KeyCodes.shift);\n }\n if (ev.metaKey && key !== 'Meta') {\n modifierKeys.push(KeyCodes.leftWindow);\n }\n return modifierKeys.length ? modifierKeys : undefined;\n };\n /**\n * Trigger a keytip immediately and set it as the current keytip\n *\n * @param keytipProps - Keytip to trigger immediately\n */\n KeytipLayerBase.prototype._triggerKeytipImmediately = function (keytipProps) {\n // This keytip should become the currentKeytip and should execute right away\n var keytipSequence = __spreadArrays(keytipProps.keySequences);\n if (keytipProps.overflowSetSequence) {\n keytipSequence = mergeOverflows(keytipSequence, keytipProps.overflowSetSequence);\n }\n // Set currentKeytip\n this._keytipTree.currentKeytip = this._keytipTree.getNode(sequencesToID(keytipSequence));\n if (this._keytipTree.currentKeytip) {\n // Show all children keytips if any\n var children = this._keytipTree.getChildren();\n if (children.length) {\n this.showKeytips(children);\n }\n if (this._keytipTree.currentKeytip.onExecute) {\n this._keytipTree.currentKeytip.onExecute(this._getKtpExecuteTarget(this._keytipTree.currentKeytip), this._getKtpTarget(this._keytipTree.currentKeytip));\n }\n }\n // Unset _newCurrKtpSequences\n this._newCurrentKeytipSequences = undefined;\n };\n KeytipLayerBase.prototype._addKeytipToQueue = function (keytipID) {\n var _this = this;\n // Add keytip\n this._delayedKeytipQueue.push(keytipID);\n // Clear timeout\n this._delayedQueueTimeout && this._async.clearTimeout(this._delayedQueueTimeout);\n // Reset timeout\n this._delayedQueueTimeout = this._async.setTimeout(function () {\n if (_this._delayedKeytipQueue.length) {\n _this.showKeytips(_this._delayedKeytipQueue);\n _this._delayedKeytipQueue = [];\n }\n }, 300);\n };\n KeytipLayerBase.prototype._removeKeytipFromQueue = function (keytipID) {\n var _this = this;\n var index = this._delayedKeytipQueue.indexOf(keytipID);\n if (index >= 0) {\n // Remove keytip\n this._delayedKeytipQueue.splice(index, 1);\n // Clear timeout\n this._delayedQueueTimeout && this._async.clearTimeout(this._delayedQueueTimeout);\n // Reset timeout\n this._delayedQueueTimeout = this._async.setTimeout(function () {\n if (_this._delayedKeytipQueue.length) {\n _this.showKeytips(_this._delayedKeytipQueue);\n _this._delayedKeytipQueue = [];\n }\n }, 300);\n }\n };\n KeytipLayerBase.prototype._getKtpExecuteTarget = function (currKtp) {\n return getDocument().querySelector(ktpTargetFromId(currKtp.id));\n };\n KeytipLayerBase.prototype._getKtpTarget = function (currKtp) {\n return getDocument().querySelector(ktpTargetFromSequences(currKtp.keySequences));\n };\n /**\n * Returns T/F if the keytipProps keySequences match the currentKeytip, and the currentKeytip is in an overflow well\n * This will make 'keytipProps' the new currentKeytip\n *\n * @param keytipProps - Keytip props to check\n * @returns - T/F if this keytip should become the currentKeytip\n */\n KeytipLayerBase.prototype._isCurrentKeytipAnAlias = function (keytipProps) {\n var currKtp = this._keytipTree.currentKeytip;\n if (currKtp &&\n (currKtp.overflowSetSequence || currKtp.persisted) &&\n arraysEqual(keytipProps.keySequences, currKtp.keySequences)) {\n return true;\n }\n return false;\n };\n KeytipLayerBase.defaultProps = {\n keytipStartSequences: [defaultStartSequence],\n keytipExitSequences: [defaultExitSequence],\n keytipReturnSequences: [defaultReturnSequence],\n content: '',\n };\n return KeytipLayerBase;\n}(React.Component));\nexport { KeytipLayerBase };\n//# sourceMappingURL=KeytipLayer.base.js.map","import { styled } from '../../Utilities';\nimport { KeytipLayerBase } from './KeytipLayer.base';\nimport { getStyles } from './KeytipLayer.styles';\nexport var KeytipLayer = styled(KeytipLayerBase, getStyles, undefined, {\n scope: 'KeytipLayer',\n});\n//# sourceMappingURL=KeytipLayer.js.map","import { ZIndexes } from '../../Styling';\nexport var getLayerStyles = function (props) {\n return {\n root: [\n {\n // Prioritize the Keytips above all other Layers\n zIndex: ZIndexes.KeytipLayer,\n },\n ],\n };\n};\nexport var getStyles = function (props) {\n return {\n innerContent: [\n {\n position: 'absolute',\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n },\n ],\n };\n};\n//# sourceMappingURL=KeytipLayer.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\n/**\n * A component corresponding the content rendered inside the callout of the keytip component.\n * {@docCategory Keytips}\n */\nvar KeytipContentBase = /** @class */ (function (_super) {\n __extends(KeytipContentBase, _super);\n function KeytipContentBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n KeytipContentBase.prototype.render = function () {\n var _a = this.props, content = _a.content, styles = _a.styles, theme = _a.theme, disabled = _a.disabled, visible = _a.visible;\n var getClassNames = classNamesFunction();\n var classNames = getClassNames(styles, {\n theme: theme,\n disabled: disabled,\n visible: visible,\n });\n return (React.createElement(\"div\", { className: classNames.container },\n React.createElement(\"span\", { className: classNames.root }, content)));\n };\n return KeytipContentBase;\n}(React.Component));\nexport { KeytipContentBase };\n//# sourceMappingURL=KeytipContent.base.js.map","import { mergeStyleSets, HighContrastSelector } from '../../Styling';\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, disabled = props.disabled, visible = props.visible;\n return {\n container: [\n {\n backgroundColor: theme.palette.neutralDark,\n },\n disabled && {\n opacity: 0.5,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n opacity: 1,\n },\n _a),\n },\n !visible && {\n visibility: 'hidden',\n },\n ],\n root: [\n theme.fonts.medium,\n {\n textAlign: 'center',\n paddingLeft: '3px',\n paddingRight: '3px',\n backgroundColor: theme.palette.neutralDark,\n color: theme.palette.neutralLight,\n minWidth: '11px',\n lineHeight: '17px',\n height: '17px',\n display: 'inline-block',\n },\n disabled && {\n color: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\nexport var getCalloutStyles = function (props) {\n return {\n container: [],\n root: [\n {\n border: 'none',\n boxShadow: 'none',\n },\n ],\n beak: [],\n beakCurtain: [],\n calloutMain: [\n {\n backgroundColor: 'transparent',\n },\n ],\n };\n};\nexport var getCalloutOffsetStyles = function (offset) {\n return function (props) {\n return mergeStyleSets(getCalloutStyles(props), {\n root: [\n {\n // eslint-disable-next-line deprecation/deprecation\n marginLeft: offset.left || offset.x,\n // eslint-disable-next-line deprecation/deprecation\n marginTop: offset.top || offset.y,\n },\n ],\n });\n };\n};\n//# sourceMappingURL=Keytip.styles.js.map","import { styled } from '../../Utilities';\nimport { KeytipContentBase } from './KeytipContent.base';\nimport { getStyles } from './Keytip.styles';\nexport var KeytipContent = styled(KeytipContentBase, getStyles, undefined, {\n scope: 'KeytipContent',\n});\n//# sourceMappingURL=KeytipContent.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { mergeOverflows, ktpTargetFromSequences } from '../../utilities/keytips/KeytipUtils';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../ContextualMenu';\nimport { KeytipContent } from './KeytipContent';\nimport { getCalloutStyles, getCalloutOffsetStyles } from './Keytip.styles';\n/**\n * A callout corresponding to another Fabric component to describe a key sequence that will activate that component\n */\nvar Keytip = /** @class */ (function (_super) {\n __extends(Keytip, _super);\n function Keytip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Keytip.prototype.render = function () {\n var _a = this.props, keySequences = _a.keySequences, offset = _a.offset, overflowSetSequence = _a.overflowSetSequence;\n var calloutProps = this.props.calloutProps;\n var keytipTarget;\n // Take into consideration the overflow sequence\n if (overflowSetSequence) {\n keytipTarget = ktpTargetFromSequences(mergeOverflows(keySequences, overflowSetSequence));\n }\n else {\n keytipTarget = ktpTargetFromSequences(keySequences);\n }\n if (offset) {\n // Set callout to top-left corner, will be further positioned in\n // getCalloutOffsetStyles\n calloutProps = __assign(__assign({}, calloutProps), { coverTarget: true, directionalHint: DirectionalHint.topLeftEdge });\n }\n if (!calloutProps || calloutProps.directionalHint === undefined) {\n // Default callout directional hint to BottomCenter\n calloutProps = __assign(__assign({}, calloutProps), { directionalHint: DirectionalHint.bottomCenter });\n }\n return (React.createElement(Callout, __assign({}, calloutProps, { isBeakVisible: false, doNotLayer: true, minPagePadding: 0, styles: offset ? getCalloutOffsetStyles(offset) : getCalloutStyles, preventDismissOnScroll: true, target: keytipTarget }),\n React.createElement(KeytipContent, __assign({}, this.props))));\n };\n return Keytip;\n}(React.Component));\nexport { Keytip };\n//# sourceMappingURL=Keytip.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n // Label is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Label.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n __extends(LabelBase, _super);\n function LabelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LabelBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n var classNames = getClassNames(styles, {\n className: className,\n disabled: disabled,\n required: required,\n theme: theme,\n });\n return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n };\n return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n var semanticColors = theme.semanticColors;\n // Tokens\n var labelFontWeight = FontWeights.semibold;\n var labelColor = semanticColors.bodyText;\n var labelDisabledColor = semanticColors.disabledBodyText;\n var labelRequiredStarColor = semanticColors.errorText;\n return {\n root: [\n 'ms-Label',\n theme.fonts.medium,\n {\n fontWeight: labelFontWeight,\n color: labelColor,\n boxSizing: 'border-box',\n boxShadow: 'none',\n margin: 0,\n display: 'block',\n padding: '5px 0',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n disabled && {\n color: labelDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n required && {\n selectors: {\n '::after': {\n content: \"' *'\",\n color: labelRequiredStarColor,\n paddingRight: 12,\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Label.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, customizable, getDocument, setPortalAttribute, setVirtualParent, warnDeprecations, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost } from './Layer.notification';\nvar getClassNames = classNamesFunction();\nvar LayerBase = /** @class */ (function (_super) {\n __extends(LayerBase, _super);\n function LayerBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootRef = React.createRef();\n _this._createLayerElement = function () {\n var _a, _b;\n var hostId = _this.props.hostId;\n var doc = getDocument(_this._rootRef.current);\n var host = _this._getHost();\n if (!host) {\n return;\n }\n // If one was already existing, remove.\n _this._removeLayerElement();\n // eslint-disable-next-line deprecation/deprecation\n var layerElement = (_b = (_a = host.ownerDocument, (_a !== null && _a !== void 0 ? _a : doc))) === null || _b === void 0 ? void 0 : _b.createElement('div');\n if (layerElement) {\n var classNames = _this._getClassNames();\n layerElement.className = classNames.root;\n setPortalAttribute(layerElement);\n setVirtualParent(layerElement, _this._rootRef.current);\n _this.props.insertFirst ? host.insertBefore(layerElement, host.firstChild) : host.appendChild(layerElement);\n _this.setState({\n hostId: hostId,\n layerElement: layerElement,\n }, function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onLayerDidMount = _a.onLayerDidMount, onLayerMounted = _a.onLayerMounted;\n if (onLayerMounted) {\n onLayerMounted();\n }\n if (onLayerDidMount) {\n onLayerDidMount();\n }\n });\n }\n };\n _this.state = {};\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Layer', props, {\n onLayerMounted: 'onLayerDidMount',\n });\n }\n return _this;\n }\n LayerBase.prototype.componentDidMount = function () {\n var hostId = this.props.hostId;\n this._createLayerElement();\n if (hostId) {\n registerLayer(hostId, this._createLayerElement);\n }\n };\n LayerBase.prototype.render = function () {\n var layerElement = this.state.layerElement;\n var classNames = this._getClassNames();\n var eventBubblingEnabled = this.props.eventBubblingEnabled;\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: this._rootRef }, layerElement &&\n ReactDOM.createPortal(React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && _getFilteredEvents()), { className: classNames.content }), this.props.children), layerElement)));\n };\n LayerBase.prototype.componentDidUpdate = function () {\n if (this.props.hostId !== this.state.hostId) {\n this._createLayerElement();\n }\n };\n LayerBase.prototype.componentWillUnmount = function () {\n var hostId = this.props.hostId;\n this._removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, this._createLayerElement);\n }\n };\n LayerBase.prototype._removeLayerElement = function () {\n var onLayerWillUnmount = this.props.onLayerWillUnmount;\n var layerElement = this.state.layerElement;\n if (layerElement) {\n setVirtualParent(layerElement, null);\n }\n if (onLayerWillUnmount) {\n onLayerWillUnmount();\n }\n if (layerElement && layerElement.parentNode) {\n var parentNode = layerElement.parentNode;\n if (parentNode) {\n parentNode.removeChild(layerElement);\n }\n }\n };\n LayerBase.prototype._getClassNames = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !this.props.hostId,\n });\n return classNames;\n };\n LayerBase.prototype._getHost = function () {\n var _a, _b, _c, _d, _e, _f;\n var hostId = this.props.hostId;\n var doc = getDocument(this._rootRef.current);\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return _a = layerHost.rootRef.current, (_a !== null && _a !== void 0 ? _a : null);\n }\n return _c = (_b = doc) === null || _b === void 0 ? void 0 : _b.getElementById(hostId), (_c !== null && _c !== void 0 ? _c : null);\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n return _f = (defaultHostSelector ? (_d = doc) === null || _d === void 0 ? void 0 : _d.querySelector(defaultHostSelector) : (_e = doc) === null || _e === void 0 ? void 0 : _e.body), (_f !== null && _f !== void 0 ? _f : null);\n }\n };\n LayerBase.defaultProps = {\n onLayerDidMount: function () { return undefined; },\n onLayerWillUnmount: function () { return undefined; },\n };\n LayerBase = __decorate([\n customizable('Layer', ['theme', 'hostId'])\n ], LayerBase);\n return LayerBase;\n}(React.Component));\nexport { LayerBase };\nvar _onFilterEvent = function (ev) {\n // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n // event name rather than ev.bubble.\n if (ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend') {\n ev.stopPropagation();\n }\n};\nvar _filteredEventProps;\nfunction _getFilteredEvents() {\n if (!_filteredEventProps) {\n _filteredEventProps = {};\n [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseOut',\n 'onMouseUp',\n 'onTouchMove',\n 'onTouchStart',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onInvalid',\n 'onSubmit',\n ].forEach(function (name) { return (_filteredEventProps[name] = _onFilterEvent); });\n }\n return _filteredEventProps;\n}\n//# sourceMappingURL=Layer.base.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar _defaultHostSelector;\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host.\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(function (callback) { return callback(); });\n }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsey value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isNotHost && [\n classNames.rootNoHost,\n {\n position: 'fixed',\n zIndex: ZIndexes.Layer,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n visibility: 'hidden',\n },\n ],\n className,\n ],\n content: [\n classNames.content,\n {\n visibility: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { css, getId, initializeComponentRef } from '../../Utilities';\nimport { notifyHostChanged, registerLayerHost, unregisterLayerHost } from './Layer.notification';\nvar LayerHost = /** @class */ (function (_super) {\n __extends(LayerHost, _super);\n function LayerHost(props) {\n var _this = _super.call(this, props) || this;\n var layerHostId = getId();\n var _a = _this.props.id, hostId = _a === void 0 ? layerHostId : _a;\n _this.hostId = hostId;\n _this.rootRef = React.createRef();\n initializeComponentRef(_this);\n return _this;\n }\n LayerHost.prototype.notifyLayersChanged = function () {\n // Nothing, since the default implementation of Layer Host does not need to react to layer changes.\n };\n LayerHost.prototype.shouldComponentUpdate = function () {\n return false;\n };\n LayerHost.prototype.componentDidMount = function () {\n registerLayerHost(this.hostId, this);\n notifyHostChanged(this.props.id);\n };\n LayerHost.prototype.componentWillUnmount = function () {\n unregisterLayerHost(this.hostId, this);\n notifyHostChanged(this.props.id);\n };\n LayerHost.prototype.render = function () {\n return React.createElement(\"div\", __assign({}, this.props, { className: css('ms-LayerHost', this.props.className), ref: this.rootRef }));\n };\n return LayerHost;\n}(React.Component));\nexport { LayerHost };\n//# sourceMappingURL=LayerHost.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport { KeytipData } from '../../KeytipData';\nvar getClassNames = classNamesFunction();\nvar LinkBase = /** @class */ (function (_super) {\n __extends(LinkBase, _super);\n function LinkBase(props) {\n var _this = _super.call(this, props) || this;\n _this._link = React.createRef();\n _this._renderContent = function (keytipAttributes) {\n if (keytipAttributes === void 0) { keytipAttributes = {}; }\n var _a = _this.props, disabled = _a.disabled, children = _a.children, className = _a.className, href = _a.href, underline = _a.underline, theme = _a.theme, styles = _a.styles;\n var classNames = getClassNames(styles, {\n className: className,\n isButton: !href,\n isDisabled: disabled,\n isUnderlined: underline,\n theme: theme,\n });\n var RootType = _this._getRootType(_this.props);\n return (React.createElement(RootType, __assign({}, keytipAttributes, _this._adjustPropsForRootType(RootType, _this.props), { className: classNames.root, onClick: _this._onClick, ref: _this._link, \"aria-disabled\": disabled }), children));\n };\n _this._onClick = function (ev) {\n var _a = _this.props, onClick = _a.onClick, disabled = _a.disabled;\n if (disabled) {\n ev.preventDefault();\n }\n else if (onClick) {\n onClick(ev);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n LinkBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, keytipProps = _a.keytipProps;\n if (keytipProps) {\n return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: this.props['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return _this._renderContent(keytipAttributes); }));\n }\n return this._renderContent();\n };\n LinkBase.prototype.focus = function () {\n var current = this._link.current;\n if (current && current.focus) {\n current.focus();\n }\n };\n LinkBase.prototype._adjustPropsForRootType = function (RootType, props) {\n // Deconstruct the props so we remove props like `as`, `theme` and `styles`\n // as those will always be removed. We also take some props that are optional\n // based on the RootType.\n var children = props.children, as = props.as, disabled = props.disabled, target = props.target, href = props.href, theme = props.theme, getStyles = props.getStyles, styles = props.styles, componentRef = props.componentRef, keytipProps = props.keytipProps, underline = props.underline, restProps = __rest(props, [\"children\", \"as\", \"disabled\", \"target\", \"href\", \"theme\", \"getStyles\", \"styles\", \"componentRef\", \"keytipProps\", \"underline\"]);\n // RootType will be a string if we're dealing with an html component\n if (typeof RootType === 'string') {\n // Remove the disabled prop for anchor elements\n if (RootType === 'a') {\n return __assign({ target: target, href: disabled ? undefined : href }, restProps);\n }\n // Add the type='button' prop for button elements\n if (RootType === 'button') {\n return __assign({ type: 'button', disabled: disabled }, restProps);\n }\n // Remove the target and href props for all other non anchor elements\n return __assign(__assign({}, restProps), { disabled: disabled });\n }\n // Retain all props except 'as' for ReactComponents\n return __assign({ target: target, href: href, disabled: disabled }, restProps);\n };\n LinkBase.prototype._getRootType = function (props) {\n if (props.as) {\n return props.as;\n }\n if (props.href) {\n return 'a';\n }\n return 'button';\n };\n return LinkBase;\n}(React.Component));\nexport { LinkBase };\n//# sourceMappingURL=Link.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Link',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var className = props.className, isButton = props.isButton, isDisabled = props.isDisabled, isUnderlined = props.isUnderlined, theme = props.theme;\n var semanticColors = theme.semanticColors;\n // Tokens\n var linkColor = semanticColors.link;\n var linkInteractedColor = semanticColors.linkHovered;\n var linkDisabledColor = semanticColors.disabledText;\n var focusBorderColor = semanticColors.focusBorder;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: linkColor,\n outline: 'none',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n textDecoration: isUnderlined ? 'underline' : 'none',\n selectors: (_a = {\n '.ms-Fabric--isFocusVisible &:focus': {\n // Can't use getFocusStyle because it doesn't support wrapping links\n // https://github.com/microsoft/fluentui/issues/4883#issuecomment-406743543\n // Using box-shadow and outline allows the focus rect to wrap links that span multiple lines\n // and helps the focus rect avoid getting clipped.\n boxShadow: \"0 0 0 1px \" + focusBorderColor + \" inset\",\n outline: \"1px auto \" + focusBorderColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _b),\n }\n },\n _a[HighContrastSelector] = {\n // For IE high contrast mode\n borderBottom: 'none',\n },\n _a),\n },\n isButton && {\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n display: 'inline',\n margin: 0,\n overflow: 'inherit',\n padding: 0,\n textAlign: 'left',\n textOverflow: 'inherit',\n userSelect: 'text',\n borderBottom: '1px solid transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'LinkText',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n !isButton && {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n // This is mainly for MessageBar, which sets MsHighContrastAdjust: none by default\n MsHighContrastAdjust: 'auto',\n forcedColorAdjust: 'auto',\n },\n _d),\n },\n isDisabled && [\n 'is-disabled',\n {\n color: linkDisabledColor,\n cursor: 'default',\n },\n {\n selectors: {\n '&:link, &:visited': {\n pointerEvents: 'none',\n },\n },\n },\n ],\n !isDisabled && {\n selectors: {\n '&:active, &:hover, &:active:hover': {\n color: linkInteractedColor,\n textDecoration: 'underline',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'LinkText',\n },\n _e),\n },\n '&:focus': {\n color: linkColor,\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'LinkText',\n },\n _f),\n },\n },\n },\n classNames.root,\n className,\n ],\n };\n};\n//# sourceMappingURL=Link.styles.js.map","import { styled } from '../../Utilities';\nimport { LinkBase } from './Link.base';\nimport { getStyles } from './Link.styles';\nexport var Link = styled(LinkBase, getStyles, undefined, {\n scope: 'Link',\n});\n//# sourceMappingURL=Link.js.map","export var getScrollHeight = function (el) {\n if (el === undefined) {\n return 0;\n }\n var scrollHeight = 0;\n if ('scrollHeight' in el) {\n scrollHeight = el.scrollHeight;\n }\n else if ('document' in el) {\n scrollHeight = el.document.documentElement.scrollHeight;\n }\n // No need to round as scrollHeight is already rounded for us.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n return scrollHeight;\n};\nexport var getScrollYPosition = function (el) {\n if (el === undefined) {\n return 0;\n }\n var scrollPos = 0;\n if ('scrollTop' in el) {\n scrollPos = el.scrollTop;\n }\n else if ('scrollY' in el) {\n scrollPos = el.scrollY;\n }\n // Round this value to an integer as it may be fractional.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY\n return Math.ceil(scrollPos);\n};\nexport var setScrollYPosition = function (el, pos) {\n if ('scrollTop' in el) {\n el.scrollTop = pos;\n }\n else if ('scrollY' in el) {\n el.scrollTo(el.scrollX, pos);\n }\n};\n//# sourceMappingURL=scroll.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, composeRenderFunction, css, divProperties, findIndex, findScrollableParent, getNativeProps, getParent, getWindow, initializeComponentRef, } from '../../Utilities';\nimport { canUseDOM } from './utils/canUseDom';\nimport { getScrollHeight, getScrollYPosition, setScrollYPosition } from './utils/scroll';\nimport { ScrollToMode, } from './List.types';\nvar RESIZE_DELAY = 16;\nvar MIN_SCROLL_UPDATE_DELAY = 100;\nvar MAX_SCROLL_UPDATE_DELAY = 500;\nvar IDLE_DEBOUNCE_DELAY = 200;\n// The amount of time to wait before declaring that the list isn't scrolling\nvar DONE_SCROLLING_WAIT = 500;\nvar DEFAULT_ITEMS_PER_PAGE = 10;\nvar DEFAULT_PAGE_HEIGHT = 30;\nvar DEFAULT_RENDERED_WINDOWS_BEHIND = 2;\nvar DEFAULT_RENDERED_WINDOWS_AHEAD = 2;\nvar PAGE_KEY_PREFIX = 'page-';\nvar SPACER_KEY_PREFIX = 'spacer-';\nvar EMPTY_RECT = {\n top: -1,\n bottom: -1,\n left: -1,\n right: -1,\n width: 0,\n height: 0,\n};\n// Naming expensive measures so that they're named in profiles.\nvar _measurePageRect = function (element) { return element.getBoundingClientRect(); };\nvar _measureSurfaceRect = _measurePageRect;\nvar _measureScrollRect = _measurePageRect;\n/**\n * The List renders virtualized pages of items. Each page's item count is determined by the getItemCountForPage callback\n * if provided by the caller, or 10 as default. Each page's height is determined by the getPageHeight callback if\n * provided by the caller, or by cached measurements if available, or by a running average, or a default fallback.\n *\n * The algorithm for rendering pages works like this:\n *\n * 1. Predict visible pages based on \"current measure data\" (page heights, surface position, visible window)\n * 2. If changes are necessary, apply changes (add/remove pages)\n * 3. For pages that are added, measure the page heights if we need to using getBoundingClientRect\n * 4. If measurements don't match predictions, update measure data and goto step 1 asynchronously\n *\n * Measuring too frequently can pull performance down significantly. To compensate, we cache measured values so that\n * we can avoid re-measuring during operations that should not alter heights, like scrolling.\n *\n * To optimize glass rendering performance, onShouldVirtualize can be set. When onShouldVirtualize return false,\n * List will run in fast mode (not virtualized) to render all items without any measurements to improve page load time.\n * And we start doing measurements and rendering in virtualized mode when items grows larger than this threshold.\n *\n * However, certain operations can make measure data stale. For example, resizing the list, or passing in new props,\n * or forcing an update change cause pages to shrink/grow. When these operations occur, we increment a measureVersion\n * number, which we associate with cached measurements and use to determine if a remeasure should occur.\n */\nvar List = /** @class */ (function (_super) {\n __extends(List, _super);\n function List(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._surface = React.createRef();\n _this._pageRefs = {};\n _this._getDerivedStateFromProps = function (nextProps, previousState) {\n if (nextProps.items !== _this.props.items ||\n nextProps.renderCount !== _this.props.renderCount ||\n nextProps.startIndex !== _this.props.startIndex ||\n nextProps.version !== _this.props.version ||\n !previousState.hasMounted) {\n if (!canUseDOM()) {\n return previousState;\n }\n // We have received new items so we want to make sure that initially we only render a single window to\n // fill the currently visible rect, and then later render additional windows.\n _this._resetRequiredWindows();\n _this._requiredRect = null;\n _this._measureVersion++;\n _this._invalidatePageCache();\n return _this._updatePages(nextProps, previousState);\n }\n return previousState;\n };\n _this._onRenderRoot = function (props) {\n var rootRef = props.rootRef, surfaceElement = props.surfaceElement, divProps = props.divProps;\n return (React.createElement(\"div\", __assign({ ref: rootRef }, divProps), surfaceElement));\n };\n _this._onRenderSurface = function (props) {\n var surfaceRef = props.surfaceRef, pageElements = props.pageElements, divProps = props.divProps;\n return (React.createElement(\"div\", __assign({ ref: surfaceRef }, divProps), pageElements));\n };\n _this._onRenderPage = function (pageProps, defaultRender) {\n var _a, _b;\n var _c = _this.props, onRenderCell = _c.onRenderCell, onRenderCellConditional = _c.onRenderCellConditional, role = _c.role;\n var _d = pageProps.page, _e = _d.items, items = _e === void 0 ? [] : _e, startIndex = _d.startIndex, divProps = __rest(pageProps, [\"page\"]);\n // only assign list item role if no role is assigned\n var cellRole = role === undefined ? 'listitem' : 'presentation';\n var cells = [];\n for (var i = 0; i < items.length; i++) {\n var index = startIndex + i;\n var item = items[i];\n var itemKey = _this.props.getKey ? _this.props.getKey(item, index) : item && item.key;\n if (itemKey === null || itemKey === undefined) {\n itemKey = index;\n }\n var renderCell = (onRenderCellConditional !== null && onRenderCellConditional !== void 0 ? onRenderCellConditional : onRenderCell);\n var cell = (_b = (_a = renderCell) === null || _a === void 0 ? void 0 : _a(item, index, !_this.props.ignoreScrollingState ? _this.state.isScrolling : undefined), (_b !== null && _b !== void 0 ? _b : null));\n if (!onRenderCellConditional || cell) {\n cells.push(React.createElement(\"div\", { role: cellRole, className: 'ms-List-cell', key: itemKey, \"data-list-index\": index, \"data-automationid\": \"ListCell\" }, cell));\n }\n }\n return React.createElement(\"div\", __assign({}, divProps), cells);\n };\n initializeComponentRef(_this);\n _this.state = {\n pages: [],\n isScrolling: false,\n getDerivedStateFromProps: _this._getDerivedStateFromProps,\n hasMounted: false,\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._estimatedPageHeight = 0;\n _this._totalEstimates = 0;\n _this._requiredWindowsAhead = 0;\n _this._requiredWindowsBehind = 0;\n // Track the measure version for everything.\n _this._measureVersion = 0;\n // Ensure that scrolls are lazy updated.\n _this._onAsyncScroll = _this._async.debounce(_this._onAsyncScroll, MIN_SCROLL_UPDATE_DELAY, {\n leading: false,\n maxWait: MAX_SCROLL_UPDATE_DELAY,\n });\n _this._onAsyncIdle = _this._async.debounce(_this._onAsyncIdle, IDLE_DEBOUNCE_DELAY, {\n leading: false,\n });\n _this._onAsyncResize = _this._async.debounce(_this._onAsyncResize, RESIZE_DELAY, {\n leading: false,\n });\n _this._onScrollingDone = _this._async.debounce(_this._onScrollingDone, DONE_SCROLLING_WAIT, {\n leading: false,\n });\n _this._cachedPageHeights = {};\n _this._estimatedPageHeight = 0;\n _this._focusedIndex = -1;\n _this._pageCache = {};\n return _this;\n }\n List.getDerivedStateFromProps = function (nextProps, previousState) {\n return previousState.getDerivedStateFromProps(nextProps, previousState);\n };\n Object.defineProperty(List.prototype, \"pageRefs\", {\n get: function () {\n return this._pageRefs;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Scroll to the given index. By default will bring the page the specified item is on into the view. If a callback\n * to measure the height of an individual item is specified, will only scroll to bring the specific item into view.\n *\n * Note: with items of variable height and no passed in `getPageHeight` method, the list might jump after scrolling\n * when windows before/ahead are being rendered, and the estimated height is replaced using actual elements.\n *\n * @param index - Index of item to scroll to\n * @param measureItem - Optional callback to measure the height of an individual item\n * @param scrollToMode - Optional defines where in the window the item should be positioned to when scrolling\n */\n List.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n if (scrollToMode === void 0) { scrollToMode = ScrollToMode.auto; }\n var startIndex = this.props.startIndex;\n var renderCount = this._getRenderCount();\n var endIndex = startIndex + renderCount;\n var allowedRect = this._allowedRect;\n var scrollTop = 0;\n var itemsPerPage = 1;\n for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {\n var pageSpecification = this._getPageSpecification(this.props, itemIndex, allowedRect);\n var pageHeight = pageSpecification.height;\n itemsPerPage = pageSpecification.itemCount;\n var requestedIndexIsInPage = itemIndex <= index && itemIndex + itemsPerPage > index;\n if (requestedIndexIsInPage) {\n // We have found the page. If the user provided a way to measure an individual item, we will try to scroll in\n // just the given item, otherwise we'll only bring the page into view\n if (measureItem && this._scrollElement) {\n var scrollRect = _measureScrollRect(this._scrollElement);\n var scrollPosition = getScrollYPosition(this._scrollElement);\n var scrollWindow = {\n top: scrollPosition,\n bottom: scrollPosition + scrollRect.height,\n };\n // Adjust for actual item position within page\n var itemPositionWithinPage = index - itemIndex;\n for (var itemIndexInPage = 0; itemIndexInPage < itemPositionWithinPage; ++itemIndexInPage) {\n scrollTop += measureItem(itemIndex + itemIndexInPage);\n }\n var scrollBottom = scrollTop + measureItem(index);\n // If scrollToMode is set to something other than auto, we always want to\n // scroll the item into a specific position on the page.\n switch (scrollToMode) {\n case ScrollToMode.top:\n setScrollYPosition(this._scrollElement, scrollTop);\n return;\n case ScrollToMode.bottom:\n setScrollYPosition(this._scrollElement, scrollBottom - scrollRect.height);\n return;\n case ScrollToMode.center:\n setScrollYPosition(this._scrollElement, (scrollTop + scrollBottom - scrollRect.height) / 2);\n return;\n case ScrollToMode.auto:\n default:\n break;\n }\n var itemIsFullyVisible = scrollTop >= scrollWindow.top && scrollBottom <= scrollWindow.bottom;\n if (itemIsFullyVisible) {\n // Item is already visible, do nothing.\n return;\n }\n var itemIsPartiallyAbove = scrollTop < scrollWindow.top;\n var itemIsPartiallyBelow = scrollBottom > scrollWindow.bottom;\n if (itemIsPartiallyAbove) {\n // We will just scroll to 'scrollTop'\n // .------. - scrollTop\n // |Item |\n // | .----|-. - scrollWindow.top\n // '------' |\n // | |\n // '------'\n }\n else if (itemIsPartiallyBelow) {\n // Adjust scrollTop position to just bring in the element\n // .------. - scrollTop\n // | |\n // | .------.\n // '-|----' | - scrollWindow.bottom\n // | Item |\n // '------' - scrollBottom\n scrollTop = scrollBottom - scrollRect.height;\n }\n }\n if (this._scrollElement) {\n setScrollYPosition(this._scrollElement, scrollTop);\n }\n return;\n }\n scrollTop += pageHeight;\n }\n };\n List.prototype.getStartItemIndexInView = function (measureItem) {\n var pages = this.state.pages || [];\n for (var _i = 0, pages_1 = pages; _i < pages_1.length; _i++) {\n var page = pages_1[_i];\n var isPageVisible = !page.isSpacer && (this._scrollTop || 0) >= page.top && (this._scrollTop || 0) <= page.top + page.height;\n if (isPageVisible) {\n if (!measureItem) {\n var rowHeight = Math.floor(page.height / page.itemCount);\n return page.startIndex + Math.floor((this._scrollTop - page.top) / rowHeight);\n }\n else {\n var totalRowHeight = 0;\n for (var itemIndex = page.startIndex; itemIndex < page.startIndex + page.itemCount; itemIndex++) {\n var rowHeight = measureItem(itemIndex);\n if (page.top + totalRowHeight <= this._scrollTop &&\n this._scrollTop < page.top + totalRowHeight + rowHeight) {\n return itemIndex;\n }\n else {\n totalRowHeight += rowHeight;\n }\n }\n }\n }\n }\n return 0;\n };\n List.prototype.componentDidMount = function () {\n this.setState({ hasMounted: true });\n this._scrollElement = findScrollableParent(this._root.current);\n this._scrollTop = 0;\n if (!this.props.getPageHeight) {\n var heightsChanged = this._updatePageMeasurements(this.state.pages);\n if (heightsChanged) {\n this._materializedRect = null;\n this.setState(this._updatePages(this.props, this.state));\n }\n }\n this._measureVersion++;\n this._events.on(window, 'resize', this._onAsyncResize);\n if (this._root.current) {\n this._events.on(this._root.current, 'focus', this._onFocus, true);\n }\n if (this._scrollElement) {\n this._events.on(this._scrollElement, 'scroll', this._onScroll);\n this._events.on(this._scrollElement, 'scroll', this._onAsyncScroll);\n }\n };\n List.prototype.componentDidUpdate = function (previousProps, previousState) {\n // Multiple updates may have been queued, so the callback will reflect all of them.\n // Re-fetch the current props and states to avoid using a stale props or state captured in the closure.\n var finalProps = this.props;\n var finalState = this.state;\n if (this.state.pagesVersion !== previousState.pagesVersion) {\n // If we weren't provided with the page height, measure the pages\n if (!finalProps.getPageHeight) {\n // If measured version is invalid since we've updated the DOM\n var heightsChanged = this._updatePageMeasurements(finalState.pages);\n // On first render, we should re-measure so that we don't get a visual glitch.\n if (heightsChanged) {\n this._materializedRect = null;\n this._onAsyncScroll();\n }\n else {\n // Enqueue an idle bump.\n this._onAsyncIdle();\n }\n }\n else {\n // Enqueue an idle bump\n this._onAsyncIdle();\n }\n // Notify the caller that rendering the new pages has completed\n if (finalProps.onPagesUpdated) {\n finalProps.onPagesUpdated(finalState.pages);\n }\n }\n };\n List.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n delete this._scrollElement;\n };\n List.prototype.shouldComponentUpdate = function (newProps, newState) {\n var oldPages = this.state.pages;\n var newPages = newState.pages;\n var shouldComponentUpdate = false;\n // Update if the page stops scrolling\n if (!newState.isScrolling && this.state.isScrolling) {\n return true;\n }\n if (newProps.version !== this.props.version) {\n return true;\n }\n if (newProps.className !== this.props.className) {\n return true;\n }\n if (newProps.items === this.props.items && oldPages.length === newPages.length) {\n for (var i = 0; i < oldPages.length; i++) {\n var oldPage = oldPages[i];\n var newPage = newPages[i];\n if (oldPage.key !== newPage.key || oldPage.itemCount !== newPage.itemCount) {\n shouldComponentUpdate = true;\n break;\n }\n }\n }\n else {\n shouldComponentUpdate = true;\n }\n return shouldComponentUpdate;\n };\n List.prototype.forceUpdate = function () {\n this._invalidatePageCache();\n // Ensure that when the list is force updated we update the pages first before render.\n this._updateRenderRects(this.props, this.state, true);\n this.setState(this._updatePages(this.props, this.state));\n this._measureVersion++;\n _super.prototype.forceUpdate.call(this);\n };\n /**\n * Get the current height the list and it's pages.\n */\n List.prototype.getTotalListHeight = function () {\n return this._surfaceRect.height;\n };\n List.prototype.render = function () {\n var _a = this.props, className = _a.className, _b = _a.role, role = _b === void 0 ? 'list' : _b, onRenderSurface = _a.onRenderSurface, onRenderRoot = _a.onRenderRoot;\n var _c = this.state.pages, pages = _c === void 0 ? [] : _c;\n var pageElements = [];\n var divProps = getNativeProps(this.props, divProperties);\n for (var _i = 0, pages_2 = pages; _i < pages_2.length; _i++) {\n var page = pages_2[_i];\n pageElements.push(this._renderPage(page));\n }\n var finalOnRenderSurface = onRenderSurface\n ? composeRenderFunction(onRenderSurface, this._onRenderSurface)\n : this._onRenderSurface;\n var finalOnRenderRoot = onRenderRoot\n ? composeRenderFunction(onRenderRoot, this._onRenderRoot)\n : this._onRenderRoot;\n return finalOnRenderRoot({\n rootRef: this._root,\n pages: pages,\n surfaceElement: finalOnRenderSurface({\n surfaceRef: this._surface,\n pages: pages,\n pageElements: pageElements,\n divProps: {\n role: 'presentation',\n className: 'ms-List-surface',\n },\n }),\n divProps: __assign(__assign({}, divProps), { className: css('ms-List', className), role: pageElements.length > 0 ? role : undefined, 'aria-label': pageElements.length > 0 ? divProps['aria-label'] : undefined }),\n });\n };\n List.prototype._shouldVirtualize = function (props) {\n if (props === void 0) { props = this.props; }\n var onShouldVirtualize = props.onShouldVirtualize;\n return !onShouldVirtualize || onShouldVirtualize(props);\n };\n /**\n * when props.items change or forceUpdate called, throw away cached pages\n */\n List.prototype._invalidatePageCache = function () {\n this._pageCache = {};\n };\n List.prototype._renderPage = function (page) {\n var _this = this;\n var usePageCache = this.props.usePageCache;\n var cachedPage;\n // if usePageCache is set and cached page element can be found, just return cached page\n if (usePageCache) {\n cachedPage = this._pageCache[page.key];\n if (cachedPage && cachedPage.pageElement) {\n return cachedPage.pageElement;\n }\n }\n var pageStyle = this._getPageStyle(page);\n var _a = this.props.onRenderPage, onRenderPage = _a === void 0 ? this._onRenderPage : _a;\n var pageElement = onRenderPage({\n page: page,\n className: 'ms-List-page',\n key: page.key,\n ref: function (newRef) {\n _this._pageRefs[page.key] = newRef;\n },\n style: pageStyle,\n role: 'presentation',\n }, this._onRenderPage);\n // cache the first page for now since it is re-rendered a lot times unnecessarily.\n // todo: a more aggresive caching mechanism is to cache pages constaining the items not changed.\n // now we re-render pages too frequently, for example, props.items increased from 30 to 60, although the\n // first 30 items did not change, we still re-rendered all of them in this props.items change.\n if (usePageCache && page.startIndex === 0) {\n this._pageCache[page.key] = {\n page: page,\n pageElement: pageElement,\n };\n }\n return pageElement;\n };\n /** Generate the style object for the page. */\n List.prototype._getPageStyle = function (page) {\n var getPageStyle = this.props.getPageStyle;\n return __assign(__assign({}, (getPageStyle ? getPageStyle(page) : {})), (!page.items\n ? {\n height: page.height,\n }\n : {}));\n };\n /** Track the last item index focused so that we ensure we keep it rendered. */\n List.prototype._onFocus = function (ev) {\n var target = ev.target;\n while (target !== this._surface.current) {\n var indexString = target.getAttribute('data-list-index');\n if (indexString) {\n this._focusedIndex = Number(indexString);\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * Called synchronously to reset the required render range to 0 on scrolling. After async scroll has executed,\n * we will call onAsyncIdle which will reset it back to it's correct value.\n */\n List.prototype._onScroll = function () {\n if (!this.state.isScrolling && !this.props.ignoreScrollingState) {\n this.setState({ isScrolling: true });\n }\n this._resetRequiredWindows();\n this._onScrollingDone();\n };\n List.prototype._resetRequiredWindows = function () {\n this._requiredWindowsAhead = 0;\n this._requiredWindowsBehind = 0;\n };\n /**\n * Debounced method to asynchronously update the visible region on a scroll event.\n */\n List.prototype._onAsyncScroll = function () {\n this._updateRenderRects(this.props, this.state);\n // Only update pages when the visible rect falls outside of the materialized rect.\n if (!this._materializedRect || !_isContainedWithin(this._requiredRect, this._materializedRect)) {\n this.setState(this._updatePages(this.props, this.state));\n }\n else {\n // console.log('requiredRect contained in materialized', this._requiredRect, this._materializedRect);\n }\n };\n /**\n * This is an async debounced method that will try and increment the windows we render. If we can increment\n * either, we increase the amount we render and re-evaluate.\n */\n List.prototype._onAsyncIdle = function () {\n var _a = this.props, renderedWindowsAhead = _a.renderedWindowsAhead, renderedWindowsBehind = _a.renderedWindowsBehind;\n var _b = this, requiredWindowsAhead = _b._requiredWindowsAhead, requiredWindowsBehind = _b._requiredWindowsBehind;\n var windowsAhead = Math.min(renderedWindowsAhead, requiredWindowsAhead + 1);\n var windowsBehind = Math.min(renderedWindowsBehind, requiredWindowsBehind + 1);\n if (windowsAhead !== requiredWindowsAhead || windowsBehind !== requiredWindowsBehind) {\n // console.log('idling', windowsBehind, windowsAhead);\n this._requiredWindowsAhead = windowsAhead;\n this._requiredWindowsBehind = windowsBehind;\n this._updateRenderRects(this.props, this.state);\n this.setState(this._updatePages(this.props, this.state));\n }\n if (renderedWindowsAhead > windowsAhead || renderedWindowsBehind > windowsBehind) {\n // Async increment on next tick.\n this._onAsyncIdle();\n }\n };\n /**\n * Function to call when the list is done scrolling.\n * This function is debounced.\n */\n List.prototype._onScrollingDone = function () {\n if (!this.props.ignoreScrollingState) {\n this.setState({ isScrolling: false });\n }\n };\n List.prototype._onAsyncResize = function () {\n this.forceUpdate();\n };\n List.prototype._updatePages = function (nextProps, previousState) {\n // console.log('updating pages');\n if (!this._requiredRect) {\n this._updateRenderRects(nextProps, previousState);\n }\n var newListState = this._buildPages(nextProps, previousState);\n var oldListPages = previousState.pages;\n this._notifyPageChanges(oldListPages, newListState.pages, this.props);\n return __assign(__assign(__assign({}, previousState), newListState), { pagesVersion: {} });\n };\n /**\n * Notify consumers that the rendered pages have changed\n * @param oldPages - The old pages\n * @param newPages - The new pages\n * @param props - The props to use\n */\n List.prototype._notifyPageChanges = function (oldPages, newPages, props) {\n var onPageAdded = props.onPageAdded, onPageRemoved = props.onPageRemoved;\n if (onPageAdded || onPageRemoved) {\n var renderedIndexes = {};\n for (var _i = 0, oldPages_1 = oldPages; _i < oldPages_1.length; _i++) {\n var page = oldPages_1[_i];\n if (page.items) {\n renderedIndexes[page.startIndex] = page;\n }\n }\n for (var _a = 0, newPages_1 = newPages; _a < newPages_1.length; _a++) {\n var page = newPages_1[_a];\n if (page.items) {\n if (!renderedIndexes[page.startIndex]) {\n this._onPageAdded(page);\n }\n else {\n delete renderedIndexes[page.startIndex];\n }\n }\n }\n for (var index in renderedIndexes) {\n if (renderedIndexes.hasOwnProperty(index)) {\n this._onPageRemoved(renderedIndexes[index]);\n }\n }\n }\n };\n List.prototype._updatePageMeasurements = function (pages) {\n var heightChanged = false;\n // when not in virtualize mode, we render all the items without page measurement\n if (!this._shouldVirtualize()) {\n return heightChanged;\n }\n for (var i = 0; i < pages.length; i++) {\n var page = pages[i];\n if (page.items) {\n heightChanged = this._measurePage(page) || heightChanged;\n }\n }\n return heightChanged;\n };\n /**\n * Given a page, measure its dimensions, update cache.\n * @returns True if the height has changed.\n */\n List.prototype._measurePage = function (page) {\n var hasChangedHeight = false;\n var pageElement = this._pageRefs[page.key];\n var cachedHeight = this._cachedPageHeights[page.startIndex];\n // console.log(' * measure attempt', page.startIndex, cachedHeight);\n if (pageElement &&\n this._shouldVirtualize() &&\n (!cachedHeight || cachedHeight.measureVersion !== this._measureVersion)) {\n var newClientRect = {\n width: pageElement.clientWidth,\n height: pageElement.clientHeight,\n };\n if (newClientRect.height || newClientRect.width) {\n hasChangedHeight = page.height !== newClientRect.height;\n // console.warn(' *** expensive page measure', page.startIndex, page.height, newClientRect.height);\n page.height = newClientRect.height;\n this._cachedPageHeights[page.startIndex] = {\n height: newClientRect.height,\n measureVersion: this._measureVersion,\n };\n this._estimatedPageHeight = Math.round((this._estimatedPageHeight * this._totalEstimates + newClientRect.height) / (this._totalEstimates + 1));\n this._totalEstimates++;\n }\n }\n return hasChangedHeight;\n };\n /** Called when a page has been added to the DOM. */\n List.prototype._onPageAdded = function (page) {\n var onPageAdded = this.props.onPageAdded;\n // console.log('page added', page.startIndex, this.state.pages.map(page => page.key).join(', '));\n if (onPageAdded) {\n onPageAdded(page);\n }\n };\n /** Called when a page has been removed from the DOM. */\n List.prototype._onPageRemoved = function (page) {\n var onPageRemoved = this.props.onPageRemoved;\n // console.log(' --- page removed', page.startIndex, this.state.pages.map(page => page.key).join(', '));\n if (onPageRemoved) {\n onPageRemoved(page);\n }\n };\n /** Build up the pages that should be rendered. */\n List.prototype._buildPages = function (props, state) {\n var renderCount = props.renderCount;\n var items = props.items, startIndex = props.startIndex, getPageHeight = props.getPageHeight;\n renderCount = this._getRenderCount(props);\n var materializedRect = __assign({}, EMPTY_RECT);\n var pages = [];\n var itemsPerPage = 1;\n var pageTop = 0;\n var currentSpacer = null;\n var focusedIndex = this._focusedIndex;\n var endIndex = startIndex + renderCount;\n var shouldVirtualize = this._shouldVirtualize(props);\n // First render is very important to track; when we render cells, we have no idea of estimated page height.\n // So we should default to rendering only the first page so that we can get information.\n // However if the user provides a measure function, let's just assume they know the right heights.\n var isFirstRender = this._estimatedPageHeight === 0 && !getPageHeight;\n var allowedRect = this._allowedRect;\n var _loop_1 = function (itemIndex) {\n var pageSpecification = this_1._getPageSpecification(props, itemIndex, allowedRect);\n var pageHeight = pageSpecification.height;\n var pageData = pageSpecification.data;\n var key = pageSpecification.key;\n itemsPerPage = pageSpecification.itemCount;\n var pageBottom = pageTop + pageHeight - 1;\n var isPageRendered = findIndex(state.pages, function (page) { return !!page.items && page.startIndex === itemIndex; }) > -1;\n var isPageInAllowedRange = !allowedRect || (pageBottom >= allowedRect.top && pageTop <= allowedRect.bottom);\n var isPageInRequiredRange = !this_1._requiredRect || (pageBottom >= this_1._requiredRect.top && pageTop <= this_1._requiredRect.bottom);\n var isPageVisible = (!isFirstRender && (isPageInRequiredRange || (isPageInAllowedRange && isPageRendered))) || !shouldVirtualize;\n var isPageFocused = focusedIndex >= itemIndex && focusedIndex < itemIndex + itemsPerPage;\n var isFirstPage = itemIndex === startIndex;\n // console.log('building page', itemIndex, 'pageTop: ' + pageTop, 'inAllowed: ' +\n // isPageInAllowedRange, 'inRequired: ' + isPageInRequiredRange);\n // Only render whats visible, focused, or first page,\n // or when running in fast rendering mode (not in virtualized mode), we render all current items in pages\n if (isPageVisible || isPageFocused || isFirstPage) {\n if (currentSpacer) {\n pages.push(currentSpacer);\n currentSpacer = null;\n }\n var itemsInPage = Math.min(itemsPerPage, endIndex - itemIndex);\n var newPage = this_1._createPage(key, items.slice(itemIndex, itemIndex + itemsInPage), itemIndex, undefined, undefined, pageData);\n newPage.top = pageTop;\n newPage.height = pageHeight;\n if (this_1._visibleRect && this_1._visibleRect.bottom) {\n newPage.isVisible = pageBottom >= this_1._visibleRect.top && pageTop <= this_1._visibleRect.bottom;\n }\n pages.push(newPage);\n if (isPageInRequiredRange && this_1._allowedRect) {\n _mergeRect(materializedRect, {\n top: pageTop,\n bottom: pageBottom,\n height: pageHeight,\n left: allowedRect.left,\n right: allowedRect.right,\n width: allowedRect.width,\n });\n }\n }\n else {\n if (!currentSpacer) {\n currentSpacer = this_1._createPage(SPACER_KEY_PREFIX + itemIndex, undefined, itemIndex, 0, undefined, pageData, true /*isSpacer*/);\n }\n currentSpacer.height = (currentSpacer.height || 0) + (pageBottom - pageTop) + 1;\n currentSpacer.itemCount += itemsPerPage;\n }\n pageTop += pageBottom - pageTop + 1;\n // in virtualized mode, we render need to render first page then break and measure,\n // otherwise, we render all items without measurement to make rendering fast\n if (isFirstRender && shouldVirtualize) {\n return \"break\";\n }\n };\n var this_1 = this;\n for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {\n var state_1 = _loop_1(itemIndex);\n if (state_1 === \"break\")\n break;\n }\n if (currentSpacer) {\n currentSpacer.key = SPACER_KEY_PREFIX + 'end';\n pages.push(currentSpacer);\n }\n this._materializedRect = materializedRect;\n // console.log('materialized: ', materializedRect);\n return __assign(__assign({}, state), { pages: pages, measureVersion: this._measureVersion });\n };\n List.prototype._getPageSpecification = function (props, itemIndex, visibleRect) {\n var getPageSpecification = props.getPageSpecification;\n if (getPageSpecification) {\n var pageData = getPageSpecification(itemIndex, visibleRect);\n var _a = pageData.itemCount, itemCount = _a === void 0 ? this._getItemCountForPage(itemIndex, visibleRect) : _a;\n var _b = pageData.height, height = _b === void 0 ? this._getPageHeight(itemIndex, visibleRect, itemCount) : _b;\n return {\n itemCount: itemCount,\n height: height,\n data: pageData.data,\n key: pageData.key,\n };\n }\n else {\n var itemCount = this._getItemCountForPage(itemIndex, visibleRect);\n return {\n itemCount: itemCount,\n height: this._getPageHeight(itemIndex, visibleRect, itemCount),\n };\n }\n };\n /**\n * Get the pixel height of a give page. Will use the props getPageHeight first, and if not provided, fallback to\n * cached height, or estimated page height, or default page height.\n */\n List.prototype._getPageHeight = function (itemIndex, visibleRect, itemsPerPage) {\n if (this.props.getPageHeight) {\n return this.props.getPageHeight(itemIndex, visibleRect, itemsPerPage);\n }\n else {\n var cachedHeight = this._cachedPageHeights[itemIndex];\n return cachedHeight ? cachedHeight.height : this._estimatedPageHeight || DEFAULT_PAGE_HEIGHT;\n }\n };\n List.prototype._getItemCountForPage = function (itemIndex, visibileRect) {\n var itemsPerPage = this.props.getItemCountForPage\n ? this.props.getItemCountForPage(itemIndex, visibileRect)\n : DEFAULT_ITEMS_PER_PAGE;\n return itemsPerPage ? itemsPerPage : DEFAULT_ITEMS_PER_PAGE;\n };\n List.prototype._createPage = function (pageKey, items, startIndex, count, style, data, isSpacer) {\n if (startIndex === void 0) { startIndex = -1; }\n if (count === void 0) { count = items ? items.length : 0; }\n if (style === void 0) { style = {}; }\n pageKey = pageKey || PAGE_KEY_PREFIX + startIndex;\n var cachedPage = this._pageCache[pageKey];\n if (cachedPage && cachedPage.page) {\n return cachedPage.page;\n }\n return {\n key: pageKey,\n startIndex: startIndex,\n itemCount: count,\n items: items,\n style: style,\n top: 0,\n height: 0,\n data: data,\n isSpacer: isSpacer || false,\n };\n };\n List.prototype._getRenderCount = function (props) {\n var _a = props || this.props, items = _a.items, startIndex = _a.startIndex, renderCount = _a.renderCount;\n return renderCount === undefined ? (items ? items.length - startIndex : 0) : renderCount;\n };\n /** Calculate the visible rect within the list where top: 0 and left: 0 is the top/left of the list. */\n List.prototype._updateRenderRects = function (props, state, forceUpdate) {\n var renderedWindowsAhead = props.renderedWindowsAhead, renderedWindowsBehind = props.renderedWindowsBehind;\n var pages = state.pages;\n // when not in virtualize mode, we render all items without measurement to optimize page rendering perf\n if (!this._shouldVirtualize(props)) {\n return;\n }\n var surfaceRect = this._surfaceRect || __assign({}, EMPTY_RECT);\n var scrollHeight = getScrollHeight(this._scrollElement);\n var scrollTop = getScrollYPosition(this._scrollElement);\n // WARNING: EXPENSIVE CALL! We need to know the surface top relative to the window.\n // This needs to be called to recalculate when new pages should be loaded.\n // We check to see how far we've scrolled and if it's further than a third of a page we run it again.\n if (this._surface.current &&\n (forceUpdate ||\n !pages ||\n !this._surfaceRect ||\n !scrollHeight ||\n scrollHeight !== this._scrollHeight ||\n Math.abs(this._scrollTop - scrollTop) > this._estimatedPageHeight / 3)) {\n surfaceRect = this._surfaceRect = _measureSurfaceRect(this._surface.current);\n this._scrollTop = scrollTop;\n }\n // If the scroll height has changed, something in the container likely resized and\n // we should redo the page heights incase their content resized.\n if (forceUpdate || !scrollHeight || scrollHeight !== this._scrollHeight) {\n this._measureVersion++;\n }\n this._scrollHeight = scrollHeight || 0;\n // If the surface is above the container top or below the container bottom, or if this is not the first\n // render return empty rect.\n // The first time the list gets rendered we need to calculate the rectangle. The width of the list is\n // used to calculate the width of the list items.\n var visibleTop = Math.max(0, -surfaceRect.top);\n var win = getWindow(this._root.current);\n var visibleRect = {\n top: visibleTop,\n left: surfaceRect.left,\n bottom: visibleTop + win.innerHeight,\n right: surfaceRect.right,\n width: surfaceRect.width,\n height: win.innerHeight,\n };\n // The required/allowed rects are adjusted versions of the visible rect.\n this._requiredRect = _expandRect(visibleRect, this._requiredWindowsBehind, this._requiredWindowsAhead);\n this._allowedRect = _expandRect(visibleRect, renderedWindowsBehind, renderedWindowsAhead);\n // store the visible rect for later use.\n this._visibleRect = visibleRect;\n };\n List.defaultProps = {\n startIndex: 0,\n onRenderCell: function (item, index, containsFocus) { return React.createElement(React.Fragment, null, (item && item.name) || ''); },\n onRenderCellConditional: undefined,\n renderedWindowsAhead: DEFAULT_RENDERED_WINDOWS_AHEAD,\n renderedWindowsBehind: DEFAULT_RENDERED_WINDOWS_BEHIND,\n };\n return List;\n}(React.Component));\nexport { List };\nfunction _expandRect(rect, pagesBefore, pagesAfter) {\n var top = rect.top - pagesBefore * rect.height;\n var height = rect.height + (pagesBefore + pagesAfter) * rect.height;\n return {\n top: top,\n bottom: top + height,\n height: height,\n left: rect.left,\n right: rect.right,\n width: rect.width,\n };\n}\nfunction _isContainedWithin(innerRect, outerRect) {\n return (innerRect.top >= outerRect.top &&\n innerRect.left >= outerRect.left &&\n innerRect.bottom <= outerRect.bottom &&\n innerRect.right <= outerRect.right);\n}\nfunction _mergeRect(targetRect, newRect) {\n targetRect.top = newRect.top < targetRect.top || targetRect.top === -1 ? newRect.top : targetRect.top;\n targetRect.left = newRect.left < targetRect.left || targetRect.left === -1 ? newRect.left : targetRect.left;\n targetRect.bottom =\n newRect.bottom > targetRect.bottom || targetRect.bottom === -1 ? newRect.bottom : targetRect.bottom;\n targetRect.right = newRect.right > targetRect.right || targetRect.right === -1 ? newRect.right : targetRect.right;\n targetRect.width = targetRect.right - targetRect.left + 1;\n targetRect.height = targetRect.bottom - targetRect.top + 1;\n return targetRect;\n}\n//# sourceMappingURL=List.js.map","/**\n * Verifies if an application can use DOM.\n */\nexport function canUseDOM() {\n return (typeof window !== 'undefined' &&\n !!(window.document &&\n // eslint-disable-next-line deprecation/deprecation\n window.document.createElement));\n}\n//# sourceMappingURL=canUseDom.js.map","/**\n * {@docCategory List}\n */\nexport var ScrollToMode = {\n /**\n * Does not make any consideration to where in the viewport the item should align to.\n */\n auto: 0,\n /**\n * Attempts to scroll the list so the top of the desired item is aligned with the top of the viewport.\n */\n top: 1,\n /**\n * Attempts to scroll the list so the bottom of the desired item is aligned with the bottom of the viewport.\n */\n bottom: 2,\n /**\n * Attempts to scroll the list so the desired item is in the exact center of the viewport.\n */\n center: 3,\n};\n//# sourceMappingURL=List.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, AutoScroll, classNamesFunction, findScrollableParent, getDistanceBetweenPoints, getRTL, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n// We want to make the marquee selection start when the user drags a minimum distance. Otherwise we'd start\n// the drag even if they just click an item without moving.\nvar MIN_DRAG_DISTANCE = 5;\n/**\n * MarqueeSelection component abstracts managing a draggable rectangle which sets items selected/not selected.\n * Elements which have data-selectable-index attributes are queried and measured once to determine if they\n * fall within the bounds of the rectangle. The measure is memoized during the drag as a performance optimization\n * so if the items change sizes while dragging, that could cause incorrect results.\n */\nvar MarqueeSelectionBase = /** @class */ (function (_super) {\n __extends(MarqueeSelectionBase, _super);\n function MarqueeSelectionBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._onMouseDown = function (ev) {\n var _a = _this.props, isEnabled = _a.isEnabled, onShouldStartSelection = _a.onShouldStartSelection;\n // Ensure the mousedown is within the boundaries of the target. If not, it may have been a click on a scrollbar.\n if (_this._isMouseEventOnScrollbar(ev)) {\n return;\n }\n if (_this._isInSelectionToggle(ev)) {\n return;\n }\n if (!_this._isTouch &&\n isEnabled &&\n !_this._isDragStartInSelection(ev) &&\n (!onShouldStartSelection || onShouldStartSelection(ev))) {\n if (_this._scrollableSurface && ev.button === 0 && _this._root.current) {\n _this._selectedIndicies = {};\n _this._preservedIndicies = undefined;\n _this._events.on(window, 'mousemove', _this._onAsyncMouseMove, true);\n _this._events.on(_this._scrollableParent, 'scroll', _this._onAsyncMouseMove);\n _this._events.on(window, 'click', _this._onMouseUp, true);\n _this._autoScroll = new AutoScroll(_this._root.current);\n _this._scrollTop = _this._scrollableSurface.scrollTop;\n _this._scrollLeft = _this._scrollableSurface.scrollLeft;\n _this._rootRect = _this._root.current.getBoundingClientRect();\n _this._onMouseMove(ev);\n }\n }\n };\n _this._onTouchStart = function (ev) {\n _this._isTouch = true;\n _this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 0);\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._isTouch = true;\n _this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 0);\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n dragRect: undefined,\n };\n return _this;\n }\n MarqueeSelectionBase.prototype.componentDidMount = function () {\n this._scrollableParent = findScrollableParent(this._root.current);\n this._scrollableSurface = this._scrollableParent === window ? document.body : this._scrollableParent;\n // When scroll events come from window, we need to read scrollTop values from the body.\n var hitTarget = this.props.isDraggingConstrainedToRoot ? this._root.current : this._scrollableSurface;\n this._events.on(hitTarget, 'mousedown', this._onMouseDown);\n this._events.on(hitTarget, 'touchstart', this._onTouchStart, true);\n this._events.on(hitTarget, 'pointerdown', this._onPointerDown, true);\n };\n MarqueeSelectionBase.prototype.componentWillUnmount = function () {\n if (this._autoScroll) {\n this._autoScroll.dispose();\n }\n delete this._scrollableParent;\n delete this._scrollableSurface;\n this._events.dispose();\n this._async.dispose();\n };\n MarqueeSelectionBase.prototype.render = function () {\n var _a = this.props, rootProps = _a.rootProps, children = _a.children, theme = _a.theme, className = _a.className, styles = _a.styles;\n var dragRect = this.state.dragRect;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", __assign({}, rootProps, { className: classNames.root, ref: this._root }),\n children,\n dragRect && React.createElement(\"div\", { className: classNames.dragMask }),\n dragRect && (React.createElement(\"div\", { className: classNames.box, style: dragRect },\n React.createElement(\"div\", { className: classNames.boxFill })))));\n };\n /** Determine if the mouse event occured on a scrollbar of the target element. */\n MarqueeSelectionBase.prototype._isMouseEventOnScrollbar = function (ev) {\n var targetElement = ev.target;\n var targetScrollbarWidth = targetElement.offsetWidth - targetElement.clientWidth;\n var targetScrollbarHeight = targetElement.offsetHeight - targetElement.clientHeight;\n if (targetScrollbarWidth || targetScrollbarHeight) {\n var targetRect = targetElement.getBoundingClientRect();\n // Check vertical scroll\n if (getRTL(this.props.theme)) {\n if (ev.clientX < targetRect.left + targetScrollbarWidth) {\n return true;\n }\n }\n else {\n if (ev.clientX > targetRect.left + targetElement.clientWidth) {\n return true;\n }\n }\n // Check horizontal scroll\n if (ev.clientY > targetRect.top + targetElement.clientHeight) {\n return true;\n }\n }\n return false;\n };\n MarqueeSelectionBase.prototype._getRootRect = function () {\n return {\n left: this._rootRect.left + (this._scrollLeft - this._scrollableSurface.scrollLeft),\n top: this._rootRect.top + (this._scrollTop - this._scrollableSurface.scrollTop),\n width: this._rootRect.width,\n height: this._rootRect.height,\n };\n };\n MarqueeSelectionBase.prototype._onAsyncMouseMove = function (ev) {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n _this._onMouseMove(ev);\n });\n ev.stopPropagation();\n ev.preventDefault();\n };\n MarqueeSelectionBase.prototype._onMouseMove = function (ev) {\n if (!this._autoScroll) {\n return;\n }\n if (ev.clientX !== undefined) {\n this._lastMouseEvent = ev;\n }\n var rootRect = this._getRootRect();\n var currentPoint = { left: ev.clientX - rootRect.left, top: ev.clientY - rootRect.top };\n if (!this._dragOrigin) {\n this._dragOrigin = currentPoint;\n }\n if (ev.buttons !== undefined && ev.buttons === 0) {\n this._onMouseUp(ev);\n }\n else {\n if (this.state.dragRect || getDistanceBetweenPoints(this._dragOrigin, currentPoint) > MIN_DRAG_DISTANCE) {\n if (!this.state.dragRect) {\n var selection = this.props.selection;\n if (!ev.shiftKey) {\n selection.setAllSelected(false);\n }\n this._preservedIndicies = selection && selection.getSelectedIndices && selection.getSelectedIndices();\n }\n // We need to constrain the current point to the rootRect boundaries.\n var constrainedPoint = this.props.isDraggingConstrainedToRoot\n ? {\n left: Math.max(0, Math.min(rootRect.width, this._lastMouseEvent.clientX - rootRect.left)),\n top: Math.max(0, Math.min(rootRect.height, this._lastMouseEvent.clientY - rootRect.top)),\n }\n : {\n left: this._lastMouseEvent.clientX - rootRect.left,\n top: this._lastMouseEvent.clientY - rootRect.top,\n };\n var dragRect = {\n left: Math.min(this._dragOrigin.left || 0, constrainedPoint.left),\n top: Math.min(this._dragOrigin.top || 0, constrainedPoint.top),\n width: Math.abs(constrainedPoint.left - (this._dragOrigin.left || 0)),\n height: Math.abs(constrainedPoint.top - (this._dragOrigin.top || 0)),\n };\n this._evaluateSelection(dragRect, rootRect);\n this.setState({ dragRect: dragRect });\n }\n }\n return false;\n };\n MarqueeSelectionBase.prototype._onMouseUp = function (ev) {\n this._events.off(window);\n this._events.off(this._scrollableParent, 'scroll');\n if (this._autoScroll) {\n this._autoScroll.dispose();\n }\n this._autoScroll = this._dragOrigin = this._lastMouseEvent = undefined;\n this._selectedIndicies = this._itemRectCache = undefined;\n if (this.state.dragRect) {\n this.setState({\n dragRect: undefined,\n });\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n MarqueeSelectionBase.prototype._isPointInRectangle = function (rectangle, point) {\n return (!!point.top &&\n rectangle.top < point.top &&\n rectangle.bottom > point.top &&\n !!point.left &&\n rectangle.left < point.left &&\n rectangle.right > point.left);\n };\n /**\n * We do not want to start the marquee if we're trying to marquee\n * from within an existing marquee selection.\n */\n MarqueeSelectionBase.prototype._isDragStartInSelection = function (ev) {\n var selection = this.props.selection;\n if (!this._root.current || (selection && selection.getSelectedCount() === 0)) {\n return false;\n }\n var allElements = this._root.current.querySelectorAll('[data-selection-index]');\n for (var i = 0; i < allElements.length; i++) {\n var element = allElements[i];\n var index = Number(element.getAttribute('data-selection-index'));\n if (selection.isIndexSelected(index)) {\n var itemRect = element.getBoundingClientRect();\n if (this._isPointInRectangle(itemRect, { left: ev.clientX, top: ev.clientY })) {\n return true;\n }\n }\n }\n return false;\n };\n MarqueeSelectionBase.prototype._isInSelectionToggle = function (ev) {\n var element = ev.target;\n while (element && element !== this._root.current) {\n if (element.getAttribute('data-selection-toggle') === 'true') {\n return true;\n }\n element = element.parentElement;\n }\n return false;\n };\n MarqueeSelectionBase.prototype._evaluateSelection = function (dragRect, rootRect) {\n // Break early if we don't need to evaluate.\n if (!dragRect || !this._root.current) {\n return;\n }\n var selection = this.props.selection;\n var allElements = this._root.current.querySelectorAll('[data-selection-index]');\n if (!this._itemRectCache) {\n this._itemRectCache = {};\n }\n for (var i = 0; i < allElements.length; i++) {\n var element = allElements[i];\n var index = element.getAttribute('data-selection-index');\n // Pull the memoized rectangle for the item, or the get the rect and memoize.\n var itemRect = this._itemRectCache[index];\n if (!itemRect) {\n itemRect = element.getBoundingClientRect();\n // Normalize the item rect to the dragRect coordinates.\n itemRect = {\n left: itemRect.left - rootRect.left,\n top: itemRect.top - rootRect.top,\n width: itemRect.width,\n height: itemRect.height,\n right: itemRect.left - rootRect.left + itemRect.width,\n bottom: itemRect.top - rootRect.top + itemRect.height,\n };\n if (itemRect.width > 0 && itemRect.height > 0) {\n this._itemRectCache[index] = itemRect;\n }\n }\n if (itemRect.top < dragRect.top + dragRect.height &&\n itemRect.bottom > dragRect.top &&\n itemRect.left < dragRect.left + dragRect.width &&\n itemRect.right > dragRect.left) {\n this._selectedIndicies[index] = true;\n }\n else {\n delete this._selectedIndicies[index];\n }\n }\n // set previousSelectedIndices to be all of the selected indices from last time\n var previousSelectedIndices = this._allSelectedIndices || {};\n this._allSelectedIndices = {};\n // set all indices that are supposed to be selected in _allSelectedIndices\n for (var index in this._selectedIndicies) {\n if (this._selectedIndicies.hasOwnProperty(index)) {\n this._allSelectedIndices[index] = true;\n }\n }\n if (this._preservedIndicies) {\n for (var _i = 0, _a = this._preservedIndicies; _i < _a.length; _i++) {\n var index = _a[_i];\n this._allSelectedIndices[index] = true;\n }\n }\n // check if needs to update selection, only when current _allSelectedIndices\n // is different than previousSelectedIndices\n var needToUpdate = false;\n for (var index in this._allSelectedIndices) {\n if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {\n needToUpdate = true;\n break;\n }\n }\n if (!needToUpdate) {\n for (var index in previousSelectedIndices) {\n if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {\n needToUpdate = true;\n break;\n }\n }\n }\n // only update selection when needed\n if (needToUpdate) {\n // Stop change events, clear selection to re-populate.\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n for (var _b = 0, _c = Object.keys(this._allSelectedIndices); _b < _c.length; _b++) {\n var index = _c[_b];\n selection.setIndexSelected(Number(index), true, false);\n }\n selection.setChangeEvents(true);\n }\n };\n MarqueeSelectionBase.defaultProps = {\n rootTagName: 'div',\n rootProps: {},\n isEnabled: true,\n };\n return MarqueeSelectionBase;\n}(React.Component));\nexport { MarqueeSelectionBase };\n//# sourceMappingURL=MarqueeSelection.base.js.map","import { styled } from '../../Utilities';\nimport { MarqueeSelectionBase } from './MarqueeSelection.base';\nimport { getStyles } from './MarqueeSelection.styles';\nexport var MarqueeSelection = \n// TODO: MarqueeSelectionBase defaultProps are not lining up with IMarqueeSelectionProps, so we have to be explicit\n// with styled here. defaultProps.rootTagName doesn't appear to be used anywhere and defaultProps.rootProps is not\n// in IMarqueeSelectionProps.\nstyled(MarqueeSelectionBase, getStyles, undefined, {\n scope: 'MarqueeSelection',\n});\n//# sourceMappingURL=MarqueeSelection.js.map","import { HighContrastSelector } from '../../Styling';\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var theme = props.theme, className = props.className;\n var palette = theme.palette;\n return {\n root: [\n className,\n {\n position: 'relative',\n cursor: 'default',\n },\n ],\n dragMask: [\n {\n position: 'absolute',\n background: 'rgba(255, 0, 0, 0)',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n background: 'none',\n backgroundColor: 'transparent',\n },\n _a),\n },\n ],\n box: [\n {\n position: 'absolute',\n boxSizing: 'border-box',\n border: \"1px solid \" + palette.themePrimary,\n pointerEvents: 'none',\n zIndex: 10,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n ],\n boxFill: [\n {\n position: 'absolute',\n boxSizing: 'border-box',\n backgroundColor: palette.themePrimary,\n opacity: 0.1,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n background: 'none',\n backgroundColor: 'transparent',\n },\n _c),\n },\n ],\n };\n};\n//# sourceMappingURL=MarqueeSelection.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, getId, classNamesFunction, getNativeProps, htmlElementProperties, css, initializeComponentRef, } from '../../Utilities';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nimport { MessageBarType } from './MessageBar.types';\nvar getClassNames = classNamesFunction();\nvar MessageBarBase = /** @class */ (function (_super) {\n __extends(MessageBarBase, _super);\n function MessageBarBase(props) {\n var _a;\n var _this = _super.call(this, props) || this;\n _this.ICON_MAP = (_a = {},\n _a[MessageBarType.info] = 'Info',\n _a[MessageBarType.warning] = 'Info',\n _a[MessageBarType.error] = 'ErrorBadge',\n _a[MessageBarType.blocked] = 'Blocked2',\n _a[MessageBarType.severeWarning] = 'Warning',\n _a[MessageBarType.success] = 'Completed',\n _a);\n _this._getRegionProps = function () {\n var hasActions = !!_this._getActionsDiv() || !!_this._getDismissDiv();\n var regionProps = {\n 'aria-describedby': _this.state.labelId,\n role: 'region',\n };\n return hasActions ? regionProps : {};\n };\n _this._onClick = function (ev) {\n _this.setState({ expandSingleLine: !_this.state.expandSingleLine });\n };\n initializeComponentRef(_this);\n _this.state = {\n labelId: getId('MessageBar'),\n // eslint-disable-next-line react/no-unused-state\n showContent: false,\n expandSingleLine: false,\n };\n return _this;\n }\n MessageBarBase.prototype.render = function () {\n var isMultiline = this.props.isMultiline;\n this._classNames = this._getClassNames();\n return isMultiline ? this._renderMultiLine() : this._renderSingleLine();\n };\n MessageBarBase.prototype._getActionsDiv = function () {\n if (this.props.actions) {\n return React.createElement(\"div\", { className: this._classNames.actions }, this.props.actions);\n }\n return null;\n };\n MessageBarBase.prototype._getDismissDiv = function () {\n var _a = this.props, onDismiss = _a.onDismiss, dismissIconProps = _a.dismissIconProps;\n if (onDismiss) {\n return (React.createElement(IconButton, { disabled: false, className: this._classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, title: this.props.dismissButtonAriaLabel, ariaLabel: this.props.dismissButtonAriaLabel }));\n }\n return null;\n };\n MessageBarBase.prototype._getDismissSingleLine = function () {\n if (this.props.onDismiss) {\n return React.createElement(\"div\", { className: this._classNames.dismissSingleLine }, this._getDismissDiv());\n }\n return null;\n };\n MessageBarBase.prototype._getExpandSingleLine = function () {\n if (!this.props.actions && this.props.truncated) {\n return (React.createElement(\"div\", { className: this._classNames.expandSingleLine },\n React.createElement(IconButton, { disabled: false, className: this._classNames.expand, onClick: this._onClick, iconProps: { iconName: this.state.expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' }, ariaLabel: this.props.overflowButtonAriaLabel, \"aria-expanded\": this.state.expandSingleLine })));\n }\n return null;\n };\n MessageBarBase.prototype._getIconSpan = function () {\n var messageBarIconProps = this.props.messageBarIconProps;\n return (React.createElement(\"div\", { className: this._classNames.iconContainer, \"aria-hidden\": true }, messageBarIconProps ? (React.createElement(Icon, __assign({}, messageBarIconProps, { className: css(this._classNames.icon, messageBarIconProps.className) }))) : (React.createElement(Icon, { iconName: this.ICON_MAP[this.props.messageBarType], className: this._classNames.icon }))));\n };\n MessageBarBase.prototype._renderMultiLine = function () {\n return (React.createElement(\"div\", __assign({ className: this._classNames.root }, this._getRegionProps()),\n React.createElement(\"div\", { className: this._classNames.content },\n this._getIconSpan(),\n this._renderInnerText(),\n this._getDismissDiv()),\n this._getActionsDiv()));\n };\n MessageBarBase.prototype._renderSingleLine = function () {\n return (React.createElement(\"div\", __assign({ className: this._classNames.root }, this._getRegionProps()),\n React.createElement(\"div\", { className: this._classNames.content },\n this._getIconSpan(),\n this._renderInnerText(),\n this._getExpandSingleLine(),\n this._getActionsDiv(),\n this._getDismissSingleLine())));\n };\n MessageBarBase.prototype._renderInnerText = function () {\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'className',\n ]);\n return (React.createElement(\"div\", { className: this._classNames.text, id: this.state.labelId, role: \"status\", \"aria-live\": this._getAnnouncementPriority() },\n React.createElement(\"span\", __assign({ className: this._classNames.innerText }, nativeProps),\n React.createElement(DelayedRender, null,\n React.createElement(\"span\", null, this.props.children)))));\n };\n MessageBarBase.prototype._getClassNames = function () {\n var _a = this.props, theme = _a.theme, className = _a.className, messageBarType = _a.messageBarType, onDismiss = _a.onDismiss, actions = _a.actions, truncated = _a.truncated, isMultiline = _a.isMultiline;\n var expandSingleLine = this.state.expandSingleLine;\n return getClassNames(this.props.styles, {\n theme: theme,\n messageBarType: messageBarType || MessageBarType.info,\n onDismiss: onDismiss !== undefined,\n actions: actions !== undefined,\n truncated: truncated,\n isMultiline: isMultiline,\n expandSingleLine: expandSingleLine,\n className: className,\n });\n };\n MessageBarBase.prototype._getAnnouncementPriority = function () {\n switch (this.props.messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'assertive';\n }\n return 'polite';\n };\n MessageBarBase.defaultProps = {\n messageBarType: MessageBarType.info,\n onDismiss: undefined,\n isMultiline: true,\n };\n return MessageBarBase;\n}(React.Component));\nexport { MessageBarBase };\n//# sourceMappingURL=MessageBar.base.js.map","var _a, _b, _c;\nimport { __assign } from \"tslib\";\nimport { HighContrastSelector, ScreenWidthMaxSmall, getScreenSelector, getGlobalClassNames, getFocusStyle, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { MessageBarType } from './MessageBar.types';\nvar GlobalClassNames = {\n root: 'ms-MessageBar',\n error: 'ms-MessageBar--error',\n blocked: 'ms-MessageBar--blocked',\n severeWarning: 'ms-MessageBar--severeWarning',\n success: 'ms-MessageBar--success',\n warning: 'ms-MessageBar--warning',\n multiline: 'ms-MessageBar-multiline',\n singleline: 'ms-MessageBar-singleline',\n dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',\n expandingSingleLine: 'ms-MessageBar-expandingSingleLine',\n content: 'ms-MessageBar-content',\n iconContainer: 'ms-MessageBar-icon',\n text: 'ms-MessageBar-text',\n innerText: 'ms-MessageBar-innerText',\n dismissSingleLine: 'ms-MessageBar-dismissSingleLine',\n expandSingleLine: 'ms-MessageBar-expandSingleLine',\n dismissal: 'ms-MessageBar-dismissal',\n expand: 'ms-MessageBar-expand',\n actions: 'ms-MessageBar-actions',\n actionsSingleline: 'ms-MessageBar-actionsSingleLine',\n};\nvar backgroundColor = (_a = {},\n _a[MessageBarType.error] = 'errorBackground',\n _a[MessageBarType.blocked] = 'errorBackground',\n _a[MessageBarType.success] = 'successBackground',\n _a[MessageBarType.warning] = 'warningBackground',\n _a[MessageBarType.severeWarning] = 'severeWarningBackground',\n _a[MessageBarType.info] = 'infoBackground',\n _a);\nvar highContrastBackgroundColor = (_b = {},\n _b[MessageBarType.error] = 'rgba(255, 0, 0, 0.3)',\n _b[MessageBarType.blocked] = 'rgba(255, 0, 0, 0.3)',\n _b[MessageBarType.success] = 'rgba(48, 241, 73, 0.3)',\n _b[MessageBarType.warning] = 'rgba(255, 254, 57, 0.3)',\n _b[MessageBarType.severeWarning] = 'rgba(255, 0, 0, 0.3)',\n _b[MessageBarType.info] = 'Window',\n _b);\nvar iconColor = (_c = {},\n _c[MessageBarType.error] = 'errorIcon',\n _c[MessageBarType.blocked] = 'errorIcon',\n _c[MessageBarType.success] = 'successIcon',\n _c[MessageBarType.warning] = 'warningIcon',\n _c[MessageBarType.severeWarning] = 'severeWarningIcon',\n _c[MessageBarType.info] = 'infoIcon',\n _c);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, className = props.className, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine, _f = props.messageBarType, messageBarType = _f === void 0 ? MessageBarType.info : _f;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var SmallScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var dismissalAndExpandIconStyle = {\n fontSize: IconFontSizes.xSmall,\n height: 10,\n lineHeight: '10px',\n color: semanticColors.messageText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _a),\n };\n var dismissalAndExpandStyle = [\n getFocusStyle(theme, {\n inset: 1,\n highContrastStyle: {\n outlineOffset: '-6px',\n outline: '1px solid Highlight',\n },\n borderColor: 'transparent',\n }),\n {\n flexShrink: 0,\n width: 32,\n height: 32,\n padding: '8px 12px',\n selectors: {\n '& .ms-Button-icon': dismissalAndExpandIconStyle,\n ':hover': {\n backgroundColor: 'transparent',\n },\n ':active': {\n backgroundColor: 'transparent',\n },\n },\n },\n ];\n return {\n root: [\n classNames.root,\n fonts.medium,\n messageBarType === MessageBarType.error && classNames.error,\n messageBarType === MessageBarType.blocked && classNames.blocked,\n messageBarType === MessageBarType.severeWarning && classNames.severeWarning,\n messageBarType === MessageBarType.success && classNames.success,\n messageBarType === MessageBarType.warning && classNames.warning,\n isMultiline ? classNames.multiline : classNames.singleline,\n !isMultiline && onDismiss && classNames.dismissalSingleLine,\n !isMultiline && truncated && classNames.expandingSingleLine,\n {\n background: semanticColors[backgroundColor[messageBarType]],\n color: semanticColors.messageText,\n minHeight: 32,\n width: '100%',\n display: 'flex',\n wordBreak: 'break-word',\n selectors: (_b = {\n '.ms-Link': {\n color: semanticColors.messageLink,\n selectors: {\n ':hover': {\n color: semanticColors.messageLinkHovered,\n },\n },\n }\n },\n _b[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { background: highContrastBackgroundColor[messageBarType], border: '1px solid WindowText', color: 'WindowText' }),\n _b),\n },\n isMultiline && {\n flexDirection: 'column',\n },\n className,\n ],\n content: [\n classNames.content,\n {\n display: 'flex',\n width: '100%',\n lineHeight: 'normal',\n },\n ],\n iconContainer: [\n classNames.iconContainer,\n {\n fontSize: IconFontSizes.medium,\n minWidth: 16,\n minHeight: 16,\n display: 'flex',\n flexShrink: 0,\n margin: '8px 0 8px 12px',\n },\n ],\n icon: {\n color: semanticColors[iconColor[messageBarType]],\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _c),\n },\n text: [\n classNames.text,\n __assign(__assign({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small), { selectors: (_d = {},\n _d[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _d) }),\n !onDismiss && {\n marginRight: 12,\n },\n ],\n innerText: [\n classNames.innerText,\n {\n lineHeight: 16,\n selectors: {\n '& span a': {\n paddingLeft: 4,\n },\n },\n },\n truncated && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n !isMultiline && {\n // In high contrast this causes the top and bottom of links' focus outline to be clipped\n // (not sure of a good way around that while still maintaining text clipping)\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n !isMultiline &&\n !truncated && {\n selectors: (_e = {},\n _e[SmallScreenSelector] = {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n _e),\n },\n expandSingleLine && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n ],\n dismissSingleLine: classNames.dismissSingleLine,\n expandSingleLine: classNames.expandSingleLine,\n dismissal: [classNames.dismissal, dismissalAndExpandStyle],\n expand: [classNames.expand, dismissalAndExpandStyle],\n actions: [\n isMultiline ? classNames.actions : classNames.actionsSingleline,\n {\n display: 'flex',\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n margin: '0 12px 0 8px',\n selectors: {\n '& button:nth-child(n+2)': {\n marginLeft: 8,\n },\n },\n },\n isMultiline && {\n marginBottom: 8,\n },\n onDismiss &&\n !isMultiline && {\n marginRight: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=MessageBar.styles.js.map","import { styled } from '../../Utilities';\nimport { MessageBarBase } from './MessageBar.base';\nimport { getStyles } from './MessageBar.styles';\nexport var MessageBar = styled(MessageBarBase, getStyles, undefined, {\n scope: 'MessageBar',\n});\n//# sourceMappingURL=MessageBar.js.map","/**\n * {@docCategory MessageBar}\n */\nexport var MessageBarType;\n(function (MessageBarType) {\n /** Info styled MessageBar */\n MessageBarType[MessageBarType[\"info\"] = 0] = \"info\";\n /** Error styled MessageBar */\n MessageBarType[MessageBarType[\"error\"] = 1] = \"error\";\n /** Blocked styled MessageBar */\n MessageBarType[MessageBarType[\"blocked\"] = 2] = \"blocked\";\n /** SevereWarning styled MessageBar */\n MessageBarType[MessageBarType[\"severeWarning\"] = 3] = \"severeWarning\";\n /** Success styled MessageBar */\n MessageBarType[MessageBarType[\"success\"] = 4] = \"success\";\n /** Warning styled MessageBar */\n MessageBarType[MessageBarType[\"warning\"] = 5] = \"warning\";\n})(MessageBarType || (MessageBarType = {}));\n//# sourceMappingURL=MessageBar.types.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (className, isDragging) {\n return {\n root: mergeStyles(className, isDragging && {\n touchAction: 'none',\n selectors: {\n '& *': {\n userSelect: 'none',\n },\n },\n }),\n };\n});\n//# sourceMappingURL=DraggableZone.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './DraggableZone.styles';\nimport { on } from '../../Utilities';\nvar eventMapping = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend',\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup',\n },\n};\nvar DraggableZone = /** @class */ (function (_super) {\n __extends(DraggableZone, _super);\n function DraggableZone(props) {\n var _this = _super.call(this, props) || this;\n _this._currentEventType = eventMapping.mouse;\n _this._events = [];\n _this._onMouseDown = function (event) {\n var onMouseDown = React.Children.only(_this.props.children).props.onMouseDown;\n if (onMouseDown) {\n onMouseDown(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStart(event);\n };\n _this._onMouseUp = function (event) {\n var onMouseUp = React.Children.only(_this.props.children).props.onMouseUp;\n if (onMouseUp) {\n onMouseUp(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStop(event);\n };\n _this._onTouchStart = function (event) {\n var onTouchStart = React.Children.only(_this.props.children).props.onTouchStart;\n if (onTouchStart) {\n onTouchStart(event);\n }\n _this._currentEventType = eventMapping.touch;\n return _this._onDragStart(event);\n };\n _this._onTouchEnd = function (event) {\n var onTouchEnd = React.Children.only(_this.props.children).props.onTouchEnd;\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n _this._currentEventType = eventMapping.touch;\n _this._onDragStop(event);\n };\n _this._onDragStart = function (event) {\n // Only handle left click for dragging\n if (typeof event.button === 'number' && event.button !== 0) {\n return false;\n }\n // If the target doesn't match the handleSelector OR\n // if the target does match the preventDragSelector, bail out\n if ((_this.props.handleSelector && !_this._matchesSelector(event.target, _this.props.handleSelector)) ||\n (_this.props.preventDragSelector &&\n _this._matchesSelector(event.target, _this.props.preventDragSelector))) {\n return;\n }\n // Remember the touch identifier if this is a touch event so we can\n // distinguish between individual touches in multitouch scenarios\n // by remembering which touch point we were given\n _this._touchId = _this._getTouchId(event);\n var position = _this._getControlPosition(event);\n if (position === undefined) {\n return;\n }\n var dragData = _this._createDragDataFromPosition(position);\n _this.props.onStart && _this.props.onStart(event, dragData);\n _this.setState({\n isDragging: true,\n lastPosition: position,\n });\n // hook up the appropriate mouse/touch events to the body to ensure\n // smooth dragging\n _this._events = [\n on(document.body, _this._currentEventType.move, _this._onDrag, true /* use capture phase */),\n on(document.body, _this._currentEventType.stop, _this._onDragStop, true /* use capture phase */),\n ];\n };\n _this._onDrag = function (event) {\n // Prevent scrolling on mobile devices\n if (event.type === 'touchmove') {\n event.preventDefault();\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n // create the updated drag data from the position data\n var updatedData = _this._createUpdatedDragData(_this._createDragDataFromPosition(position));\n var updatedPosition = updatedData.position;\n _this.props.onDragChange && _this.props.onDragChange(event, updatedData);\n _this.setState({\n position: updatedPosition,\n lastPosition: position,\n });\n };\n _this._onDragStop = function (event) {\n if (!_this.state.isDragging) {\n return;\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n var baseDragData = _this._createDragDataFromPosition(position);\n // Set dragging to false and reset the lastPosition\n _this.setState({\n isDragging: false,\n lastPosition: undefined,\n });\n _this.props.onStop && _this.props.onStop(event, baseDragData);\n if (_this.props.position) {\n _this.setState({\n position: _this.props.position,\n });\n }\n // Remove event handlers\n _this._events.forEach(function (dispose) { return dispose(); });\n };\n _this.state = {\n isDragging: false,\n position: _this.props.position || { x: 0, y: 0 },\n lastPosition: undefined,\n };\n return _this;\n }\n DraggableZone.prototype.componentDidUpdate = function (prevProps) {\n if (this.props.position && (!prevProps.position || this.props.position !== prevProps.position)) {\n this.setState({ position: this.props.position });\n }\n };\n DraggableZone.prototype.componentWillUnmount = function () {\n this._events.forEach(function (dispose) { return dispose(); });\n };\n DraggableZone.prototype.render = function () {\n var child = React.Children.only(this.props.children);\n var props = child.props;\n var position = this.props.position;\n var _a = this.state, statePosition = _a.position, isDragging = _a.isDragging;\n var x = statePosition.x;\n var y = statePosition.y;\n if (position && !isDragging) {\n x = position.x;\n y = position.y;\n }\n return React.cloneElement(child, {\n style: __assign(__assign({}, props.style), { transform: \"translate(\" + x + \"px, \" + y + \"px)\" }),\n className: getClassNames(props.className, this.state.isDragging).root,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onTouchStart: this._onTouchStart,\n onTouchEnd: this._onTouchEnd,\n });\n };\n /**\n * Get the control position based off the event that fired\n * @param event - The event to get offsets from\n */\n DraggableZone.prototype._getControlPosition = function (event) {\n var touchObj = this._getActiveTouch(event);\n // did we get the right touch?\n if (this._touchId !== undefined && !touchObj) {\n return undefined;\n }\n var eventToGetOffset = touchObj || event;\n return {\n x: eventToGetOffset.clientX,\n y: eventToGetOffset.clientY,\n };\n };\n /**\n * Get the active touch point that we have saved from the event's TouchList\n * @param event - The event used to get the TouchList for the active touch point\n */\n DraggableZone.prototype._getActiveTouch = function (event) {\n return ((event.targetTouches && this._findTouchInTouchList(event.targetTouches)) ||\n (event.changedTouches && this._findTouchInTouchList(event.changedTouches)));\n };\n /**\n * Get the initial touch identifier associated with the given event\n * @param event - The event that contains the TouchList\n */\n DraggableZone.prototype._getTouchId = function (event) {\n var touch = (event.targetTouches && event.targetTouches[0]) || (event.changedTouches && event.changedTouches[0]);\n if (touch) {\n return touch.identifier;\n }\n };\n /**\n * Returns if an element (or any of the element's parents) match the given selector\n */\n DraggableZone.prototype._matchesSelector = function (element, selector) {\n if (!element || element === document.body) {\n return false;\n }\n var matchesSelectorFn = element.matches || element.webkitMatchesSelector || element.msMatchesSelector /* for IE */;\n if (!matchesSelectorFn) {\n return false;\n }\n return matchesSelectorFn.call(element, selector) || this._matchesSelector(element.parentElement, selector);\n };\n /**\n * Attempts to find the Touch that matches the identifier we stored in dragStart\n * @param touchList The TouchList to look for the stored identifier from dragStart\n */\n DraggableZone.prototype._findTouchInTouchList = function (touchList) {\n if (this._touchId === undefined) {\n return;\n }\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this._touchId) {\n return touchList[i];\n }\n }\n return undefined;\n };\n /**\n * Create DragData based off of the last known position and the new position passed in\n * @param position The new position as part of the drag\n */\n DraggableZone.prototype._createDragDataFromPosition = function (position) {\n var lastPosition = this.state.lastPosition;\n // If we have no lastPosition, use the given position\n // for last position\n if (lastPosition === undefined) {\n return {\n delta: { x: 0, y: 0 },\n lastPosition: position,\n position: position,\n };\n }\n return {\n delta: {\n x: position.x - lastPosition.x,\n y: position.y - lastPosition.y,\n },\n lastPosition: lastPosition,\n position: position,\n };\n };\n /**\n * Creates an updated DragData based off the current position and given baseDragData\n * @param baseDragData The base DragData (from _createDragDataFromPosition) used to calculate the updated positions\n */\n DraggableZone.prototype._createUpdatedDragData = function (baseDragData) {\n var position = this.state.position;\n return {\n position: {\n x: position.x + baseDragData.delta.x,\n y: position.y + baseDragData.delta.y,\n },\n delta: baseDragData.delta,\n lastPosition: position,\n };\n };\n return DraggableZone;\n}(React.Component));\nexport { DraggableZone };\n//# sourceMappingURL=DraggableZone.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, createMergedRef, css, elementContains, getId, warnDeprecations, Async, EventGroup, KeyCodes, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { animationDuration } from './Modal.styles';\nimport { Overlay } from '../../Overlay';\nimport { Layer } from '../../Layer';\nimport { Popup } from '../Popup/index';\nimport { withResponsiveMode, ResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nimport { DirectionalHint } from '../Callout/index';\nimport { Icon } from '../Icon/index';\nimport { DraggableZone } from '../../utilities/DraggableZone/index';\nimport { initializeComponentRef } from '@uifabric/utilities';\n// @TODO - need to change this to a panel whenever the breakpoint is under medium (verify the spec)\nvar DefaultLayerProps = {\n eventBubblingEnabled: false,\n};\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Modal';\nvar ModalBase = /** @class */ (function (_super) {\n __extends(ModalBase, _super);\n function ModalBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusTrapZone = React.createRef();\n _this._focusTrapZoneMergedRef = createMergedRef();\n _this._registerInitialModalPosition = function () {\n var _a;\n var dialogMain = document.querySelector(\"[data-id=\" + _this.state.id + \"]\");\n if (dialogMain) {\n var modalRectangle = dialogMain.getBoundingClientRect();\n if (((_a = _this.props.dragOptions) === null || _a === void 0 ? void 0 : _a.keepInBounds) && !_this._minClampedPosition && !_this._maxClampedPosition) {\n _this._minClampedPosition = { x: -modalRectangle.x, y: -modalRectangle.y };\n _this._maxClampedPosition = { x: modalRectangle.x, y: modalRectangle.y };\n }\n _this.setState({\n modalRectangleTop: modalRectangle.top,\n });\n }\n };\n // Allow the user to scroll within the modal but not on the body\n _this._allowScrollOnModal = function (elt) {\n if (elt) {\n if (_this._allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, _this._events);\n }\n else {\n allowScrollOnElement(elt, _this._events);\n }\n }\n else {\n _this._events.off(_this._scrollableContent);\n }\n _this._scrollableContent = elt;\n };\n _this._onModalContextMenuClose = function () {\n _this.setState({ isModalMenuOpen: false });\n };\n _this._onModalClose = function () {\n _this._lastSetX = 0;\n _this._lastSetY = 0;\n _this.setState({\n isModalMenuOpen: false,\n isInKeyboardMoveMode: false,\n isOpen: false,\n x: 0,\n y: 0,\n });\n if (_this.props.dragOptions && _this._hasRegisteredKeyUp) {\n _this._events.off(window, 'keyup', _this._onKeyUp, true /* useCapture */);\n }\n // Call the onDismiss callback\n if (_this.props.onDismissed) {\n _this.props.onDismissed();\n }\n };\n _this._onDragStart = function () {\n _this.setState({ isModalMenuOpen: false, isInKeyboardMoveMode: false });\n };\n _this._onDrag = function (_, ui) {\n var _a = _this.state, x = _a.x, y = _a.y;\n _this.setState(_this._getClampedPosition({ x: x + ui.delta.x, y: y + ui.delta.y }));\n };\n _this._onDragStop = function () {\n _this.focus();\n };\n _this._onKeyUp = function (event) {\n // Need to handle the CTRL + ALT + SPACE key during keyup due to FireFox bug:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n // Otherwise it would continue to fire a click even if the event was cancelled\n // during mouseDown.\n if (event.altKey && event.ctrlKey && event.keyCode === KeyCodes.space) {\n // Since this is a global handler, we should make sure the target is within the dialog\n // before opening the dropdown\n if (elementContains(_this._scrollableContent, event.target)) {\n _this.setState({ isModalMenuOpen: !_this.state.isModalMenuOpen });\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n // We need a global onKeyDown event when we are in the move mode so that we can\n // handle the key presses and the components inside the modal do not get the events\n _this._onKeyDown = function (event) {\n if (event.altKey && event.ctrlKey && event.keyCode === KeyCodes.space) {\n // CTRL + ALT + SPACE is handled during keyUp\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (_this.state.isModalMenuOpen && (event.altKey || event.keyCode === KeyCodes.escape)) {\n _this.setState({ isModalMenuOpen: false });\n }\n if (_this.state.isInKeyboardMoveMode && (event.keyCode === KeyCodes.escape || event.keyCode === KeyCodes.enter)) {\n _this.setState({ isInKeyboardMoveMode: false });\n event.preventDefault();\n event.stopPropagation();\n }\n if (_this.state.isInKeyboardMoveMode) {\n var handledEvent = true;\n var delta = _this._getMoveDelta(event);\n switch (event.keyCode) {\n /* eslint-disable no-fallthrough */\n case KeyCodes.escape:\n _this.setState({ x: _this._lastSetX, y: _this._lastSetY });\n case KeyCodes.enter: {\n // TODO: determine if fallthrough was intentional\n /* eslint-enable no-fallthrough */\n _this._lastSetX = 0;\n _this._lastSetY = 0;\n _this.setState({ isInKeyboardMoveMode: false });\n break;\n }\n case KeyCodes.up: {\n _this.setState({\n y: _this._getClampedPositionY(_this.state.y - delta),\n });\n break;\n }\n case KeyCodes.down: {\n _this.setState({\n y: _this._getClampedPositionY(_this.state.y + delta),\n });\n break;\n }\n case KeyCodes.left: {\n _this.setState({\n x: _this._getClampedPositionX(_this.state.x - delta),\n });\n break;\n }\n case KeyCodes.right: {\n _this.setState({\n x: _this._getClampedPositionX(_this.state.x + delta),\n });\n break;\n }\n default: {\n handledEvent = false;\n }\n }\n if (handledEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n _this._onEnterKeyboardMoveMode = function () {\n _this._lastSetX = _this.state.x;\n _this._lastSetY = _this.state.y;\n _this.setState({ isInKeyboardMoveMode: true, isModalMenuOpen: false });\n _this._events.on(window, 'keydown', _this._onKeyDown, true /* useCapture */);\n };\n _this._onExitKeyboardMoveMode = function (ev) {\n var _a, _b, _c;\n (_c = (_a = _this.props.focusTrapZoneProps) === null || _a === void 0 ? void 0 : (_b = _a).onBlur) === null || _c === void 0 ? void 0 : _c.call(_b, ev);\n _this._lastSetX = 0;\n _this._lastSetY = 0;\n _this.setState({ isInKeyboardMoveMode: false });\n _this._events.off(window, 'keydown', _this._onKeyDown, true /* useCapture */);\n };\n _this._registerForKeyUp = function () {\n if (!_this._hasRegisteredKeyUp) {\n _this._events.on(window, 'keyup', _this._onKeyUp, true /* useCapture */);\n _this._hasRegisteredKeyUp = true;\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n onLayerDidMount: 'layerProps.onLayerDidMount',\n });\n _this.state = {\n id: getId('Modal'),\n isOpen: props.isOpen,\n isVisible: props.isOpen,\n hasBeenOpened: props.isOpen,\n x: 0,\n y: 0,\n };\n _this._lastSetX = 0;\n _this._lastSetY = 0;\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n ModalBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n clearTimeout(this._onModalCloseTimer);\n // Opening the dialog\n if (newProps.isOpen) {\n if (!this.state.isOpen) {\n // First Open\n this.setState({\n isOpen: true,\n });\n // Add a keyUp handler for all key up events when the dialog is open\n if (newProps.dragOptions) {\n this._registerForKeyUp();\n }\n }\n else {\n // Modal has been opened\n // Reopen during closing\n this.setState({\n hasBeenOpened: true,\n isVisible: true,\n });\n }\n }\n // Closing the dialog\n if (!newProps.isOpen && this.state.isOpen) {\n this._onModalCloseTimer = this._async.setTimeout(this._onModalClose, parseFloat(animationDuration) * 1000);\n this.setState({\n isVisible: false,\n });\n }\n };\n ModalBase.prototype.componentDidMount = function () {\n var _this = this;\n // Not all modals show just by updating their props. Some only render when they are mounted and pass in\n // isOpen as true. We need to add the keyUp handler in componentDidMount if we are in that case.\n if (this.state.isOpen && this.state.isVisible) {\n this._registerForKeyUp();\n requestAnimationFrame(function () { return setTimeout(_this._registerInitialModalPosition, 0); });\n }\n };\n ModalBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _this = this;\n if (!prevProps.isOpen && !prevState.isVisible) {\n this.setState({\n isVisible: true,\n });\n }\n if (!prevProps.isOpen && this.props.isOpen) {\n requestAnimationFrame(function () { return setTimeout(_this._registerInitialModalPosition, 0); });\n }\n };\n ModalBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ModalBase.prototype.render = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n var _r = this.props, className = _r.className, containerClassName = _r.containerClassName, scrollableContentClassName = _r.scrollableContentClassName, elementToFocusOnDismiss = _r.elementToFocusOnDismiss, firstFocusableSelector = _r.firstFocusableSelector, focusTrapZoneProps = _r.focusTrapZoneProps, forceFocusInsideTrap = _r.forceFocusInsideTrap, ignoreExternalFocusing = _r.ignoreExternalFocusing, isBlocking = _r.isBlocking, isClickableOutsideFocusTrap = _r.isClickableOutsideFocusTrap, isDarkOverlay = _r.isDarkOverlay, onDismiss = _r.onDismiss, layerProps = _r.layerProps, overlay = _r.overlay, responsiveMode = _r.responsiveMode, titleAriaId = _r.titleAriaId, styles = _r.styles, subtitleAriaId = _r.subtitleAriaId, theme = _r.theme, topOffsetFixed = _r.topOffsetFixed, \n // eslint-disable-next-line deprecation/deprecation\n onLayerDidMount = _r.onLayerDidMount, isModeless = _r.isModeless, isAlert = _r.isAlert, dragOptions = _r.dragOptions, enableAriaHiddenSiblings = _r.enableAriaHiddenSiblings;\n var _s = this.state, isOpen = _s.isOpen, isVisible = _s.isVisible, hasBeenOpened = _s.hasBeenOpened, modalRectangleTop = _s.modalRectangleTop, x = _s.x, y = _s.y, isInKeyboardMoveMode = _s.isInKeyboardMoveMode;\n if (!isOpen) {\n return null;\n }\n var layerClassName = layerProps === undefined ? '' : layerProps.className;\n var isAlertRole = (isAlert !== null && isAlert !== void 0 ? isAlert : (isBlocking && !isModeless));\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n containerClassName: containerClassName,\n scrollableContentClassName: scrollableContentClassName,\n isOpen: isOpen,\n isVisible: isVisible,\n hasBeenOpened: hasBeenOpened,\n modalRectangleTop: modalRectangleTop,\n topOffsetFixed: topOffsetFixed,\n isModeless: isModeless,\n layerClassName: layerClassName,\n isDefaultDragHandle: dragOptions && !dragOptions.dragHandleSelector,\n });\n var mergedLayerProps = __assign(__assign(__assign({}, DefaultLayerProps), this.props.layerProps), { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, insertFirst: isModeless, className: classNames.layer });\n var modalContent = (React.createElement(FocusTrapZone, __assign({}, focusTrapZoneProps, { \"data-id\": this.state.id, componentRef: this._focusTrapZoneMergedRef(this._focusTrapZone, (_a = focusTrapZoneProps) === null || _a === void 0 ? void 0 : _a.componentRef), className: css(classNames.main, (_b = focusTrapZoneProps) === null || _b === void 0 ? void 0 : _b.className), elementToFocusOnDismiss: (_d = (_c = focusTrapZoneProps) === null || _c === void 0 ? void 0 : _c.elementToFocusOnDismiss, (_d !== null && _d !== void 0 ? _d : elementToFocusOnDismiss)), isClickableOutsideFocusTrap: (_f = (_e = focusTrapZoneProps) === null || _e === void 0 ? void 0 : _e.isClickableOutsideFocusTrap, (_f !== null && _f !== void 0 ? _f : (isModeless || isClickableOutsideFocusTrap || !isBlocking))), ignoreExternalFocusing: (_h = (_g = focusTrapZoneProps) === null || _g === void 0 ? void 0 : _g.ignoreExternalFocusing, (_h !== null && _h !== void 0 ? _h : ignoreExternalFocusing)), forceFocusInsideTrap: (_k = (_j = focusTrapZoneProps) === null || _j === void 0 ? void 0 : _j.forceFocusInsideTrap, (_k !== null && _k !== void 0 ? _k : forceFocusInsideTrap)) && !isModeless, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector: ((_l = focusTrapZoneProps) === null || _l === void 0 ? void 0 : _l.firstFocusableSelector) || firstFocusableSelector, focusPreviouslyFocusedInnerElement: (_o = (_m = focusTrapZoneProps) === null || _m === void 0 ? void 0 : _m.focusPreviouslyFocusedInnerElement, (_o !== null && _o !== void 0 ? _o : true)), onBlur: isInKeyboardMoveMode ? this._onExitKeyboardMoveMode : undefined, enableAriaHiddenSiblings: (_q = (_p = focusTrapZoneProps) === null || _p === void 0 ? void 0 : _p.enableAriaHiddenSiblings, (_q !== null && _q !== void 0 ? _q : enableAriaHiddenSiblings)) }),\n dragOptions && isInKeyboardMoveMode && (React.createElement(\"div\", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React.createElement(Icon, __assign({}, dragOptions.keyboardMoveIconProps))) : (React.createElement(Icon, { iconName: \"move\", className: classNames.keyboardMoveIcon })))),\n React.createElement(\"div\", { ref: this._allowScrollOnModal, className: classNames.scrollableContent, \"data-is-scrollable\": true },\n dragOptions && this.state.isModalMenuOpen && (React.createElement(dragOptions.menu, { items: [\n { key: 'move', text: dragOptions.moveMenuItemText, onClick: this._onEnterKeyboardMoveMode },\n { key: 'close', text: dragOptions.closeMenuItemText, onClick: this._onModalClose },\n ], onDismiss: this._onModalContextMenuClose, alignTargetEdge: true, coverTarget: true, directionalHint: DirectionalHint.topLeftEdge, directionalHintFixed: true, shouldFocusOnMount: true, target: this._scrollableContent })),\n this.props.children)));\n // @temp tuatology - Will adjust this to be a panel at certain breakpoints\n if (responsiveMode >= ResponsiveMode.small) {\n return (React.createElement(Layer, __assign({}, mergedLayerProps),\n React.createElement(Popup, { role: isAlertRole ? 'alertdialog' : 'dialog', \"aria-modal\": !isModeless, ariaLabelledBy: titleAriaId, ariaDescribedBy: subtitleAriaId, onDismiss: onDismiss, shouldRestoreFocus: !ignoreExternalFocusing },\n React.createElement(\"div\", { className: classNames.root, role: !isModeless ? 'document' : undefined },\n !isModeless && (React.createElement(Overlay, __assign({ isDarkThemed: isDarkOverlay, onClick: isBlocking ? undefined : onDismiss, allowTouchBodyScroll: this._allowTouchBodyScroll }, overlay))),\n dragOptions ? (React.createElement(DraggableZone, { handleSelector: dragOptions.dragHandleSelector || \".\" + classNames.main.split(' ')[0], preventDragSelector: \"button\", onStart: this._onDragStart, onDragChange: this._onDrag, onStop: this._onDragStop, position: { x: x, y: y } }, modalContent)) : (modalContent)))));\n }\n return null;\n };\n ModalBase.prototype.focus = function () {\n if (this._focusTrapZone.current) {\n this._focusTrapZone.current.focus();\n }\n };\n /**\n * Clamps the position coordinates to the maximum/minimum value specified in props\n */\n ModalBase.prototype._getClampedPosition = function (position) {\n if (!this.props.dragOptions || !this.props.dragOptions.keepInBounds) {\n return position;\n }\n return { x: this._getClampedPositionX(position.x), y: this._getClampedPositionY(position.y) };\n };\n ModalBase.prototype._getClampedPositionY = function (y) {\n var minPosition = this._minClampedPosition;\n var maxPosition = this._maxClampedPosition;\n if (minPosition) {\n y = Math.max(minPosition.y, y);\n }\n if (maxPosition) {\n y = Math.min(maxPosition.y, y);\n }\n return y;\n };\n ModalBase.prototype._getClampedPositionX = function (x) {\n var minPosition = this._minClampedPosition;\n var maxPosition = this._maxClampedPosition;\n if (minPosition) {\n x = Math.max(minPosition.x, x);\n }\n if (maxPosition) {\n x = Math.min(maxPosition.x, x);\n }\n return x;\n };\n ModalBase.prototype._getMoveDelta = function (event) {\n var delta = 10;\n if (event.shiftKey) {\n if (!event.ctrlKey) {\n delta = 50;\n }\n }\n else if (event.ctrlKey) {\n delta = 1;\n }\n return delta;\n };\n ModalBase.defaultProps = {\n isOpen: false,\n isDarkOverlay: true,\n isBlocking: false,\n className: '',\n containerClassName: '',\n };\n ModalBase = __decorate([\n withResponsiveMode\n ], ModalBase);\n return ModalBase;\n}(React.Component));\nexport { ModalBase };\n//# sourceMappingURL=Modal.base.js.map","import { styled } from '../../Utilities';\nimport { ModalBase } from './Modal.base';\nimport { getStyles } from './Modal.styles';\nexport var Modal = styled(ModalBase, getStyles, undefined, {\n scope: 'Modal',\n fields: ['theme', 'styles', 'enableAriaHiddenSiblings'],\n});\n//# sourceMappingURL=Modal.js.map","import { AnimationVariables, getGlobalClassNames, ZIndexes } from '../../Styling';\nexport var animationDuration = AnimationVariables.durationValue2;\nvar globalClassNames = {\n root: 'ms-Modal',\n main: 'ms-Dialog-main',\n scrollableContent: 'ms-Modal-scrollableContent',\n isOpen: 'is-open',\n layer: 'ms-Modal-Layer',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, isOpen = props.isOpen, isVisible = props.isVisible, hasBeenOpened = props.hasBeenOpened, modalRectangleTop = props.modalRectangleTop, theme = props.theme, topOffsetFixed = props.topOffsetFixed, isModeless = props.isModeless, layerClassName = props.layerClassName, isDefaultDragHandle = props.isDefaultDragHandle;\n var palette = theme.palette, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n backgroundColor: 'transparent',\n position: isModeless ? 'absolute' : 'fixed',\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n opacity: 0,\n pointerEvents: 'none',\n transition: \"opacity \" + animationDuration,\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n alignItems: 'flex-start',\n },\n isOpen && classNames.isOpen,\n isVisible && {\n opacity: 1,\n pointerEvents: 'auto',\n },\n className,\n ],\n main: [\n classNames.main,\n {\n boxShadow: effects.elevation64,\n borderRadius: effects.roundedCorner2,\n backgroundColor: palette.white,\n boxSizing: 'border-box',\n position: 'relative',\n textAlign: 'left',\n outline: '3px solid transparent',\n maxHeight: 'calc(100% - 32px)',\n maxWidth: 'calc(100% - 32px)',\n minHeight: '176px',\n minWidth: '288px',\n overflowY: 'auto',\n zIndex: isModeless ? ZIndexes.Layer : undefined,\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n top: modalRectangleTop,\n },\n isDefaultDragHandle && {\n cursor: 'move',\n },\n containerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n flexGrow: 1,\n maxHeight: '100vh',\n selectors: (_a = {},\n _a['@supports (-webkit-overflow-scrolling: touch)'] = {\n maxHeight: window.innerHeight,\n },\n _a),\n },\n scrollableContentClassName,\n ],\n layer: isModeless && [\n layerClassName,\n classNames.layer,\n {\n position: 'static',\n width: 'unset',\n height: 'unset',\n },\n ],\n keyboardMoveIconContainer: {\n position: 'absolute',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n padding: '3px 0px',\n },\n keyboardMoveIcon: {\n // eslint-disable-next-line deprecation/deprecation\n fontSize: fonts.xLargePlus.fontSize,\n width: '24px',\n },\n };\n};\n//# sourceMappingURL=Modal.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { ActionButton } from '../../Button';\nimport { buttonStyles } from './Nav.styles';\nimport { classNamesFunction, divProperties, getNativeProps, getWindow, initializeComponentRef } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { composeComponentAs, composeRenderFunction } from '@uifabric/utilities';\n// The number pixels per indentation level for Nav links.\nvar _indentationSize = 14;\n// The number of pixels of left margin\nvar _baseIndent = 3;\n// global var used in _isLinkSelectedKey\nvar _urlResolver;\nexport function isRelativeUrl(url) {\n // A URL is relative if it has no protocol.\n return !!url && !/^[a-z0-9+-.]+:\\/\\//i.test(url);\n}\nvar getClassNames = classNamesFunction();\nvar NavBase = /** @class */ (function (_super) {\n __extends(NavBase, _super);\n function NavBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n _this._onRenderLink = function (link) {\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return React.createElement(\"div\", { className: classNames.linkText }, link.name);\n };\n _this._renderGroup = function (group, groupIndex) {\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? _this._renderGroupHeader : _b;\n var isExpanded = _this._isGroupExpanded(group);\n var classNames = getClassNames(styles, {\n theme: theme,\n isGroup: true,\n isExpanded: isExpanded,\n groups: groups,\n });\n var finalOnHeaderClick = function (ev, isCollapsing) {\n _this._onGroupHeaderClicked(group, ev);\n };\n var groupProps = __assign(__assign({}, group), { isExpanded: isExpanded, onHeaderClick: finalOnHeaderClick });\n return (React.createElement(\"div\", { key: groupIndex, className: classNames.group },\n groupProps.name ? onRenderGroupHeader(groupProps, _this._renderGroupHeader) : null,\n React.createElement(\"div\", { className: classNames.groupContent }, _this._renderLinks(groupProps.links, 0 /* nestingLevel */))));\n };\n _this._renderGroupHeader = function (group) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, expandButtonAriaLabel = _a.expandButtonAriaLabel;\n var isExpanded = group.isExpanded;\n var classNames = getClassNames(styles, {\n theme: theme,\n isGroup: true,\n isExpanded: isExpanded,\n groups: groups,\n });\n var label = (isExpanded ? group.collapseAriaLabel : group.expandAriaLabel) || expandButtonAriaLabel;\n var onHeaderClick = group.onHeaderClick;\n var onClick = onHeaderClick\n ? function (ev) {\n onHeaderClick(ev, isExpanded);\n }\n : undefined;\n return (React.createElement(\"button\", { className: classNames.chevronButton, onClick: onClick, \"aria-label\": label, \"aria-expanded\": isExpanded },\n React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }),\n group.name));\n };\n initializeComponentRef(_this);\n _this.state = {\n isGroupCollapsed: {},\n // TODO: consider removing\n // eslint-disable-next-line react/no-unused-state\n isLinkExpandStateChanged: false,\n selectedKey: props.initialSelectedKey || props.selectedKey,\n };\n return _this;\n }\n NavBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, groups = _a.groups, className = _a.className, isOnTop = _a.isOnTop, theme = _a.theme;\n if (!groups) {\n return null;\n }\n var groupElements = groups.map(this._renderGroup);\n var classNames = getClassNames(styles, { theme: theme, className: className, isOnTop: isOnTop, groups: groups });\n return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, componentRef: this._focusZone }, this.props.focusZoneProps),\n React.createElement(\"nav\", { role: \"navigation\", className: classNames.root, \"aria-label\": this.props.ariaLabel }, groupElements)));\n };\n Object.defineProperty(NavBase.prototype, \"selectedKey\", {\n get: function () {\n return this.state.selectedKey;\n },\n enumerable: true,\n configurable: true\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 * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n NavBase.prototype.focus = function (forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (this._focusZone && this._focusZone.current) {\n return this._focusZone.current.focus(forceIntoFirstElement);\n }\n return false;\n };\n NavBase.prototype._renderNavLink = function (link, linkIndex, nestingLevel) {\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var isLinkWithIcon = link.icon || link.iconProps;\n var isSelectedLink = this._isLinkSelected(link);\n var _b = link.ariaCurrent, ariaCurrent = _b === void 0 ? 'page' : _b;\n var classNames = getClassNames(styles, {\n theme: theme,\n isSelected: isSelectedLink,\n isDisabled: link.disabled,\n isButtonEntry: link.onClick && !link.forceAnchor,\n leftPadding: _indentationSize * nestingLevel + _baseIndent + (isLinkWithIcon ? 0 : 24),\n groups: groups,\n });\n // Prevent hijacking of the parent window if link.target is defined\n var rel = link.url && link.target && !isRelativeUrl(link.url) ? 'noopener noreferrer' : undefined;\n var LinkAs = this.props.linkAs ? composeComponentAs(this.props.linkAs, ActionButton) : ActionButton;\n var onRenderLink = this.props.onRenderLink\n ? composeRenderFunction(this.props.onRenderLink, this._onRenderLink)\n : this._onRenderLink;\n return (React.createElement(LinkAs, { className: classNames.link, styles: buttonStyles, href: link.url || (link.forceAnchor ? '#' : undefined), iconProps: link.iconProps || { iconName: link.icon }, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: link.onClick ? this._onNavButtonLinkClicked.bind(this, link) : this._onNavAnchorLinkClicked.bind(this, link), title: link.title !== undefined ? link.title : link.name, target: link.target, rel: rel, disabled: link.disabled, \"aria-current\": isSelectedLink ? ariaCurrent : undefined, \"aria-label\": link.ariaLabel ? link.ariaLabel : undefined, link: link }, onRenderLink(link)));\n };\n NavBase.prototype._renderCompositeLink = function (link, linkIndex, nestingLevel) {\n var divProps = __assign({}, getNativeProps(link, divProperties, ['onClick']));\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, expandButtonAriaLabel = _a.expandButtonAriaLabel, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n isExpanded: !!link.isExpanded,\n isSelected: this._isLinkSelected(link),\n isLink: true,\n isDisabled: link.disabled,\n position: _indentationSize * nestingLevel + 1,\n groups: groups,\n });\n var finalExpandBtnAriaLabel = '';\n if (link.links && link.links.length > 0) {\n if (link.collapseAriaLabel || link.expandAriaLabel) {\n finalExpandBtnAriaLabel = link.isExpanded ? link.collapseAriaLabel : link.expandAriaLabel;\n }\n else {\n // TODO remove when `expandButtonAriaLabel` is removed. This is not an ideal concatenation for localization.\n finalExpandBtnAriaLabel = expandButtonAriaLabel ? link.name + \" \" + expandButtonAriaLabel : link.name;\n }\n }\n return (React.createElement(\"div\", __assign({}, divProps, { key: link.key || linkIndex, className: classNames.compositeLink }),\n link.links && link.links.length > 0 ? (React.createElement(\"button\", { className: classNames.chevronButton, onClick: this._onLinkExpandClicked.bind(this, link), \"aria-label\": finalExpandBtnAriaLabel, \"aria-expanded\": link.isExpanded ? 'true' : 'false' },\n React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }))) : null,\n this._renderNavLink(link, linkIndex, nestingLevel)));\n };\n NavBase.prototype._renderLink = function (link, linkIndex, nestingLevel) {\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return (React.createElement(\"li\", { key: link.key || linkIndex, role: \"listitem\", className: classNames.navItem },\n this._renderCompositeLink(link, linkIndex, nestingLevel),\n link.isExpanded ? this._renderLinks(link.links, ++nestingLevel) : null));\n };\n NavBase.prototype._renderLinks = function (links, nestingLevel) {\n var _this = this;\n if (!links || !links.length) {\n return null;\n }\n var linkElements = links.map(function (link, linkIndex) {\n return _this._renderLink(link, linkIndex, nestingLevel);\n });\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return (React.createElement(\"ul\", { role: \"list\", className: classNames.navItems }, linkElements));\n };\n NavBase.prototype._onGroupHeaderClicked = function (group, ev) {\n if (group.onHeaderClick) {\n group.onHeaderClick(ev, this._isGroupExpanded(group));\n }\n this._toggleCollapsed(group);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n NavBase.prototype._onLinkExpandClicked = function (link, ev) {\n var onLinkExpandClick = this.props.onLinkExpandClick;\n if (onLinkExpandClick) {\n onLinkExpandClick(ev, link);\n }\n if (!ev.defaultPrevented) {\n link.isExpanded = !link.isExpanded;\n // eslint-disable-next-line react/no-unused-state\n this.setState({ isLinkExpandStateChanged: true });\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n NavBase.prototype._preventBounce = function (link, ev) {\n if (!link.url && link.forceAnchor) {\n ev.preventDefault();\n }\n };\n NavBase.prototype._onNavAnchorLinkClicked = function (link, ev) {\n // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n this._preventBounce(link, ev);\n if (this.props.onLinkClick) {\n this.props.onLinkClick(ev, link);\n }\n if (!link.url && link.links && link.links.length > 0) {\n this._onLinkExpandClicked(link, ev);\n }\n this.setState({ selectedKey: link.key });\n };\n NavBase.prototype._onNavButtonLinkClicked = function (link, ev) {\n // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n this._preventBounce(link, ev);\n if (link.onClick) {\n link.onClick(ev, link);\n }\n if (!link.url && link.links && link.links.length > 0) {\n this._onLinkExpandClicked(link, ev);\n }\n this.setState({ selectedKey: link.key });\n };\n NavBase.prototype._isLinkSelected = function (link) {\n // if caller passes in selectedKey, use it as first choice or\n // if current state.selectedKey (from addressbar) is match to the link or\n // check if URL is matching location.href (if link.url exists)\n if (this.props.selectedKey !== undefined) {\n return link.key === this.props.selectedKey;\n }\n else if (this.state.selectedKey !== undefined) {\n return link.key === this.state.selectedKey;\n }\n else if (typeof getWindow() === 'undefined' || !link.url) {\n // resolve is not supported for ssr\n return false;\n }\n else {\n // If selectedKey is undefined in props and state, then check URL\n _urlResolver = _urlResolver || document.createElement('a');\n _urlResolver.href = link.url || '';\n var target = _urlResolver.href;\n if (location.href === target) {\n return true;\n }\n // If selectedKey is not defined in state, then check URL to determine link selected status\n if (location.protocol + '//' + location.host + location.pathname === target) {\n return true;\n }\n if (location.hash) {\n // Match the hash to the url.\n if (location.hash === link.url) {\n return true;\n }\n // Match a rebased url. (e.g. #foo becomes http://hostname/foo)\n _urlResolver.href = location.hash.substring(1);\n return _urlResolver.href === target;\n }\n }\n return false;\n };\n NavBase.prototype._isGroupExpanded = function (group) {\n if (group.name && this.state.isGroupCollapsed.hasOwnProperty(group.name)) {\n return !this.state.isGroupCollapsed[group.name];\n }\n if (group.collapseByDefault !== undefined) {\n return !group.collapseByDefault;\n }\n return true;\n };\n NavBase.prototype._toggleCollapsed = function (group) {\n var _a;\n if (group.name) {\n var newGroupCollapsed = __assign(__assign({}, this.state.isGroupCollapsed), (_a = {}, _a[group.name] = this._isGroupExpanded(group), _a));\n this.setState({ isGroupCollapsed: newGroupCollapsed });\n }\n };\n NavBase.defaultProps = {\n groups: null,\n };\n return NavBase;\n}(React.Component));\nexport { NavBase };\n//# sourceMappingURL=Nav.base.js.map","import { styled } from '../../Utilities';\nimport { NavBase } from './Nav.base';\nimport { getStyles } from './Nav.styles';\nexport var Nav = styled(NavBase, getStyles, undefined, {\n scope: 'Nav',\n});\n//# sourceMappingURL=Nav.js.map","import { AnimationClassNames, getFocusStyle, ZIndexes, getGlobalClassNames, HighContrastSelector, FontWeights, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Nav',\n linkText: 'ms-Nav-linkText',\n compositeLink: 'ms-Nav-compositeLink',\n link: 'ms-Nav-link',\n chevronButton: 'ms-Nav-chevronButton',\n chevronIcon: 'ms-Nav-chevron',\n navItem: 'ms-Nav-navItem',\n navItems: 'ms-Nav-navItems',\n group: 'ms-Nav-group',\n groupContent: 'ms-Nav-groupContent',\n};\nexport var buttonStyles = {\n textContainer: {\n overflow: 'hidden',\n },\n label: {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isOnTop = props.isOnTop, isExpanded = props.isExpanded, isGroup = props.isGroup, isLink = props.isLink, isSelected = props.isSelected, isDisabled = props.isDisabled, isButtonEntry = props.isButtonEntry, _b = props.navHeight, navHeight = _b === void 0 ? 44 : _b, position = props.position, _c = props.leftPadding, leftPadding = _c === void 0 ? 20 : _c, _d = props.leftPaddingExpanded, leftPaddingExpanded = _d === void 0 ? 28 : _d, _e = props.rightPadding, rightPadding = _e === void 0 ? 20 : _e;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n className,\n fonts.medium,\n {\n overflowY: 'auto',\n userSelect: 'none',\n WebkitOverflowScrolling: 'touch',\n },\n isOnTop && [\n {\n position: 'absolute',\n },\n AnimationClassNames.slideRightIn40,\n ],\n ],\n linkText: [\n classNames.linkText,\n {\n margin: '0 4px',\n overflow: 'hidden',\n verticalAlign: 'middle',\n textAlign: 'left',\n textOverflow: 'ellipsis',\n },\n ],\n compositeLink: [\n classNames.compositeLink,\n {\n display: 'block',\n position: 'relative',\n color: semanticColors.bodyText,\n },\n isExpanded && 'is-expanded',\n isSelected && 'is-selected',\n isDisabled && 'is-disabled',\n isDisabled && {\n color: semanticColors.disabledText,\n },\n ],\n link: [\n classNames.link,\n getFocusStyle(theme),\n {\n display: 'block',\n position: 'relative',\n height: navHeight,\n width: '100%',\n lineHeight: navHeight + \"px\",\n textDecoration: 'none',\n cursor: 'pointer',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingLeft: leftPadding,\n paddingRight: rightPadding,\n color: semanticColors.bodyText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 0,\n selectors: {\n ':focus': {\n border: '1px solid WindowText',\n },\n },\n },\n _a),\n },\n !isDisabled && {\n selectors: {\n '.ms-Nav-compositeLink:hover &': {\n backgroundColor: semanticColors.bodyBackgroundHovered,\n },\n },\n },\n isSelected && {\n color: semanticColors.bodyTextChecked,\n fontWeight: FontWeights.semibold,\n backgroundColor: semanticColors.bodyBackgroundChecked,\n selectors: {\n '&:after': {\n borderLeft: \"2px solid \" + palette.themePrimary,\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'none',\n },\n },\n },\n isDisabled && {\n color: semanticColors.disabledText,\n },\n isButtonEntry && {\n color: palette.themePrimary,\n },\n ],\n chevronButton: [\n classNames.chevronButton,\n getFocusStyle(theme),\n fonts.small,\n {\n display: 'block',\n textAlign: 'left',\n lineHeight: navHeight + \"px\",\n margin: '5px 0',\n padding: \"0px, \" + rightPadding + \"px, 0px, \" + leftPaddingExpanded + \"px\",\n border: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n cursor: 'pointer',\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n selectors: {\n '&:visited': {\n color: semanticColors.bodyText,\n },\n },\n },\n isGroup && {\n fontSize: fonts.large.fontSize,\n width: '100%',\n height: navHeight,\n borderBottom: \"1px solid \" + semanticColors.bodyDivider,\n },\n isLink && {\n display: 'block',\n width: leftPaddingExpanded - 2,\n height: navHeight - 2,\n position: 'absolute',\n top: '1px',\n left: position + \"px\",\n zIndex: ZIndexes.Nav,\n padding: 0,\n margin: 0,\n },\n isSelected && {\n color: palette.themePrimary,\n backgroundColor: palette.neutralLighterAlt,\n selectors: {\n '&:after': {\n borderLeft: \"2px solid \" + palette.themePrimary,\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'none',\n },\n },\n },\n ],\n chevronIcon: [\n classNames.chevronIcon,\n {\n position: 'absolute',\n left: '8px',\n height: navHeight,\n lineHeight: navHeight + \"px\",\n fontSize: fonts.small.fontSize,\n transition: 'transform .1s linear',\n },\n isExpanded && {\n transform: 'rotate(-180deg)',\n },\n isLink && {\n top: 0,\n },\n ],\n navItem: [\n classNames.navItem,\n {\n padding: 0,\n },\n ],\n navItems: [\n classNames.navItems,\n {\n listStyleType: 'none',\n padding: 0,\n margin: 0,\n },\n ],\n group: [classNames.group, isExpanded && 'is-expanded'],\n groupContent: [\n classNames.groupContent,\n {\n display: 'none',\n marginBottom: '40px',\n },\n AnimationClassNames.slideDownIn20,\n isExpanded && {\n display: 'block',\n },\n ],\n };\n};\n//# sourceMappingURL=Nav.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { initializeComponentRef, classNamesFunction, divProperties, elementContains, focusFirstChild, getNativeProps, warnMutuallyExclusive, } from '../../Utilities';\nimport { KeytipManager } from '../../utilities/keytips/KeytipManager';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'OverflowSet';\nvar OverflowSetBase = /** @class */ (function (_super) {\n __extends(OverflowSetBase, _super);\n function OverflowSetBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n _this._persistedKeytips = {};\n _this._keytipManager = KeytipManager.getInstance();\n _this._divContainer = React.createRef();\n _this._onRenderItems = function (items) {\n return items.map(function (item, i) {\n return (React.createElement(\"div\", { key: item.key, className: _this._classNames.item }, _this.props.onRenderItem(item)));\n });\n };\n _this._onRenderOverflowButtonWrapper = function (items) {\n var wrapperDivProps = {\n className: _this._classNames.overflowButton,\n };\n var overflowKeytipSequences = _this.props.keytipSequences;\n var newOverflowItems = [];\n if (overflowKeytipSequences) {\n items.forEach(function (overflowItem) {\n var keytip = overflowItem.keytipProps;\n if (keytip) {\n // Create persisted keytip\n var persistedKeytip = {\n content: keytip.content,\n keySequences: keytip.keySequences,\n disabled: keytip.disabled || !!(overflowItem.disabled || overflowItem.isDisabled),\n hasDynamicChildren: keytip.hasDynamicChildren,\n hasMenu: keytip.hasMenu,\n };\n if (keytip.hasDynamicChildren || _this._getSubMenuForItem(overflowItem)) {\n // If the keytip has a submenu or children nodes, change onExecute to persistedKeytipExecute\n persistedKeytip.onExecute = _this._keytipManager.menuExecute.bind(_this._keytipManager, overflowKeytipSequences, overflowItem.keytipProps.keySequences);\n }\n else {\n // If the keytip doesn't have a submenu, just execute the original function\n persistedKeytip.onExecute = keytip.onExecute;\n }\n // Add this persisted keytip to our internal list, use a temporary uniqueID (its content)\n // uniqueID will get updated on register\n _this._persistedKeytips[persistedKeytip.content] = persistedKeytip;\n // Add the overflow sequence to this item\n var newOverflowItem = __assign(__assign({}, overflowItem), { keytipProps: __assign(__assign({}, keytip), { overflowSetSequence: overflowKeytipSequences }) });\n newOverflowItems.push(newOverflowItem);\n }\n else {\n // Nothing to change, add overflowItem to list\n newOverflowItems.push(overflowItem);\n }\n });\n }\n else {\n newOverflowItems = items;\n }\n return React.createElement(\"div\", __assign({}, wrapperDivProps), _this.props.onRenderOverflowButton(newOverflowItems));\n };\n initializeComponentRef(_this);\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n doNotContainWithinFocusZone: 'focusZoneProps',\n });\n return _this;\n }\n OverflowSetBase.prototype.render = function () {\n var _a = this.props, items = _a.items, overflowItems = _a.overflowItems, className = _a.className, \n // eslint-disable-next-line deprecation/deprecation\n focusZoneProps = _a.focusZoneProps, styles = _a.styles, vertical = _a.vertical, \n // eslint-disable-next-line deprecation/deprecation\n doNotContainWithinFocusZone = _a.doNotContainWithinFocusZone, role = _a.role, _b = _a.overflowSide, overflowSide = _b === void 0 ? 'end' : _b;\n this._classNames = getClassNames(styles, { className: className, vertical: vertical });\n var Tag;\n var uniqueComponentProps;\n if (doNotContainWithinFocusZone) {\n Tag = 'div';\n uniqueComponentProps = __assign(__assign({}, getNativeProps(this.props, divProperties)), { ref: this._divContainer });\n }\n else {\n Tag = FocusZone;\n uniqueComponentProps = __assign(__assign(__assign({}, getNativeProps(this.props, divProperties)), focusZoneProps), { componentRef: this._focusZone, direction: vertical ? FocusZoneDirection.vertical : FocusZoneDirection.horizontal });\n }\n var showOverflow = overflowItems && overflowItems.length > 0;\n return (React.createElement(Tag, __assign({ role: role || 'group', \"aria-orientation\": role === 'menubar' ? (vertical === true ? 'vertical' : 'horizontal') : undefined }, uniqueComponentProps, { className: this._classNames.root }),\n overflowSide === 'start' && showOverflow && this._onRenderOverflowButtonWrapper(overflowItems),\n items && this._onRenderItems(items),\n overflowSide === 'end' && showOverflow && this._onRenderOverflowButtonWrapper(overflowItems)));\n };\n /**\n * Sets focus to the first tabbable item in the OverflowSet.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element,\n * even if focus is already in theOverflowSet\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n OverflowSetBase.prototype.focus = function (forceIntoFirstElement) {\n var focusSucceeded = false;\n // eslint-disable-next-line deprecation/deprecation\n if (this.props.doNotContainWithinFocusZone) {\n if (this._divContainer.current) {\n focusSucceeded = focusFirstChild(this._divContainer.current);\n }\n }\n else if (this._focusZone.current) {\n focusSucceeded = this._focusZone.current.focus(forceIntoFirstElement);\n }\n return focusSucceeded;\n };\n /**\n * Sets focus to a specific child element within the OverflowSet.\n * @param childElement - The child element within the zone to focus.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n OverflowSetBase.prototype.focusElement = function (childElement) {\n var focusSucceeded = false;\n if (!childElement) {\n return false;\n }\n // eslint-disable-next-line deprecation/deprecation\n if (this.props.doNotContainWithinFocusZone) {\n if (this._divContainer.current && elementContains(this._divContainer.current, childElement)) {\n childElement.focus();\n focusSucceeded = document.activeElement === childElement;\n }\n }\n else if (this._focusZone.current) {\n focusSucceeded = this._focusZone.current.focusElement(childElement);\n }\n return focusSucceeded;\n };\n // Add keytip register/unregister handlers to lifecycle functions to correctly manage persisted keytips\n OverflowSetBase.prototype.componentDidMount = function () {\n this._registerPersistedKeytips();\n };\n OverflowSetBase.prototype.componentWillUnmount = function () {\n this._unregisterPersistedKeytips();\n };\n OverflowSetBase.prototype.UNSAFE_componentWillUpdate = function () {\n this._unregisterPersistedKeytips();\n };\n OverflowSetBase.prototype.componentDidUpdate = function () {\n this._registerPersistedKeytips();\n };\n OverflowSetBase.prototype._registerPersistedKeytips = function () {\n var _this = this;\n Object.keys(this._persistedKeytips).forEach(function (key) {\n var keytip = _this._persistedKeytips[key];\n var uniqueID = _this._keytipManager.register(keytip, true);\n // Update map\n _this._persistedKeytips[uniqueID] = keytip;\n delete _this._persistedKeytips[key];\n });\n };\n OverflowSetBase.prototype._unregisterPersistedKeytips = function () {\n var _this = this;\n // Delete all persisted keytips saved\n Object.keys(this._persistedKeytips).forEach(function (uniqueID) {\n _this._keytipManager.unregister(_this._persistedKeytips[uniqueID], uniqueID, true);\n });\n this._persistedKeytips = {};\n };\n /**\n * Gets the subMenu for an overflow item\n * Checks if itemSubMenuProvider has been defined, if not defaults to subMenuProps\n */\n OverflowSetBase.prototype._getSubMenuForItem = function (item) {\n if (this.props.itemSubMenuProvider) {\n return this.props.itemSubMenuProvider(item);\n }\n if (item.subMenuProps) {\n return item.subMenuProps.items;\n }\n return undefined;\n };\n return OverflowSetBase;\n}(React.Component));\nexport { OverflowSetBase };\n//# sourceMappingURL=OverflowSet.base.js.map","var overflowItemStyle = {\n flexShrink: 0,\n display: 'inherit',\n};\nexport var getStyles = function (props) {\n var className = props.className, vertical = props.vertical;\n return {\n root: [\n 'ms-OverflowSet',\n {\n position: 'relative',\n display: 'flex',\n flexWrap: 'nowrap',\n },\n vertical && { flexDirection: 'column' },\n className,\n ],\n item: ['ms-OverflowSet-item', overflowItemStyle],\n overflowButton: ['ms-OverflowSet-overflowButton', overflowItemStyle],\n };\n};\n//# sourceMappingURL=OverflowSet.styles.js.map","import { styled } from '../../Utilities';\nimport { OverflowSetBase } from './OverflowSet.base';\nimport { getStyles } from './OverflowSet.styles';\nexport var OverflowSet = styled(OverflowSetBase, getStyles, undefined, {\n scope: 'OverflowSet',\n});\n//# sourceMappingURL=OverflowSet.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n __extends(PanelBase, _super);\n function PanelBase(props) {\n var _this = _super.call(this, props) || this;\n _this._panel = React.createRef();\n _this._animationCallback = null;\n _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n _this.dismiss = function (ev) {\n if (_this.props.onDismiss && _this.isActive) {\n _this.props.onDismiss(ev);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n _this.close();\n }\n };\n // Allow the user to scroll within the panel but not on the body\n _this._allowScrollOnPanel = function (elt) {\n if (elt) {\n if (_this._allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, _this._events);\n }\n else {\n allowScrollOnElement(elt, _this._events);\n }\n }\n else {\n _this._events.off(_this._scrollableContent);\n }\n _this._scrollableContent = elt;\n };\n _this._onRenderNavigation = function (props) {\n if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n return null;\n }\n var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n };\n _this._onRenderNavigationContent = function (props) {\n var _a;\n var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n if (hasCloseButton) {\n var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n return (React.createElement(React.Fragment, null,\n !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n React.createElement(IconButton, { styles: iconButtonStyles, \n // eslint-disable-next-line deprecation/deprecation\n className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n }\n return null;\n };\n _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n if (headerText) {\n return (React.createElement(\"div\", { className: _this._classNames.header },\n React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n }\n return null;\n };\n _this._onRenderBody = function (props) {\n return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n };\n _this._onRenderFooter = function (props) {\n var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n if (onRenderFooterContent) {\n return (React.createElement(\"div\", { className: _this._classNames.footer },\n React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n }\n return null;\n };\n _this._animateTo = function (newVisibilityState) {\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n _this.props.onOpen();\n }\n _this._animationCallback = _this._async.setTimeout(function () {\n _this.setState({ visibility: newVisibilityState });\n _this._onTransitionComplete();\n }, 200);\n };\n _this._clearExistingAnimationTimer = function () {\n if (_this._animationCallback !== null) {\n _this._async.clearTimeout(_this._animationCallback);\n }\n };\n _this._onPanelClick = function (ev) {\n _this.dismiss(ev);\n };\n _this._onTransitionComplete = function () {\n _this._updateFooterPosition();\n if (_this.state.visibility === PanelVisibilityState.open && _this.props.onOpened) {\n _this.props.onOpened();\n }\n if (_this.state.visibility === PanelVisibilityState.closed && _this.props.onDismissed) {\n _this.props.onDismissed();\n }\n };\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n ignoreExternalFocusing: 'focusTrapZoneProps',\n forceFocusInsideTrap: 'focusTrapZoneProps',\n firstFocusableSelector: 'focusTrapZoneProps',\n });\n _this.state = {\n isFooterSticky: false,\n // intentionally ignore props so animation takes place during componentDidMount\n visibility: PanelVisibilityState.closed,\n id: getId('Panel'),\n };\n return _this;\n }\n PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n if (nextProps.isOpen === undefined) {\n return null; // no state update\n }\n if (nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.closed ||\n prevState.visibility === PanelVisibilityState.animatingClosed)) {\n return { visibility: PanelVisibilityState.animatingOpen };\n }\n if (!nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.open ||\n prevState.visibility === PanelVisibilityState.animatingOpen)) {\n return { visibility: PanelVisibilityState.animatingClosed };\n }\n return null;\n };\n PanelBase.prototype.componentDidMount = function () {\n this._events.on(window, 'resize', this._updateFooterPosition);\n if (this._shouldListenForOuterClick(this.props)) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n if (this.props.isOpen) {\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n }\n };\n PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n if (this.state.visibility !== previousState.visibility) {\n this._clearExistingAnimationTimer();\n if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n this._animateTo(PanelVisibilityState.open);\n }\n else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n this._animateTo(PanelVisibilityState.closed);\n }\n }\n if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n this._events.off(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n };\n PanelBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n PanelBase.prototype.render = function () {\n var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n /* eslint-disable deprecation/deprecation */\n firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, \n /* eslint-enable deprecation/deprecation */\n isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n var isRTL = getRTL(theme);\n var isOnRightSide = isRTL ? isLeft : !isLeft;\n var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n var nativeProps = getNativeProps(this.props, divProperties);\n var isOpen = this.isActive;\n var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n this._headerTextId = headerText && id + '-headerText';\n if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n return null;\n }\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n hasCloseButton: hasCloseButton,\n headerClassName: headerClassName,\n isAnimating: isAnimating,\n isFooterSticky: isFooterSticky,\n isFooterAtBottom: isFooterAtBottom,\n isOnRightSide: isOnRightSide,\n isOpen: isOpen,\n isHiddenOnDismiss: isHiddenOnDismiss,\n type: type,\n hasCustomNavigation: this._hasCustomNavigation,\n });\n var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n var overlay;\n if (isBlocking && isOpen) {\n overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n }\n return (React.createElement(Layer, __assign({}, layerProps),\n React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": \"true\", ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel }, popupProps),\n React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n overlay,\n React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n React.createElement(\"div\", { className: _classNames.contentInner },\n (this._hasCustomNavigation || !hasCloseButton) &&\n onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true }, onRenderBody(this.props, this._onRenderBody)),\n onRenderFooter(this.props, this._onRenderFooter)))))));\n };\n PanelBase.prototype.open = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n };\n PanelBase.prototype.close = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (!this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingClosed });\n };\n Object.defineProperty(PanelBase.prototype, \"isActive\", {\n /** isActive is true when panel is open or opening. */\n get: function () {\n return (this.state.visibility === PanelVisibilityState.open ||\n this.state.visibility === PanelVisibilityState.animatingOpen);\n },\n enumerable: true,\n configurable: true\n });\n PanelBase.prototype._shouldListenForOuterClick = function (props) {\n return !!props.isBlocking && !!props.isOpen;\n };\n PanelBase.prototype._updateFooterPosition = function () {\n var scrollableContent = this._scrollableContent;\n if (scrollableContent) {\n var height = scrollableContent.clientHeight;\n var innerHeight_1 = scrollableContent.scrollHeight;\n this.setState({\n isFooterSticky: height < innerHeight_1 ? true : false,\n });\n }\n };\n PanelBase.prototype._dismissOnOuterClick = function (ev) {\n var panel = this._panel.current;\n if (this.isActive && panel && !ev.defaultPrevented) {\n if (!elementContains(panel, ev.target)) {\n if (this.props.onOuterClick) {\n this.props.onOuterClick(ev);\n }\n else {\n this.dismiss(ev);\n }\n }\n }\n };\n PanelBase.defaultProps = {\n isHiddenOnDismiss: false,\n isOpen: undefined,\n isBlocking: true,\n hasCloseButton: true,\n type: PanelType.smallFixedFar,\n };\n return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Panel',\n main: 'ms-Panel-main',\n commands: 'ms-Panel-commands',\n contentInner: 'ms-Panel-contentInner',\n scrollableContent: 'ms-Panel-scrollableContent',\n navigation: 'ms-Panel-navigation',\n closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n header: 'ms-Panel-header',\n headerText: 'ms-Panel-headerText',\n content: 'ms-Panel-content',\n footer: 'ms-Panel-footer',\n footerInner: 'ms-Panel-footerInner',\n isOpen: 'is-open',\n hasCloseButton: 'ms-Panel--hasCloseButton',\n smallFluid: 'ms-Panel--smFluid',\n smallFixedNear: 'ms-Panel--smLeft',\n smallFixedFar: 'ms-Panel--sm',\n medium: 'ms-Panel--md',\n large: 'ms-Panel--lg',\n largeFixed: 'ms-Panel--fixed',\n extraLarge: 'ms-Panel--xl',\n custom: 'ms-Panel--custom',\n customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n full: '100%',\n auto: 'auto',\n xs: 272,\n sm: 340,\n md1: 592,\n md2: 644,\n lg: 940,\n};\nvar panelMargin = {\n auto: 'auto',\n none: 0,\n md: 48,\n lg: 428,\n xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n _a[\"@media (min-width: \" + ScreenWidthMinMedium + \"px)\"] = {\n width: panelWidth.sm,\n },\n _a);\nvar mediumPanelSelectors = (_b = {},\n _b[\"@media (min-width: \" + ScreenWidthMinLarge + \"px)\"] = {\n width: panelWidth.md1,\n },\n _b[\"@media (min-width: \" + ScreenWidthMinXLarge + \"px)\"] = {\n width: panelWidth.md2,\n },\n _b);\nvar largePanelSelectors = (_c = {},\n _c[\"@media (min-width: \" + ScreenWidthMinUhfMobile + \"px)\"] = {\n left: panelMargin.md,\n width: panelWidth.auto,\n },\n _c[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.lg,\n },\n _c);\nvar largeFixedPanelSelectors = (_d = {},\n _d[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.auto,\n width: panelWidth.lg,\n },\n _d);\nvar extraLargePanelSelectors = (_e = {},\n _e[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.xl,\n },\n _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n var selectors;\n // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n // are not checked in here because they render the same in all the breakpoints\n // and have the checks done separately in the `getStyles` function below.\n switch (type) {\n case PanelType.smallFixedFar:\n selectors = __assign({}, smallPanelSelectors);\n break;\n case PanelType.medium:\n selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n break;\n case PanelType.large:\n selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n break;\n case PanelType.largeFixed:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n break;\n case PanelType.extraLarge:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n break;\n default:\n break;\n }\n return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n paddingLeft: '24px',\n paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _b = props.type, type = _b === void 0 ? PanelType.smallFixedFar : _b;\n var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isOpen && classNames.isOpen,\n hasCloseButton && classNames.hasCloseButton,\n {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n isCustomPanel && isOnRightSide && classNames.custom,\n isCustomPanel && !isOnRightSide && classNames.customNear,\n className,\n ],\n overlay: [\n {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n isOpen && isAnimating && AnimationClassNames.fadeIn100,\n !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n ],\n hiddenPanel: [\n !isOpen &&\n !isAnimating &&\n isHiddenOnDismiss && {\n visibility: 'hidden',\n },\n ],\n main: [\n classNames.main,\n {\n backgroundColor: semanticColors.bodyBackground,\n boxShadow: effects.elevation64,\n pointerEvents: 'auto',\n position: 'absolute',\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n bottom: 0,\n top: 0,\n // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n left: panelMargin.auto,\n right: panelMargin.none,\n width: panelWidth.full,\n selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n borderLeft: \"3px solid \" + semanticColors.variantBorder,\n borderRight: \"3px solid \" + semanticColors.variantBorder,\n }, _a), getPanelBreakpoints(type)),\n },\n type === PanelType.smallFluid && {\n left: panelMargin.none,\n },\n type === PanelType.smallFixedNear && {\n left: panelMargin.none,\n right: panelMargin.auto,\n width: panelWidth.xs,\n },\n type === PanelType.customNear && {\n right: 'auto',\n left: 0,\n },\n isCustomPanel && {\n maxWidth: '100vw',\n },\n isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n focusTrapZoneClassName,\n ],\n commands: [\n classNames.commands,\n {\n marginTop: 18,\n },\n hasCustomNavigation && {\n marginTop: 'inherit',\n },\n ],\n navigation: [\n classNames.navigation,\n {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n hasCustomNavigation && {\n height: commandBarHeight,\n },\n ],\n contentInner: [\n classNames.contentInner,\n {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n overflowY: 'hidden',\n },\n ],\n header: [\n classNames.header,\n sharedPaddingStyles,\n {\n alignSelf: 'flex-start',\n },\n hasCloseButton &&\n !hasCustomNavigation && {\n flexGrow: 1,\n },\n hasCustomNavigation && {\n // Ensure that title doesn't shrink if screen is too small\n flexShrink: 0,\n },\n ],\n headerText: [\n classNames.headerText,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n lineHeight: '27px',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n wordBreak: 'break-word',\n hyphens: 'auto',\n },\n headerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n },\n isFooterAtBottom && {\n flexGrow: 1,\n },\n ],\n content: [\n classNames.content,\n sharedPaddingStyles,\n {\n paddingBottom: 20,\n },\n ],\n footer: [\n classNames.footer,\n {\n // Ensure that footer doesn't shrink if screen is too small\n flexShrink: 0,\n borderTop: '1px solid transparent',\n transition: \"opacity \" + AnimationVariables.durationValue3 + \" \" + AnimationVariables.easeFunction2,\n },\n isFooterSticky && {\n background: semanticColors.bodyBackground,\n borderTopColor: semanticColors.variantBorder,\n },\n ],\n footerInner: [\n classNames.footerInner,\n sharedPaddingStyles,\n {\n paddingBottom: 16,\n paddingTop: 16,\n },\n ],\n subComponentStyles: {\n closeButton: {\n root: [\n classNames.closeButton,\n {\n marginRight: 14,\n color: theme.palette.neutralSecondary,\n fontSize: IconFontSizes.large,\n },\n hasCustomNavigation && {\n marginRight: 0,\n height: 'auto',\n width: '44px',\n },\n ],\n rootHovered: {\n color: theme.palette.neutralPrimary,\n },\n },\n },\n };\n};\n//# sourceMappingURL=Panel.styles.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n /**\n * Renders the Panel with a `fluid` (full screen) width.\n * Recommended for use on small screen breakpoints.\n * - Small (320-479): full screen width, 16px left/right padding\n * - Medium (480-639): full screen width, 16px left/right padding\n * - Large (640-1023): full screen width, 32px left/right padding\n * - XLarge (1024-1365): full screen width, 32px left/right padding\n * - XXLarge (1366-up): full screen width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): 340px width, 16px left/right padding\n * - Large (640-1023): 340px width, 32px left/right padding\n * - XLarge (1024-1365): 340px width, 32px left/right padding\n * - XXLarge (1366-up): 340px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n * - Small (320-479): 272px width, 16px left/right padding\n * - Medium (480-639): 272px width, 16px left/right padding\n * - Large (640-1023): 272px width, 32px left/right padding\n * - XLarge (1024-1365): 272px width, 32px left/right padding\n * - XXLarge (1366-up): 272px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n /**\n * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): 592px width, 32px left/right padding\n * - XLarge (1024-1365): 644px width, 32px left/right padding\n * - XXLarge (1366-up): 644px width, 40px left/right padding\n */\n PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"large\"] = 4] = \"large\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n * XX-Large breakpoint.\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 940px width, 40px left/right padding\n */\n PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n /**\n * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode, DirectionalHint } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize, } from './Persona.types';\nvar getClassNames = classNamesFunction();\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nvar PersonaBase = /** @class */ (function (_super) {\n __extends(PersonaBase, _super);\n function PersonaBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderPersonaCoin = function (props) {\n return React.createElement(PersonaCoin, __assign({}, props));\n };\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Persona', props, { primaryText: 'text' });\n }\n return _this;\n }\n PersonaBase.prototype.render = function () {\n // wrapping default render behavior based on various this.props properties\n var _onRenderPrimaryText = this._onRenderText(this._getText(), this.props.showOverflowTooltip);\n var _onRenderSecondaryText = this._onRenderText(this.props.secondaryText, this.props.showOverflowTooltip);\n var _onRenderTertiaryText = this._onRenderText(this.props.tertiaryText, this.props.showOverflowTooltip);\n var _onRenderOptionalText = this._onRenderText(this.props.optionalText, this.props.showOverflowTooltip);\n var _a = this.props, hidePersonaDetails = _a.hidePersonaDetails, _b = _a.onRenderOptionalText, onRenderOptionalText = _b === void 0 ? _onRenderOptionalText : _b, _c = _a.onRenderPrimaryText, onRenderPrimaryText = _c === void 0 ? _onRenderPrimaryText : _c, _d = _a.onRenderSecondaryText, onRenderSecondaryText = _d === void 0 ? _onRenderSecondaryText : _d, _e = _a.onRenderTertiaryText, onRenderTertiaryText = _e === void 0 ? _onRenderTertiaryText : _e, _f = _a.onRenderPersonaCoin, onRenderPersonaCoin = _f === void 0 ? this._onRenderPersonaCoin : _f;\n var size = this.props.size;\n // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n var _g = this.props, allowPhoneInitials = _g.allowPhoneInitials, className = _g.className, coinProps = _g.coinProps, showUnknownPersonaCoin = _g.showUnknownPersonaCoin, coinSize = _g.coinSize, styles = _g.styles, imageAlt = _g.imageAlt, imageInitials = _g.imageInitials, imageShouldFadeIn = _g.imageShouldFadeIn, imageShouldStartVisible = _g.imageShouldStartVisible, imageUrl = _g.imageUrl, initialsColor = _g.initialsColor, initialsTextColor = _g.initialsTextColor, isOutOfOffice = _g.isOutOfOffice, onPhotoLoadingStateChange = _g.onPhotoLoadingStateChange, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = _g.onRenderCoin, onRenderInitials = _g.onRenderInitials, presence = _g.presence, presenceTitle = _g.presenceTitle, presenceColors = _g.presenceColors, showInitialsUntilImageLoads = _g.showInitialsUntilImageLoads, showSecondaryText = _g.showSecondaryText, theme = _g.theme;\n var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n coinSize: coinSize,\n imageAlt: imageAlt,\n imageInitials: imageInitials,\n imageShouldFadeIn: imageShouldFadeIn,\n imageShouldStartVisible: imageShouldStartVisible,\n imageUrl: imageUrl,\n initialsColor: initialsColor,\n initialsTextColor: initialsTextColor,\n onPhotoLoadingStateChange: onPhotoLoadingStateChange,\n onRenderCoin: onRenderCoin,\n onRenderInitials: onRenderInitials,\n presence: presence,\n presenceTitle: presenceTitle,\n showInitialsUntilImageLoads: showInitialsUntilImageLoads,\n size: size, text: this._getText(), isOutOfOffice: isOutOfOffice,\n presenceColors: presenceColors }, coinProps);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showSecondaryText: showSecondaryText,\n presence: presence,\n size: size,\n });\n var divProps = getNativeProps(this.props, divProperties);\n var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n this._renderElement(classNames.primaryText, onRenderPrimaryText, _onRenderPrimaryText),\n this._renderElement(classNames.secondaryText, onRenderSecondaryText, _onRenderSecondaryText),\n this._renderElement(classNames.tertiaryText, onRenderTertiaryText, _onRenderTertiaryText),\n this._renderElement(classNames.optionalText, onRenderOptionalText, _onRenderOptionalText),\n this.props.children));\n return (React.createElement(\"div\", __assign({}, divProps, { className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n onRenderPersonaCoin(personaCoinProps, this._onRenderPersonaCoin),\n (!hidePersonaDetails ||\n size === PersonaSize.size8 ||\n size === PersonaSize.size10 ||\n size === PersonaSize.tiny) &&\n personaDetails\n /* eslint-enable deprecation/deprecation */\n ));\n };\n /**\n * Renders various types of Text (primaryText, secondaryText, etc)\n * based on the classNames passed\n * @param classNames - element className\n * @param renderFunction - render function\n * @param defaultRenderFunction - default render function\n */\n PersonaBase.prototype._renderElement = function (classNames, renderFunction, defaultRenderFunction) {\n return (React.createElement(\"div\", { dir: \"auto\", className: classNames }, renderFunction && renderFunction(this.props, defaultRenderFunction)));\n };\n /**\n * Deprecation helper for getting text.\n */\n PersonaBase.prototype._getText = function () {\n // eslint-disable-next-line deprecation/deprecation\n return this.props.text || this.props.primaryText || '';\n };\n /**\n * using closure to wrap the default render behavior\n * to make it independent of the type of text passed\n * @param text - text to render\n */\n PersonaBase.prototype._onRenderText = function (text, tooltip) {\n if (tooltip === void 0) { tooltip = true; }\n // return default render behavior for valid text or undefined\n return text\n ? tooltip\n ? function () {\n // default onRender behavior\n return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n }\n : function () { return React.createElement(React.Fragment, null, text); }\n : undefined;\n };\n PersonaBase.defaultProps = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n showOverflowTooltip: true,\n };\n return PersonaBase;\n}(React.Component));\nexport { PersonaBase };\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n root: 'ms-Persona',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n available: 'ms-Persona--online',\n away: 'ms-Persona--away',\n blocked: 'ms-Persona--blocked',\n busy: 'ms-Persona--busy',\n doNotDisturb: 'ms-Persona--donotdisturb',\n offline: 'ms-Persona--offline',\n details: 'ms-Persona-details',\n primaryText: 'ms-Persona-primaryText',\n secondaryText: 'ms-Persona-secondaryText',\n tertiaryText: 'ms-Persona-tertiaryText',\n optionalText: 'ms-Persona-optionalText',\n textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n var showSecondaryTextDefaultHeight = '16px';\n var sharedTextStyles = {\n color: semanticColors.bodySubtext,\n fontWeight: FontWeights.regular,\n fontSize: fonts.small.fontSize,\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n normalize,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n height: personaSize.size48,\n minWidth: personaSize.size48,\n display: 'flex',\n alignItems: 'center',\n selectors: {\n '.contextualHost': {\n display: 'none',\n },\n },\n },\n size.isSize8 && [\n classNames.size8,\n {\n height: personaSize.size8,\n minWidth: personaSize.size8,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize10 && [\n classNames.size10,\n {\n height: personaSize.size10,\n minWidth: personaSize.size10,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize16 && [\n classNames.size16,\n {\n height: personaSize.size16,\n minWidth: personaSize.size16,\n },\n ],\n size.isSize24 && [\n classNames.size24,\n {\n height: personaSize.size24,\n minWidth: personaSize.size24,\n },\n ],\n size.isSize24 &&\n showSecondaryText && {\n height: '36px',\n },\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize28 && [\n classNames.size28,\n {\n height: personaSize.size28,\n minWidth: personaSize.size28,\n },\n ],\n size.isSize28 &&\n showSecondaryText && {\n height: '32px',\n },\n size.isSize32 && [\n classNames.size32,\n {\n height: personaSize.size32,\n minWidth: personaSize.size32,\n },\n ],\n size.isSize40 && [\n classNames.size40,\n {\n height: personaSize.size40,\n minWidth: personaSize.size40,\n },\n ],\n size.isSize48 && classNames.size48,\n size.isSize56 && [\n classNames.size56,\n {\n height: personaSize.size56,\n minWidth: personaSize.size56,\n },\n ],\n size.isSize72 && [\n classNames.size72,\n {\n height: personaSize.size72,\n minWidth: personaSize.size72,\n },\n ],\n size.isSize100 && [\n classNames.size100,\n {\n height: personaSize.size100,\n minWidth: personaSize.size100,\n },\n ],\n size.isSize120 && [\n classNames.size120,\n {\n height: personaSize.size120,\n minWidth: personaSize.size120,\n },\n ],\n /**\n * Modifiers: presence\n */\n presence.isAvailable && classNames.available,\n presence.isAway && classNames.away,\n presence.isBlocked && classNames.blocked,\n presence.isBusy && classNames.busy,\n presence.isDoNotDisturb && classNames.doNotDisturb,\n presence.isOffline && classNames.offline,\n className,\n ],\n details: [\n classNames.details,\n {\n padding: '0 24px 0 16px',\n minWidth: 0,\n width: '100%',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n },\n (size.isSize8 || size.isSize10) && {\n paddingLeft: 17,\n },\n (size.isSize24 || size.isSize28 || size.isSize32) && {\n padding: '0 8px',\n },\n (size.isSize40 || size.isSize48) && {\n padding: '0 12px',\n },\n ],\n primaryText: [\n classNames.primaryText,\n noWrap,\n {\n color: semanticColors.bodyText,\n fontWeight: FontWeights.regular,\n fontSize: fonts.medium.fontSize,\n selectors: {\n ':hover': {\n color: semanticColors.inputTextHovered,\n },\n },\n },\n showSecondaryText && {\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n (size.isSize8 || size.isSize10) && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaSize.size8,\n },\n size.isSize16 && {\n lineHeight: personaSize.size28,\n },\n (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.xLarge.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 22,\n },\n ],\n secondaryText: [\n classNames.secondaryText,\n noWrap,\n sharedTextStyles,\n (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n display: 'none',\n },\n showSecondaryText && {\n display: 'block',\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n size.isSize24 &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 18,\n },\n ],\n tertiaryText: [\n classNames.tertiaryText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize72 || size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n optionalText: [\n classNames.optionalText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n textContent: [classNames.textContent, noWrap],\n };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n /**\n * `tiny` size has been deprecated in favor of standardized numeric sizing. Use `size8` instead.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n /**\n *\n * `extraExtraSmall` size has been deprecated in favor of standardized numeric sizing. Use `size24` instead.\n * @deprecated Use `size24` instead.\n */\n PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n /**\n * `extraSmall` size has been deprecated in favor of standardized numeric sizing. Use `size32` instead.\n * @deprecated Use `size32` instead.\n */\n PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n /**\n * `small` size has been deprecated in favor of standardized numeric sizing. Use `size40` instead.\n * @deprecated Use `size40` instead.\n */\n PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n /**\n * `regular` size has been deprecated in favor of standardized numeric sizing. Use `size48` instead.\n * @deprecated Use `size48` instead.\n */\n PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n /**\n * `large` size has been deprecated in favor of standardized numeric sizing. Use `size72` instead.\n * @deprecated Use `size72` instead.\n */\n PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n /**\n * `extraLarge` size has been deprecated in favor of standardized numeric sizing. Use `size100` instead.\n * @deprecated Use `size100` instead.\n */\n PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * No `PersonaCoin` is rendered.\n */\n PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n /**\n * No `PersonaCoin` is rendered. Deprecated in favor of `size8` to align with design specifications.\n * @deprecated Use `size8` instead. Will be removed in a future major release.\n */\n PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n /**\n * Renders a 16px `PersonaCoin`. Deprecated due to not being in the design specification.\n * @deprecated Will be removed in a future major release.\n */\n PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n /**\n * Renders a 24px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n /**\n * Renders a 28px `PersonaCoin`. Deprecated due to not being in the design specification.\n * @deprecated Will be removed in a future major release.\n */\n PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n /**\n * Renders a 32px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n /**\n * Renders a 40px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n /**\n * Renders a 48px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n /**\n * Renders a 56px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n /**\n * Renders a 72px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n /**\n * Renders a 100px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n /**\n * Renders a 120px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n /**\n * Black can result in offensive persona coins with some initials combinations, so it can only be set with overrides.\n * @deprecated will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n /**\n * Red often has a special meaning, so it is considered a reserved color and can only be set with overrides.\n * @deprecated will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n /**\n * Transparent is not intended to be used with typical initials due to accessibility issues.\n * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n /**\n * Gray can result in offensive persona coins with some initials combinations, so it can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum, } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n // There can be many PersonaPresence rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nvar PersonaPresenceBase = /** @class */ (function (_super) {\n __extends(PersonaPresenceBase, _super);\n function PersonaPresenceBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderIcon = function (className, style) { return (React.createElement(Icon, { className: className, iconName: determineIcon(_this.props.presence, _this.props.isOutOfOffice), style: style })); };\n return _this;\n }\n PersonaPresenceBase.prototype.render = function () {\n var _a = this.props, coinSize = _a.coinSize, isOutOfOffice = _a.isOutOfOffice, styles = _a.styles, // Use getStyles from props.\n presence = _a.presence, theme = _a.theme, presenceTitle = _a.presenceTitle, presenceColors = _a.presenceColors;\n var size = sizeBoolean(this.props.size);\n // Render Presence Icon if Persona is above size 32.\n var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n (coinSize ? coinSize > 32 : true);\n var presenceHeightWidth = coinSize\n ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n ? coinSize / coinSizePresenceScaleFactor + 'px'\n : presenceMaxSize + 'px'\n : '';\n var presenceFontSize = coinSize\n ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n ? coinSize / coinSizeFontScaleFactor + 'px'\n : presenceFontMaxSize + 'px'\n : '';\n var coinSizeWithPresenceIconStyle = coinSize\n ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n : undefined;\n var coinSizeWithPresenceStyle = coinSize\n ? { width: presenceHeightWidth, height: presenceHeightWidth }\n : undefined;\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n presence: presence,\n size: this.props.size,\n isOutOfOffice: isOutOfOffice,\n presenceColors: presenceColors,\n });\n if (presence === PersonaPresenceEnum.none) {\n return null;\n }\n return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle }, renderIcon && this._onRenderIcon(classNames.presenceIcon, coinSizeWithPresenceIconStyle)));\n };\n return PersonaPresenceBase;\n}(React.Component));\nexport { PersonaPresenceBase };\nfunction determineIcon(presence, isOutOfOffice) {\n if (!presence) {\n return undefined;\n }\n var oofIcon = 'SkypeArrow';\n switch (PersonaPresenceEnum[presence]) {\n case 'online':\n return 'SkypeCheck';\n case 'away':\n return isOutOfOffice ? oofIcon : 'SkypeClock';\n case 'dnd':\n return 'SkypeMinus';\n case 'offline':\n return isOutOfOffice ? oofIcon : '';\n }\n return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n presence: 'ms-Persona-presence',\n presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var theme = props.theme, presenceColors = props.presenceColors;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n // Presence colors\n var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n var isOpenCirclePresence = presence.isOffline ||\n (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n var borderSizeForSmallPersonas = '1px';\n var borderSizeForLargePersonas = '2px';\n var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n return {\n presence: [\n classNames.presence,\n __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \" + presenceColorBackground, textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'content-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n backgroundColor: 'WindowText',\n },\n _a) }),\n (size.isSize8 || size.isSize10) && {\n right: 'auto',\n top: '7px',\n left: 0,\n border: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n top: '9px',\n border: '1px solid WindowText',\n },\n _b),\n },\n (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n makeSizeStyle(personaPresenceSize.size8),\n (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n size.isSize16 && {\n height: personaPresenceSize.size6,\n width: personaPresenceSize.size6,\n borderWidth: '1.5px',\n },\n size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n presence.isAvailable && {\n backgroundColor: presenceColorAvailable,\n selectors: (_c = {},\n _c[HighContrastSelector] = backgroundColor('Highlight'),\n _c),\n },\n presence.isAway && backgroundColor(presenceColorAway),\n presence.isBlocked && [\n {\n selectors: (_d = {\n // Only show :after at larger sizes\n ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n ? {\n content: '\"\"',\n width: '100%',\n height: borderSize,\n backgroundColor: presenceColorBusy,\n transform: 'translateY(-50%) rotate(-45deg)',\n position: 'absolute',\n top: '50%',\n left: 0,\n }\n : undefined\n },\n _d[HighContrastSelector] = {\n selectors: {\n ':after': {\n width: \"calc(100% - 4px)\",\n left: '2px',\n backgroundColor: 'Window',\n },\n },\n },\n _d),\n },\n ],\n presence.isBusy && backgroundColor(presenceColorBusy),\n presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n presence.isOffline && backgroundColor(presenceColorOffline),\n (isOpenCirclePresence || presence.isBlocked) && [\n {\n backgroundColor: presenceColorBackground,\n selectors: (_e = {\n ':before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n border: borderSize + \" solid \" + presenceColorBusy,\n borderRadius: '50%',\n boxSizing: 'border-box',\n }\n },\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n selectors: {\n ':before': {\n width: \"calc(100% - 2px)\",\n height: \"calc(100% - 2px)\",\n top: '1px',\n left: '1px',\n borderColor: 'Window',\n },\n },\n },\n _e),\n },\n ],\n isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n isOpenCirclePresence &&\n presence.isOffline &&\n props.isOutOfOffice &&\n makeBeforeBorderStyle(borderSize, presenceColorOof),\n ],\n presenceIcon: [\n classNames.presenceIcon,\n {\n color: presenceColorBackground,\n fontSize: '6px',\n lineHeight: personaPresenceSize.size12,\n verticalAlign: 'top',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'Window',\n },\n _f),\n },\n size.isSize56 && {\n fontSize: '8px',\n lineHeight: personaPresenceSize.size16,\n },\n size.isSize72 && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaPresenceSize.size20,\n },\n size.isSize100 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size28,\n },\n size.isSize120 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size32,\n },\n presence.isAway && {\n position: 'relative',\n left: isOpenCirclePresence ? undefined : '1px',\n },\n isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n ],\n };\n};\nfunction makeOpenCircleIconStyle(color) {\n return {\n color: color,\n borderColor: color,\n };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n return {\n selectors: {\n ':before': {\n border: borderSize + \" solid \" + color,\n },\n },\n };\n}\nfunction makeSizeStyle(size) {\n return {\n height: size,\n width: size,\n };\n}\nfunction backgroundColor(color) {\n return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize, } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nvar getClassNames = classNamesFunction({\n // There can be many PersonaCoin rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n return mergeStyles(className, !showUnknownPersonaCoin && {\n backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n color: initialsTextColor,\n });\n});\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nvar PersonaCoinBase = /** @class */ (function (_super) {\n __extends(PersonaCoinBase, _super);\n function PersonaCoinBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderCoin = function (props) {\n var _a = _this.props, coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin;\n // Render the Image component only if an image URL is provided\n if (!imageUrl) {\n return null;\n }\n var size = _this.props.size;\n var classNames = getClassNames(styles, {\n theme: theme,\n size: size,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var dimension = coinSize || sizeToPixels[size];\n return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: _this._onPhotoLoadingStateChange }));\n };\n _this._onRenderInitials = function (props) {\n var imageInitials = props.imageInitials;\n var allowPhoneInitials = props.allowPhoneInitials, showUnknownPersonaCoin = props.showUnknownPersonaCoin;\n if (showUnknownPersonaCoin) {\n return React.createElement(Icon, { iconName: \"Help\" });\n }\n var isRTL = getRTL(_this.props.theme);\n imageInitials = imageInitials || getInitials(_this._getText(), isRTL, allowPhoneInitials);\n return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n };\n _this._onPhotoLoadingStateChange = function (loadState) {\n _this.setState({\n isImageLoaded: loadState === ImageLoadState.loaded,\n isImageError: loadState === ImageLoadState.error,\n });\n _this.props.onPhotoLoadingStateChange && _this.props.onPhotoLoadingStateChange(loadState);\n };\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('PersonaCoin', props, { primaryText: 'text' });\n }\n _this.state = {\n isImageLoaded: false,\n isImageError: false,\n };\n return _this;\n }\n PersonaCoinBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n if (nextProps.imageUrl !== this.props.imageUrl) {\n this.setState({\n isImageLoaded: false,\n isImageError: false,\n });\n }\n };\n PersonaCoinBase.prototype.render = function () {\n var _a = this.props, className = _a.className, coinProps = _a.coinProps, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, initialsColor = _a.initialsColor, initialsTextColor = _a.initialsTextColor, isOutOfOffice = _a.isOutOfOffice, \n /* eslint-disable deprecation/deprecation */\n _b = _a.onRenderCoin, \n /* eslint-disable deprecation/deprecation */\n onRenderCoin = _b === void 0 ? this._onRenderCoin : _b, _c = _a.onRenderPersonaCoin, onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, \n /* eslint-enable deprecation/deprecation */\n _d = _a.onRenderInitials, \n /* eslint-enable deprecation/deprecation */\n onRenderInitials = _d === void 0 ? this._onRenderInitials : _d, presence = _a.presence, presenceTitle = _a.presenceTitle, presenceColors = _a.presenceColors, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = _a.primaryText, showInitialsUntilImageLoads = _a.showInitialsUntilImageLoads, text = _a.text, theme = _a.theme;\n var size = this.props.size;\n var divProps = getNativeProps(this.props, divProperties);\n var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n var hideImage = showUnknownPersonaCoin;\n var personaPresenceProps = {\n coinSize: coinSize,\n isOutOfOffice: isOutOfOffice,\n presence: presence,\n presenceTitle: presenceTitle,\n presenceColors: presenceColors,\n size: size,\n theme: theme,\n };\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n className: coinProps && coinProps.className ? coinProps.className : className,\n size: size,\n coinSize: coinSize,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var shouldRenderInitials = Boolean(!this.state.isImageLoaded &&\n ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || this.state.isImageError || hideImage));\n return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin }),\n // eslint-disable-next-line deprecation/deprecation\n size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(this.props, this._onRenderInitials))),\n !hideImage && onRenderPersonaCoin(this.props, this._onRenderCoin),\n React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n this.props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n // Just render Contact Icon if there isn't a Presence prop.\n React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n this.props.children));\n };\n /**\n * Deprecation helper for getting text.\n */\n PersonaCoinBase.prototype._getText = function () {\n // eslint-disable-next-line deprecation/deprecation\n return this.props.text || this.props.primaryText || '';\n };\n PersonaCoinBase.defaultProps = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n };\n return PersonaCoinBase;\n}(React.Component));\nexport { PersonaCoinBase };\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n coin: 'ms-Persona-coin',\n imageArea: 'ms-Persona-imageArea',\n image: 'ms-Persona-image',\n initials: 'ms-Persona-initials',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, coinSize = props.coinSize;\n var palette = theme.palette, fonts = theme.fonts;\n var size = sizeBoolean(props.size);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Static colors used when displaying 'unknown persona' coin\n var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n return {\n coin: [\n classNames.coin,\n fonts.medium,\n size.isSize8 && classNames.size8,\n size.isSize10 && classNames.size10,\n size.isSize16 && classNames.size16,\n size.isSize24 && classNames.size24,\n size.isSize28 && classNames.size28,\n size.isSize32 && classNames.size32,\n size.isSize40 && classNames.size40,\n size.isSize48 && classNames.size48,\n size.isSize56 && classNames.size56,\n size.isSize72 && classNames.size72,\n size.isSize100 && classNames.size100,\n size.isSize120 && classNames.size120,\n className,\n ],\n size10WithoutPresenceIcon: {\n fontSize: fonts.xSmall.fontSize,\n position: 'absolute',\n top: '5px',\n right: 'auto',\n left: 0,\n },\n imageArea: [\n classNames.imageArea,\n {\n position: 'relative',\n textAlign: 'center',\n flex: '0 0 auto',\n height: dimension,\n width: dimension,\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n ],\n image: [\n classNames.image,\n {\n marginRight: '10px',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 0,\n borderRadius: '50%',\n perspective: '1px',\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n dimension > 10 && {\n height: dimension,\n width: dimension,\n },\n ],\n initials: [\n classNames.initials,\n {\n borderRadius: '50%',\n color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n fontSize: fonts.large.fontSize,\n fontWeight: FontWeights.semibold,\n // copying the logic for the dimensions; defaulted to 46 for size48\n lineHeight: dimension === 48 ? 46 : dimension,\n height: dimension,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n _a.i = {\n fontWeight: FontWeights.semibold,\n },\n _a),\n },\n props.showUnknownPersonaCoin && {\n backgroundColor: unknownPersonaBackgroundColor,\n },\n dimension < 32 && {\n fontSize: fonts.xSmall.fontSize,\n },\n dimension >= 32 &&\n dimension < 40 && {\n fontSize: fonts.medium.fontSize,\n },\n dimension >= 40 &&\n dimension < 56 && {\n fontSize: fonts.mediumPlus.fontSize,\n },\n dimension >= 56 &&\n dimension < 72 && {\n fontSize: fonts.xLarge.fontSize,\n },\n dimension >= 72 &&\n dimension < 100 && {\n fontSize: fonts.xxLarge.fontSize,\n },\n dimension >= 100 && {\n fontSize: fonts.superLarge.fontSize,\n },\n ],\n };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n personaSize.size8 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size10 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size16 = '16px';\n personaSize.size24 = '24px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size28 = '28px';\n personaSize.size32 = '32px';\n personaSize.size40 = '40px';\n personaSize.size48 = '48px';\n personaSize.size56 = '56px';\n personaSize.size72 = '72px';\n personaSize.size100 = '100px';\n personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n personaPresenceSize.size6 = '6px';\n personaPresenceSize.size8 = '8px';\n personaPresenceSize.size12 = '12px';\n personaPresenceSize.size16 = '16px';\n personaPresenceSize.size20 = '20px';\n personaPresenceSize.size28 = '28px';\n personaPresenceSize.size32 = '32px';\n /**\n * @deprecated This is now unused\n */\n personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n isSize8: size === PersonaSize.size8,\n /* eslint-disable deprecation/deprecation */\n isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n isSize16: size === PersonaSize.size16,\n isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n isSize32: size === PersonaSize.size32,\n isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n isSize56: size === PersonaSize.size56,\n isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n // Old deprecated sizes\n _a[PersonaSize.tiny] = 10,\n _a[PersonaSize.extraExtraSmall] = 24,\n _a[PersonaSize.extraSmall] = 28,\n _a[PersonaSize.small] = 40,\n _a[PersonaSize.regular] = 48,\n _a[PersonaSize.large] = 72,\n _a[PersonaSize.extraLarge] = 100,\n // New sizes\n _a[PersonaSize.size8] = 8,\n _a[PersonaSize.size10] = 10,\n _a[PersonaSize.size16] = 16,\n _a[PersonaSize.size24] = 24,\n _a[PersonaSize.size28] = 28,\n /* eslint-enable deprecation/deprecation */\n _a[PersonaSize.size32] = 32,\n _a[PersonaSize.size40] = 40,\n _a[PersonaSize.size48] = 48,\n _a[PersonaSize.size56] = 56,\n _a[PersonaSize.size72] = 72,\n _a[PersonaSize.size100] = 100,\n _a[PersonaSize.size120] = 120,\n _a);\nexport var presenceBoolean = function (presence) { return ({\n isAvailable: presence === PersonaPresence.online,\n isAway: presence === PersonaPresence.away,\n isBlocked: presence === PersonaPresence.blocked,\n isBusy: presence === PersonaPresence.busy,\n isDoNotDisturb: presence === PersonaPresence.dnd,\n isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n * its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n PersonaInitialsColor.lightBlue,\n PersonaInitialsColor.blue,\n PersonaInitialsColor.darkBlue,\n PersonaInitialsColor.teal,\n PersonaInitialsColor.green,\n PersonaInitialsColor.darkGreen,\n PersonaInitialsColor.lightPink,\n PersonaInitialsColor.pink,\n PersonaInitialsColor.magenta,\n PersonaInitialsColor.purple,\n PersonaInitialsColor.orange,\n PersonaInitialsColor.lightRed,\n PersonaInitialsColor.darkRed,\n PersonaInitialsColor.violet,\n PersonaInitialsColor.gold,\n PersonaInitialsColor.burgundy,\n PersonaInitialsColor.warmGray,\n PersonaInitialsColor.cyan,\n PersonaInitialsColor.rust,\n PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n var color = PersonaInitialsColor.blue;\n if (!displayName) {\n return color;\n }\n var hashCode = 0;\n for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n var ch = displayName.charCodeAt(iLen);\n var shift = iLen % 8;\n // eslint-disable-next-line no-bitwise\n hashCode ^= (ch << shift) + (ch >> (8 - shift));\n }\n color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n switch (personaInitialsColor) {\n case PersonaInitialsColor.lightBlue:\n return '#4F6BED';\n case PersonaInitialsColor.blue:\n return '#0078D4';\n case PersonaInitialsColor.darkBlue:\n return '#004E8C';\n case PersonaInitialsColor.teal:\n return '#038387';\n case PersonaInitialsColor.lightGreen:\n case PersonaInitialsColor.green:\n return '#498205';\n case PersonaInitialsColor.darkGreen:\n return '#0B6A0B';\n case PersonaInitialsColor.lightPink:\n return '#C239B3';\n case PersonaInitialsColor.pink:\n return '#E3008C';\n case PersonaInitialsColor.magenta:\n return '#881798';\n case PersonaInitialsColor.purple:\n return '#5C2E91';\n case PersonaInitialsColor.orange:\n return '#CA5010';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.red:\n return '#EE1111';\n case PersonaInitialsColor.lightRed:\n return '#D13438';\n case PersonaInitialsColor.darkRed:\n return '#A4262C';\n case PersonaInitialsColor.transparent:\n return 'transparent';\n case PersonaInitialsColor.violet:\n return '#8764B8';\n case PersonaInitialsColor.gold:\n return '#986F0B';\n case PersonaInitialsColor.burgundy:\n return '#750B1C';\n case PersonaInitialsColor.warmGray:\n return '#7A7574';\n case PersonaInitialsColor.cyan:\n return '#005B70';\n case PersonaInitialsColor.rust:\n return '#8E562E';\n case PersonaInitialsColor.coolGray:\n return '#69797E';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.black:\n return '#1D1D1D';\n case PersonaInitialsColor.gray:\n return '#393939';\n }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n // eslint-disable-next-line deprecation/deprecation\n var primaryText = props.primaryText, text = props.text;\n var initialsColor = props.initialsColor;\n var initialsColorCode;\n if (typeof initialsColor === 'string') {\n initialsColorCode = initialsColor;\n }\n else {\n initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n }\n return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, KeyCodes, getId, getNativeProps, divProperties, classNamesFunction, warn, initializeComponentRef, css, } from '../../Utilities';\nimport { CommandButton } from '../../Button';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { PivotItem } from './PivotItem';\nimport { PivotLinkFormat } from './Pivot.types';\nimport { PivotLinkSize } from './Pivot.types';\nimport { Icon } from '../../Icon';\nvar getClassNames = classNamesFunction();\nvar PivotName = 'Pivot';\n/**\n * Usage:\n *\n * <Pivot>\n * <PivotItem headerText=\"Foo\">\n * <Label>Pivot #1</Label>\n * </PivotItem>\n * <PivotItem headerText=\"Bar\">\n * <Label>Pivot #2</Label>\n * </PivotItem>\n * <PivotItem headerText=\"Bas\">\n * <Label>Pivot #3</Label>\n * </PivotItem>\n * </Pivot>\n */\nvar PivotBase = /** @class */ (function (_super) {\n __extends(PivotBase, _super);\n function PivotBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n _this._renderPivotLink = function (linkCollection, link, selectedKey) {\n var itemKey = link.itemKey, headerButtonProps = link.headerButtonProps;\n var tabId = linkCollection.keyToTabIdMapping[itemKey];\n var onRenderItemLink = link.onRenderItemLink;\n var linkContent;\n var isSelected = selectedKey === itemKey;\n if (onRenderItemLink) {\n linkContent = onRenderItemLink(link, _this._renderLinkContent);\n }\n else {\n linkContent = _this._renderLinkContent(link);\n }\n var contentString = link.headerText || '';\n contentString += link.itemCount ? ' (' + link.itemCount + ')' : '';\n // Adding space supplementary for icon\n contentString += link.itemIcon ? ' xx' : '';\n return (React.createElement(CommandButton, __assign({}, headerButtonProps, { id: tabId, key: itemKey, className: isSelected ? _this._classNames.linkIsSelected : _this._classNames.link, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: _this._onLinkClick.bind(_this, itemKey), \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: _this._onKeyDown.bind(_this, itemKey), \"aria-label\": link.ariaLabel, role: \"tab\", \"aria-selected\": isSelected, name: link.headerText, keytipProps: link.keytipProps, \"data-content\": contentString }), linkContent));\n };\n _this._renderLinkContent = function (link) {\n var itemCount = link.itemCount, itemIcon = link.itemIcon, headerText = link.headerText;\n var classNames = _this._classNames;\n return (React.createElement(\"span\", { className: classNames.linkContent },\n itemIcon !== undefined && (React.createElement(\"span\", { className: classNames.icon },\n React.createElement(Icon, { iconName: itemIcon }))),\n headerText !== undefined && React.createElement(\"span\", { className: classNames.text },\n \" \",\n link.headerText),\n itemCount !== undefined && React.createElement(\"span\", { className: classNames.count },\n \" (\",\n itemCount,\n \")\")));\n };\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations(PivotName, props, {\n initialSelectedKey: 'defaultSelectedKey',\n initialSelectedIndex: 'defaultSelectedIndex',\n });\n }\n _this._pivotId = getId(PivotName);\n var links = _this._getPivotLinks(props).links;\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.defaultSelectedKey, defaultSelectedKey = _a === void 0 ? props.initialSelectedKey : _a, _b = props.defaultSelectedIndex, defaultSelectedIndex = _b === void 0 ? props.initialSelectedIndex : _b;\n var selectedKey;\n if (defaultSelectedKey) {\n selectedKey = defaultSelectedKey;\n }\n else if (typeof defaultSelectedIndex === 'number') {\n selectedKey = links[defaultSelectedIndex].itemKey;\n }\n else if (links.length) {\n selectedKey = links[0].itemKey;\n }\n _this.state = {\n selectedKey: selectedKey,\n };\n return _this;\n }\n /**\n * Sets focus to the first pivot tab.\n */\n PivotBase.prototype.focus = function () {\n if (this._focusZone.current) {\n this._focusZone.current.focus();\n }\n };\n PivotBase.prototype.render = function () {\n var _this = this;\n var focusZoneProps = this.props.focusZoneProps;\n var linkCollection = this._getPivotLinks(this.props);\n var selectedKey = this._getSelectedKey(linkCollection);\n var divProps = getNativeProps(this.props, divProperties);\n this._classNames = this._getClassNames(this.props);\n return (React.createElement(\"div\", __assign({ role: \"toolbar\" }, divProps),\n this._renderPivotLinks(linkCollection, selectedKey, focusZoneProps),\n selectedKey &&\n linkCollection.links.map(function (link) {\n return (link.alwaysRender === true || selectedKey === link.itemKey) &&\n _this._renderPivotItem(linkCollection, link.itemKey, selectedKey === link.itemKey);\n })));\n };\n PivotBase.prototype._getSelectedKey = function (linkCollection) {\n var propsSelectedKey = this.props.selectedKey;\n if (this._isKeyValid(linkCollection, propsSelectedKey) || propsSelectedKey === null) {\n return propsSelectedKey;\n }\n var stateSelectedKey = this.state.selectedKey;\n if (this._isKeyValid(linkCollection, stateSelectedKey)) {\n return stateSelectedKey;\n }\n if (linkCollection.links.length) {\n return linkCollection.links[0].itemKey;\n }\n return undefined;\n };\n /**\n * Renders the set of links to route between pivots\n */\n PivotBase.prototype._renderPivotLinks = function (linkCollection, selectedKey, focusZoneProps) {\n var _this = this;\n var _a;\n var items = linkCollection.links.map(function (l) { return _this._renderPivotLink(linkCollection, l, selectedKey); });\n return (React.createElement(FocusZone, __assign({ role: \"tablist\", componentRef: this._focusZone, direction: FocusZoneDirection.horizontal }, focusZoneProps, { className: css(this._classNames.root, (_a = focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) }), items));\n };\n /**\n * Renders a Pivot Item\n */\n PivotBase.prototype._renderPivotItem = function (linkCollection, itemKey, isActive) {\n if (this.props.headersOnly || !itemKey) {\n return null;\n }\n var index = linkCollection.keyToIndexMapping[itemKey];\n var selectedTabId = linkCollection.keyToTabIdMapping[itemKey];\n return (React.createElement(\"div\", { role: \"tabpanel\", hidden: !isActive, key: itemKey, \"aria-hidden\": !isActive, \"aria-labelledby\": selectedTabId, className: this._classNames.itemContainer }, React.Children.toArray(this.props.children)[index]));\n };\n /**\n * Gets the set of PivotLinks as array of IPivotItemProps\n * The set of Links is determined by child components of type PivotItem\n */\n PivotBase.prototype._getPivotLinks = function (props) {\n var _this = this;\n var result = {\n links: [],\n keyToIndexMapping: {},\n keyToTabIdMapping: {},\n };\n React.Children.map(React.Children.toArray(props.children), function (child, index) {\n if (_isPivotItem(child)) {\n var pivotItem = child;\n var _a = pivotItem.props, linkText = _a.linkText, pivotItemProps = __rest(_a, [\"linkText\"]);\n var itemKey = pivotItem.props.itemKey || index.toString();\n result.links.push(__assign(__assign({ \n // Use linkText (deprecated) if headerText is not provided\n headerText: linkText }, pivotItemProps), { itemKey: itemKey }));\n result.keyToIndexMapping[itemKey] = index;\n result.keyToTabIdMapping[itemKey] = _this._getTabId(itemKey, index);\n }\n else {\n warn('The children of a Pivot component must be of type PivotItem to be rendered.');\n }\n });\n return result;\n };\n /**\n * Generates the Id for the tab button.\n */\n PivotBase.prototype._getTabId = function (itemKey, index) {\n if (this.props.getTabId) {\n return this.props.getTabId(itemKey, index);\n }\n return this._pivotId + (\"-Tab\" + index);\n };\n /**\n * whether the key exists in the pivot items.\n */\n PivotBase.prototype._isKeyValid = function (linkCollection, itemKey) {\n return itemKey !== undefined && itemKey !== null && linkCollection.keyToIndexMapping[itemKey] !== undefined;\n };\n /**\n * Handles the onClick event on PivotLinks\n */\n PivotBase.prototype._onLinkClick = function (itemKey, ev) {\n ev.preventDefault();\n this._updateSelectedItem(itemKey, ev);\n };\n /**\n * Handle the onKeyDown event on the PivotLinks\n */\n PivotBase.prototype._onKeyDown = function (itemKey, ev) {\n if (ev.which === KeyCodes.enter) {\n ev.preventDefault();\n this._updateSelectedItem(itemKey);\n }\n };\n /**\n * Updates the state with the new selected index\n */\n PivotBase.prototype._updateSelectedItem = function (itemKey, ev) {\n this.setState({\n selectedKey: itemKey,\n });\n var linkCollection = this._getPivotLinks(this.props);\n if (this.props.onLinkClick && linkCollection.keyToIndexMapping[itemKey] >= 0) {\n var index = linkCollection.keyToIndexMapping[itemKey];\n // React.Element<any> cannot directly convert to PivotItem.\n var item = React.Children.toArray(this.props.children)[index];\n if (_isPivotItem(item)) {\n this.props.onLinkClick(item, ev);\n }\n }\n };\n PivotBase.prototype._getClassNames = function (props) {\n var theme = props.theme;\n var rootIsLarge = props.linkSize === PivotLinkSize.large;\n var rootIsTabs = props.linkFormat === PivotLinkFormat.tabs;\n return getClassNames(props.styles, {\n theme: theme,\n rootIsLarge: rootIsLarge,\n rootIsTabs: rootIsTabs,\n });\n };\n return PivotBase;\n}(React.Component));\nexport { PivotBase };\nfunction _isPivotItem(item) {\n // In theory, we should be able to just check item.type === PivotItem.\n // However, under certain unclear circumstances (see https://github.com/microsoft/fluentui/issues/10785),\n // the object identity is different despite the function implementation being the same.\n return (!!item &&\n typeof item === 'object' &&\n !!item.type &&\n // Casting as an any to avoid [ object Object ] errors.\n item.type.name === PivotItem.name);\n}\n//# sourceMappingURL=Pivot.base.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport { AnimationVariables, getGlobalClassNames, HighContrastSelector, normalize, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar globalClassNames = {\n count: 'ms-Pivot-count',\n icon: 'ms-Pivot-icon',\n linkIsSelected: 'is-selected',\n link: 'ms-Pivot-link',\n linkContent: 'ms-Pivot-linkContent',\n root: 'ms-Pivot',\n rootIsLarge: 'ms-Pivot--large',\n rootIsTabs: 'ms-Pivot--tabs',\n text: 'ms-Pivot-text',\n};\nvar linkStyles = function (props) {\n var _a, _b;\n var rootIsLarge = props.rootIsLarge, rootIsTabs = props.rootIsTabs;\n var _c = props.theme, semanticColors = _c.semanticColors, fonts = _c.fonts;\n return [\n fonts.medium,\n {\n color: semanticColors.actionLink,\n display: 'inline-block',\n lineHeight: 44,\n height: 44,\n marginRight: 8,\n padding: '0 8px',\n textAlign: 'center',\n position: 'relative',\n backgroundColor: 'transparent',\n border: 0,\n borderRadius: 0,\n selectors: (_a = {\n ':before': {\n backgroundColor: 'transparent',\n bottom: 0,\n content: '\"\"',\n height: 2,\n left: 8,\n position: 'absolute',\n right: 8,\n transition: \"left \" + AnimationVariables.durationValue2 + \" \" + AnimationVariables.easeFunction2 + \",\\n right \" + AnimationVariables.durationValue2 + \" \" + AnimationVariables.easeFunction2,\n },\n ':after': {\n color: 'transparent',\n content: 'attr(data-content)',\n display: 'block',\n fontWeight: FontWeights.bold,\n height: 1,\n overflow: 'hidden',\n visibility: 'hidden',\n },\n ':hover': {\n backgroundColor: semanticColors.buttonBackgroundHovered,\n color: semanticColors.buttonTextHovered,\n cursor: 'pointer',\n },\n ':active': {\n backgroundColor: semanticColors.buttonBackgroundPressed,\n color: semanticColors.buttonTextHovered,\n },\n ':focus': {\n outline: 'none',\n }\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n outline: \"1px solid \" + semanticColors.focusBorder,\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus:after\"] = {\n content: 'attr(data-content)',\n position: 'relative',\n border: 0,\n },\n _a),\n },\n rootIsLarge && {\n fontSize: fonts.large.fontSize,\n },\n rootIsTabs && [\n {\n marginRight: 0,\n height: 44,\n lineHeight: 44,\n backgroundColor: semanticColors.buttonBackground,\n padding: '0 10px',\n verticalAlign: 'top',\n selectors: (_b = {\n ':focus': {\n outlineOffset: '-1px',\n }\n },\n _b[\".\" + IsFocusVisibleClassName + \" &:focus::before\"] = {\n height: 'auto',\n background: 'transparent',\n transition: 'none',\n },\n _b),\n },\n ],\n ];\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var className = props.className, rootIsLarge = props.rootIsLarge, rootIsTabs = props.rootIsTabs, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n normalize,\n {\n position: 'relative',\n color: semanticColors.link,\n whiteSpace: 'nowrap',\n },\n rootIsLarge && classNames.rootIsLarge,\n rootIsTabs && classNames.rootIsTabs,\n className,\n ],\n itemContainer: {\n selectors: {\n '&[hidden]': {\n display: 'none',\n },\n },\n },\n link: __spreadArrays([\n classNames.link\n ], linkStyles(props), [\n rootIsTabs && {\n selectors: {\n '&:hover, &:focus': {\n color: semanticColors.buttonTextCheckedHovered,\n },\n '&:active, &:hover': {\n color: semanticColors.primaryButtonText,\n backgroundColor: semanticColors.primaryButtonBackground,\n },\n },\n },\n ]),\n linkIsSelected: __spreadArrays([\n classNames.link,\n classNames.linkIsSelected\n ], linkStyles(props), [\n {\n fontWeight: FontWeights.semibold,\n selectors: (_a = {\n ':before': {\n backgroundColor: semanticColors.inputBackgroundChecked,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _b),\n },\n ':hover::before': {\n left: 0,\n right: 0,\n }\n },\n _a[HighContrastSelector] = {\n color: 'Highlight',\n },\n _a),\n },\n rootIsTabs && {\n backgroundColor: semanticColors.primaryButtonBackground,\n color: semanticColors.primaryButtonText,\n fontWeight: FontWeights.regular,\n selectors: (_c = {\n ':before': {\n backgroundColor: 'transparent',\n transition: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n content: '\"\"',\n height: 0,\n },\n ':hover': {\n backgroundColor: semanticColors.primaryButtonBackgroundHovered,\n color: semanticColors.primaryButtonText,\n },\n '&:active': {\n backgroundColor: semanticColors.primaryButtonBackgroundPressed,\n color: semanticColors.primaryButtonText,\n }\n },\n _c[HighContrastSelector] = __assign({ fontWeight: FontWeights.semibold, color: 'HighlightText', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n ]),\n linkContent: [\n classNames.linkContent,\n {\n flex: '0 1 100%',\n selectors: {\n '& > * ': {\n marginLeft: 4,\n },\n '& > *:first-child': {\n marginLeft: 0,\n },\n },\n },\n ],\n text: [\n classNames.text,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n ],\n count: [\n classNames.count,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n ],\n icon: classNames.icon,\n };\n};\n//# sourceMappingURL=Pivot.styles.js.map","import { styled } from '../../Utilities';\nimport { PivotBase } from './Pivot.base';\nimport { getStyles } from './Pivot.styles';\n/**\n * The Pivot control and related tabs pattern are used for navigating frequently accessed,\n * distinct content categories. Pivots allow for navigation between two or more content\n * views and relies on text headers to articulate the different sections of content.\n */\nexport var Pivot = styled(PivotBase, getStyles, undefined, {\n scope: 'Pivot',\n});\n//# sourceMappingURL=Pivot.js.map","/**\n * {@docCategory Pivot}\n */\nexport var PivotLinkFormat;\n(function (PivotLinkFormat) {\n /**\n * Display Pivot Links as links\n */\n PivotLinkFormat[PivotLinkFormat[\"links\"] = 0] = \"links\";\n /**\n * Display Pivot Links as Tabs\n */\n PivotLinkFormat[PivotLinkFormat[\"tabs\"] = 1] = \"tabs\";\n})(PivotLinkFormat || (PivotLinkFormat = {}));\n/**\n * {@docCategory Pivot}\n */\nexport var PivotLinkSize;\n(function (PivotLinkSize) {\n /**\n * Display Link using normal font size\n */\n PivotLinkSize[PivotLinkSize[\"normal\"] = 0] = \"normal\";\n /**\n * Display links using large font size\n */\n PivotLinkSize[PivotLinkSize[\"large\"] = 1] = \"large\";\n})(PivotLinkSize || (PivotLinkSize = {}));\n//# sourceMappingURL=Pivot.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getNativeProps, divProperties, initializeComponentRef, warnDeprecations } from '../../Utilities';\nvar COMPONENT_NAME = 'PivotItem';\nvar PivotItem = /** @class */ (function (_super) {\n __extends(PivotItem, _super);\n function PivotItem(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n linkText: 'headerText',\n });\n return _this;\n }\n PivotItem.prototype.render = function () {\n return React.createElement(\"div\", __assign({}, getNativeProps(this.props, divProperties)), this.props.children);\n };\n return PivotItem;\n}(React.Component));\nexport { PivotItem };\n//# sourceMappingURL=PivotItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, on, getWindow, elementContains, } from '../../Utilities';\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._disposables = [];\n _this._onKeyDown = function (ev) {\n switch (ev.which) {\n case KeyCodes.escape:\n if (_this.props.onDismiss) {\n _this.props.onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n };\n _this._onFocus = function () {\n _this._containsFocus = true;\n };\n _this._onBlur = function (ev) {\n /** The popup should update this._containsFocus when:\n * relatedTarget exists AND\n * the relatedTarget is not contained within the popup.\n * If the relatedTarget is within the popup, that means the popup still has focus\n * and focused moved from one element to another within the popup.\n * If relatedTarget is undefined or null that usually means that a\n * keyboard event occured and focus didn't change\n */\n if (_this._root.current &&\n ev.relatedTarget &&\n !elementContains(_this._root.current, ev.relatedTarget)) {\n _this._containsFocus = false;\n }\n };\n _this._async = new Async(_this);\n _this.state = { needsVerticalScrollBar: false };\n return _this;\n }\n Popup.prototype.UNSAFE_componentWillMount = function () {\n this._originalFocusedElement = getDocument().activeElement;\n };\n Popup.prototype.componentDidMount = function () {\n if (this._root.current) {\n this._disposables.push(on(this._root.current, 'focus', this._onFocus, true), on(this._root.current, 'blur', this._onBlur, true));\n var currentWindow = getWindow(this._root.current);\n if (currentWindow) {\n this._disposables.push(on(currentWindow, 'keydown', this._onKeyDown));\n }\n if (doesElementContainFocus(this._root.current)) {\n this._containsFocus = true;\n }\n }\n this._updateScrollBarAsync();\n };\n Popup.prototype.componentDidUpdate = function () {\n this._updateScrollBarAsync();\n this._async.dispose();\n };\n Popup.prototype.componentWillUnmount = function () {\n var _a;\n this._disposables.forEach(function (dispose) { return dispose(); });\n // eslint-disable-next-line deprecation/deprecation\n if (this.props.shouldRestoreFocus) {\n var _b = this.props.onRestoreFocus, onRestoreFocus = _b === void 0 ? defaultFocusRestorer : _b;\n onRestoreFocus({\n originalElement: this._originalFocusedElement,\n containsFocus: this._containsFocus,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n }\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n delete this._originalFocusedElement;\n };\n Popup.prototype.render = function () {\n var _a = this.props, role = _a.role, className = _a.className, ariaLabel = _a.ariaLabel, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, style = _a.style;\n return (React.createElement(\"div\", __assign({ ref: this._root }, getNativeProps(this.props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: this._onKeyDown, style: __assign({ overflowY: this.state.needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), this.props.children));\n };\n Popup.prototype._updateScrollBarAsync = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n _this._getScrollBar();\n });\n };\n Popup.prototype._getScrollBar = function () {\n // If overflowY is overriden, don't waste time calculating whether the scrollbar is necessary.\n if (this.props.style && this.props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (this._root && this._root.current && this._root.current.firstElementChild) {\n // ClientHeight returns the client height of an element rounded to an\n // integer. On some browsers at different zoom levels this rounding\n // can generate different results for the root container and child even\n // though they are the same height. This causes us to show a scroll bar\n // when not needed. Ideally we would use BoundingClientRect().height\n // instead however seems that the API is 90% slower than using ClientHeight.\n // Therefore instead we will calculate the difference between heights and\n // allow for a 1px difference to still be considered ok and not show the\n // scroll bar.\n var rootHeight = this._root.current.clientHeight;\n var firstChildHeight = this._root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (this.state.needsVerticalScrollBar !== needsVerticalScrollBar) {\n this.setState({\n needsVerticalScrollBar: needsVerticalScrollBar,\n });\n }\n };\n Popup.defaultProps = {\n shouldRestoreFocus: true,\n };\n return Popup;\n}(React.Component));\nexport { Popup };\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== window) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n if (originalElement.focus) {\n originalElement.focus();\n }\n }\n}\n//# sourceMappingURL=Popup.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getId } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n// if the percentComplete is near 0, don't animate it.\n// This prevents animations on reset to 0 scenarios\nvar ZERO_THRESHOLD = 0.01;\n/**\n * ProgressIndicator with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nvar ProgressIndicatorBase = /** @class */ (function (_super) {\n __extends(ProgressIndicatorBase, _super);\n function ProgressIndicatorBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderProgress = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaValueText = _a.ariaValueText, barHeight = _a.barHeight, className = _a.className, description = _a.description, _b = _a.label, label = _b === void 0 ? _this.props.title : _b, styles = _a.styles, theme = _a.theme;\n var percentComplete = typeof _this.props.percentComplete === 'number'\n ? Math.min(100, Math.max(0, _this.props.percentComplete * 100))\n : undefined;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n barHeight: barHeight,\n indeterminate: percentComplete === undefined ? true : false,\n });\n var progressBarStyles = {\n width: percentComplete !== undefined ? percentComplete + '%' : undefined,\n transition: percentComplete !== undefined && percentComplete < ZERO_THRESHOLD ? 'none' : undefined,\n };\n var ariaValueMin = percentComplete !== undefined ? 0 : undefined;\n var ariaValueMax = percentComplete !== undefined ? 100 : undefined;\n var ariaValueNow = percentComplete !== undefined ? Math.floor(percentComplete) : undefined;\n return (React.createElement(\"div\", { className: classNames.itemProgress },\n React.createElement(\"div\", { className: classNames.progressTrack }),\n React.createElement(\"div\", { className: classNames.progressBar, style: progressBarStyles, role: \"progressbar\", \"aria-describedby\": description ? _this._descriptionId : undefined, \"aria-labelledby\": label ? _this._labelId : undefined, \"aria-valuemin\": ariaValueMin, \"aria-valuemax\": ariaValueMax, \"aria-valuenow\": ariaValueNow, \"aria-valuetext\": ariaValueText })));\n };\n var id = getId('progress-indicator');\n _this._labelId = id + '-label';\n _this._descriptionId = id + '-description';\n return _this;\n }\n ProgressIndicatorBase.prototype.render = function () {\n var _a = this.props, barHeight = _a.barHeight, className = _a.className, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.label, \n // eslint-disable-next-line deprecation/deprecation\n label = _b === void 0 ? this.props.title : _b, // Fall back to deprecated value.\n description = _a.description, styles = _a.styles, theme = _a.theme, progressHidden = _a.progressHidden, _c = _a.onRenderProgress, onRenderProgress = _c === void 0 ? this._onRenderProgress : _c;\n var percentComplete = typeof this.props.percentComplete === 'number'\n ? Math.min(100, Math.max(0, this.props.percentComplete * 100))\n : undefined;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n barHeight: barHeight,\n indeterminate: percentComplete === undefined ? true : false,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n label ? (React.createElement(\"div\", { id: this._labelId, className: classNames.itemName }, label)) : null,\n !progressHidden\n ? onRenderProgress(__assign(__assign({}, this.props), { percentComplete: percentComplete }), this._onRenderProgress)\n : null,\n description ? (React.createElement(\"div\", { id: this._descriptionId, className: classNames.itemDescription }, description)) : null));\n };\n ProgressIndicatorBase.defaultProps = {\n label: '',\n description: '',\n width: 180,\n };\n return ProgressIndicatorBase;\n}(React.Component));\nexport { ProgressIndicatorBase };\n//# sourceMappingURL=ProgressIndicator.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, keyframes, noWrap, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-ProgressIndicator',\n itemName: 'ms-ProgressIndicator-itemName',\n itemDescription: 'ms-ProgressIndicator-itemDescription',\n itemProgress: 'ms-ProgressIndicator-itemProgress',\n progressTrack: 'ms-ProgressIndicator-progressTrack',\n progressBar: 'ms-ProgressIndicator-progressBar',\n};\nvar IndeterminateProgress = memoizeFunction(function () {\n return keyframes({\n '0%': {\n left: '-30%',\n },\n '100%': {\n left: '100%',\n },\n });\n});\nvar IndeterminateProgressRTL = memoizeFunction(function () {\n return keyframes({\n '100%': {\n right: '-30%',\n },\n '0%': {\n right: '100%',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var isRTL = getRTL(props.theme);\n var className = props.className, indeterminate = props.indeterminate, theme = props.theme, _d = props.barHeight, barHeight = _d === void 0 ? 2 : _d;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var marginBetweenText = 8;\n var textHeight = 18;\n var progressTrackColor = palette.neutralLight;\n return {\n root: [classNames.root, fonts.medium, className],\n itemName: [\n classNames.itemName,\n noWrap,\n {\n color: semanticColors.bodyText,\n paddingTop: marginBetweenText / 2,\n lineHeight: textHeight + 2,\n },\n ],\n itemDescription: [\n classNames.itemDescription,\n {\n color: semanticColors.bodySubtext,\n fontSize: fonts.small.fontSize,\n lineHeight: textHeight,\n },\n ],\n itemProgress: [\n classNames.itemProgress,\n {\n position: 'relative',\n overflow: 'hidden',\n height: barHeight,\n padding: marginBetweenText + \"px 0\",\n },\n ],\n progressTrack: [\n classNames.progressTrack,\n {\n position: 'absolute',\n width: '100%',\n height: barHeight,\n backgroundColor: progressTrackColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderBottom: '1px solid WindowText',\n },\n _a),\n },\n ],\n progressBar: [\n {\n backgroundColor: palette.themePrimary,\n height: barHeight,\n position: 'absolute',\n transition: 'width .3s ease',\n width: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ backgroundColor: 'highlight' }, getHighContrastNoAdjustStyle()),\n _b),\n },\n indeterminate\n ? {\n position: 'absolute',\n minWidth: '33%',\n background: \"linear-gradient(to right, \" + progressTrackColor + \" 0%, \" +\n (palette.themePrimary + \" 50%, \" + progressTrackColor + \" 100%)\"),\n animation: (isRTL ? IndeterminateProgressRTL() : IndeterminateProgress()) + \" 3s infinite\",\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n background: \"highlight\",\n },\n _c),\n }\n : {\n transition: 'width .15s linear',\n },\n classNames.progressBar,\n ],\n };\n};\n//# sourceMappingURL=ProgressIndicator.styles.js.map","import { styled } from '../../Utilities';\nimport { ProgressIndicatorBase } from './ProgressIndicator.base';\nimport { getStyles } from './ProgressIndicator.styles';\n/**\n * ProgressIndicator description\n */\nexport var ProgressIndicator = styled(ProgressIndicatorBase, getStyles, undefined, { scope: 'ProgressIndicator' });\n//# sourceMappingURL=ProgressIndicator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, initializeComponentRef, classNamesFunction, css, format, getId, divProperties, getNativeProps, } from '../../Utilities';\nimport { Icon } from '../../Icon';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { RatingSize } from './Rating.types';\nvar getClassNames = classNamesFunction();\nvar RatingStar = function (props) {\n var icon = props.icon || 'FavoriteStarFill';\n return (React.createElement(\"div\", { className: props.classNames.ratingStar, key: props.id },\n React.createElement(Icon, { className: props.classNames.ratingStarBack, iconName: icon }),\n !props.disabled && (React.createElement(Icon, { className: props.classNames.ratingStarFront, iconName: icon, style: { width: props.fillPercentage + '%' } }))));\n};\nvar RatingBase = /** @class */ (function (_super) {\n __extends(RatingBase, _super);\n function RatingBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations('Rating', props, { onChanged: 'onChange' });\n _this._id = getId('Rating');\n _this._min = _this.props.allowZeroStars ? 0 : 1;\n /* eslint-disable deprecation/deprecation */\n if (_this.props.min !== undefined && _this.props.min !== 1) {\n _this._min = _this.props.min;\n }\n /* eslint-enable deprecation/deprecation */\n _this._labelId = getId('RatingLabel');\n _this.state = {\n rating: _this._getInitialValue(props),\n };\n return _this;\n }\n RatingBase.prototype.render = function () {\n var _a, _b, _c;\n var _d = this.props, ariaLabel = _d.ariaLabel, disabled = _d.disabled, getAriaLabel = _d.getAriaLabel, styles = _d.styles, max = _d.max, readOnly = _d.readOnly, size = _d.size, theme = _d.theme, _e = _d.icon, icon = _e === void 0 ? 'FavoriteStarFill' : _e, _f = _d.unselectedIcon, unselectedIcon = _f === void 0 ? 'FavoriteStar' : _f, onRenderStar = _d.onRenderStar;\n var id = this._id;\n var stars = [];\n var starIds = [];\n var rating = this._getRating();\n var divProps = getNativeProps(this.props, divProperties);\n this._classNames = getClassNames(styles, {\n disabled: disabled,\n readOnly: readOnly,\n theme: theme,\n });\n var renderStar = function (starProps, renderer) {\n return renderer ? renderer(starProps) : React.createElement(RatingStar, __assign({ key: starProps.starNum + 'rating' }, starProps));\n };\n for (var i = this._min; i <= max; i++) {\n if (i !== 0) {\n var fillPercentage = this._getFillingPercentage(i);\n var ratingStarProps = {\n fillPercentage: fillPercentage,\n disabled: disabled,\n classNames: this._classNames,\n icon: fillPercentage > 0 ? icon : unselectedIcon,\n starNum: i,\n };\n starIds.push(this._getStarId(i - 1));\n stars.push(React.createElement(\"button\", __assign({ className: css(this._classNames.ratingButton, (_a = {},\n _a[this._classNames.ratingStarIsLarge] = size === RatingSize.Large,\n _a[this._classNames.ratingStarIsSmall] = size !== RatingSize.Large,\n _a)), id: starIds[i - 1], key: i }, (i === Math.ceil(rating) ? { 'data-is-current': true } : {}), { onFocus: this._onFocus.bind(this, i), onClick: this._onFocus.bind(this, i), disabled: disabled || readOnly ? true : false, role: \"radio\", \"aria-checked\": i === Math.ceil(rating), \"aria-hidden\": readOnly ? 'true' : undefined, type: \"button\" }),\n this._getLabel(i),\n renderStar(ratingStarProps, onRenderStar)));\n }\n }\n var readOnlyAriaLabel = getAriaLabel ? getAriaLabel(rating ? rating : 0, max) : undefined;\n var normalModeAriaLabel = ariaLabel ? ariaLabel : readOnlyAriaLabel;\n // When in read-only mode, we allow focus (per ARIA standards) and set up ARIA attributes to indicate element\n // is read-only. https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n var readOnlyProps = readOnly\n ? {\n allowFocusRoot: true,\n disabled: true,\n 'aria-label': readOnlyAriaLabel,\n 'aria-readonly': true,\n 'data-is-focusable': true,\n role: 'textbox',\n tabIndex: 0,\n }\n : undefined;\n return (React.createElement(\"div\", __assign({ className: css('ms-Rating-star', this._classNames.root, (_b = {},\n _b[this._classNames.rootIsLarge] = size === RatingSize.Large,\n _b[this._classNames.rootIsSmall] = size !== RatingSize.Large,\n _b)), \"aria-label\": !readOnly ? normalModeAriaLabel : undefined, id: id, role: !readOnly ? 'radiogroup' : undefined }, divProps),\n React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.horizontal, className: css(this._classNames.ratingFocusZone, (_c = {},\n _c[this._classNames.rootIsLarge] = size === RatingSize.Large,\n _c[this._classNames.rootIsSmall] = size !== RatingSize.Large,\n _c)), defaultActiveElement: rating ? starIds[Math.ceil(rating) - 1] && '#' + starIds[Math.ceil(rating) - 1] : undefined }, readOnlyProps), stars)));\n };\n RatingBase.prototype._getStarId = function (index) {\n return this._id + '-star-' + index;\n };\n RatingBase.prototype._onFocus = function (value, ev) {\n if (Math.ceil(this.state.rating) !== value) {\n this.setState({\n rating: value,\n });\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n if (onChange) {\n onChange(ev, value);\n }\n if (onChanged) {\n onChanged(value);\n }\n }\n };\n RatingBase.prototype._getLabel = function (rating) {\n var text = this.props.ariaLabelFormat || '';\n return (React.createElement(\"span\", { id: this._labelId + \"-\" + rating, className: this._classNames.labelText }, format(text, rating, this.props.max)));\n };\n RatingBase.prototype._getInitialValue = function (props) {\n if (typeof props.rating === 'undefined') {\n return this._min;\n }\n if (props.rating === null) {\n return undefined;\n }\n return this._getClampedRating(props.rating);\n };\n RatingBase.prototype._getClampedRating = function (rating) {\n return Math.min(Math.max(rating, this._min), this.props.max);\n };\n RatingBase.prototype._getRating = function () {\n if (this.props.rating !== undefined) {\n return this._getClampedRating(this.props.rating);\n }\n if (this.state.rating !== undefined && this.state.rating !== null) {\n return this._getClampedRating(this.state.rating);\n }\n return 0;\n };\n RatingBase.prototype._getFillingPercentage = function (starPosition) {\n var rating = this._getRating();\n var ceilValue = Math.ceil(rating);\n var fillPercentage = 100;\n if (starPosition === rating) {\n fillPercentage = 100;\n }\n else if (starPosition === ceilValue) {\n fillPercentage = 100 * (rating % 1);\n }\n else if (starPosition > ceilValue) {\n fillPercentage = 0;\n }\n return fillPercentage;\n };\n RatingBase.defaultProps = {\n min: 1,\n max: 5,\n };\n return RatingBase;\n}(React.Component));\nexport { RatingBase };\n//# sourceMappingURL=Rating.base.js.map","import { getFocusStyle, hiddenContentStyle, HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-RatingStar-root',\n rootIsSmall: 'ms-RatingStar-root--small',\n rootIsLarge: 'ms-RatingStar-root--large',\n ratingStar: 'ms-RatingStar-container',\n ratingStarBack: 'ms-RatingStar-back',\n ratingStarFront: 'ms-RatingStar-front',\n ratingButton: 'ms-Rating-button',\n ratingStarIsSmall: 'ms-Rating--small',\n ratingStartIsLarge: 'ms-Rating--large',\n labelText: 'ms-Rating-labelText',\n ratingFocusZone: 'ms-Rating-focuszone',\n};\nfunction _getColorWithHighContrast(color, highContrastColor) {\n var _a;\n return {\n color: color,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: highContrastColor,\n },\n _a),\n };\n}\nexport function getStyles(props) {\n var disabled = props.disabled, readOnly = props.readOnly, theme = props.theme;\n var semanticColors = theme.semanticColors, palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ratingSmallIconSize = 16;\n var ratingLargeIconSize = 20;\n var ratingVerticalPadding = 8;\n var ratingHorizontalPadding = 2;\n var ratingStarUncheckedColor = palette.neutralSecondary;\n var ratingStarUncheckedHoverColor = palette.themePrimary;\n var ratingStarUncheckedHoverSelectedColor = palette.themeDark;\n var ratingStarCheckedColor = palette.neutralPrimary;\n var ratingStarDisabledColor = semanticColors.disabledBodySubtext;\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n !disabled &&\n !readOnly && {\n selectors: {\n // This is part 1 of highlighting all stars up to the one the user is hovering over\n '&:hover': {\n selectors: {\n '.ms-RatingStar-back': _getColorWithHighContrast(ratingStarCheckedColor, 'Highlight'),\n },\n },\n },\n },\n ],\n rootIsSmall: [\n classNames.rootIsSmall,\n {\n height: ratingSmallIconSize + ratingVerticalPadding * 2 + 'px',\n },\n ],\n rootIsLarge: [\n classNames.rootIsLarge,\n {\n height: ratingLargeIconSize + ratingVerticalPadding * 2 + 'px',\n },\n ],\n ratingStar: [\n classNames.ratingStar,\n {\n display: 'inline-block',\n position: 'relative',\n height: 'inherit',\n },\n ],\n ratingStarBack: [\n classNames.ratingStarBack,\n {\n // TODO: Use a proper semantic color for this\n color: ratingStarUncheckedColor,\n width: '100%',\n },\n disabled && _getColorWithHighContrast(ratingStarDisabledColor, 'GrayText'),\n ],\n ratingStarFront: [\n classNames.ratingStarFront,\n {\n position: 'absolute',\n height: '100 %',\n left: '0',\n top: '0',\n textAlign: 'center',\n verticalAlign: 'middle',\n overflow: 'hidden',\n },\n _getColorWithHighContrast(ratingStarCheckedColor, 'Highlight'),\n ],\n ratingButton: [\n getFocusStyle(theme),\n classNames.ratingButton,\n {\n backgroundColor: 'transparent',\n padding: ratingVerticalPadding + \"px \" + ratingHorizontalPadding + \"px\",\n boxSizing: 'content-box',\n margin: '0px',\n border: 'none',\n cursor: 'pointer',\n selectors: {\n '&:disabled': {\n cursor: 'default',\n },\n '&[disabled]': {\n cursor: 'default',\n },\n },\n },\n !disabled &&\n !readOnly && {\n selectors: {\n // This is part 2 of highlighting all stars up to the one the user is hovering over\n '&:hover ~ .ms-Rating-button': {\n selectors: {\n '.ms-RatingStar-back': _getColorWithHighContrast(ratingStarUncheckedColor, 'WindowText'),\n '.ms-RatingStar-front': _getColorWithHighContrast(ratingStarUncheckedColor, 'WindowText'),\n },\n },\n '&:hover': {\n selectors: {\n '.ms-RatingStar-back': {\n color: ratingStarUncheckedHoverColor,\n },\n '.ms-RatingStar-front': {\n color: ratingStarUncheckedHoverSelectedColor,\n },\n },\n },\n },\n },\n disabled && {\n cursor: 'default',\n },\n ],\n ratingStarIsSmall: [\n classNames.ratingStarIsSmall,\n {\n fontSize: ratingSmallIconSize + 'px',\n lineHeight: ratingSmallIconSize + 'px',\n height: ratingSmallIconSize + 'px',\n },\n ],\n ratingStarIsLarge: [\n classNames.ratingStartIsLarge,\n {\n fontSize: ratingLargeIconSize + 'px',\n lineHeight: ratingLargeIconSize + 'px',\n height: ratingLargeIconSize + 'px',\n },\n ],\n labelText: [classNames.labelText, hiddenContentStyle],\n ratingFocusZone: [\n getFocusStyle(theme),\n classNames.ratingFocusZone,\n {\n display: 'inline-block',\n },\n ],\n };\n}\n//# sourceMappingURL=Rating.styles.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Rating.styles';\nimport { RatingBase } from './Rating.base';\nexport var Rating = styled(RatingBase, getStyles, undefined, { scope: 'Rating' });\n//# sourceMappingURL=Rating.js.map","/**\n * {@docCategory Rating}\n */\nexport var RatingSize;\n(function (RatingSize) {\n RatingSize[RatingSize[\"Small\"] = 0] = \"Small\";\n RatingSize[RatingSize[\"Large\"] = 1] = \"Large\";\n})(RatingSize || (RatingSize = {}));\n//# sourceMappingURL=Rating.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, divProperties, getNativeProps, warnDeprecations } from '../../Utilities';\nimport { ResizeGroupDirection } from './ResizeGroup.types';\nimport { initializeComponentRef } from '@uifabric/utilities';\nvar RESIZE_DELAY = 16;\n/**\n * Returns a simple object is able to store measurements with a given key.\n */\nexport var getMeasurementCache = function () {\n var measurementsCache = {};\n return {\n /**\n * Checks if the provided data has a cacheKey. If it has a cacheKey and there is a\n * corresponding entry in the measurementsCache, then it will return that value.\n * Returns undefined otherwise.\n */\n getCachedMeasurement: function (data) {\n if (data && data.cacheKey && measurementsCache.hasOwnProperty(data.cacheKey)) {\n return measurementsCache[data.cacheKey];\n }\n return undefined;\n },\n /**\n * Should be called whenever there is a new measurement associated with a given data object.\n * If the data has a cacheKey, store that measurement in the measurementsCache.\n */\n addMeasurementToCache: function (data, measurement) {\n if (data.cacheKey) {\n measurementsCache[data.cacheKey] = measurement;\n }\n },\n };\n};\n/**\n * Returns a function that is able to compute the next state for the ResizeGroup given the current\n * state and any measurement updates.\n */\nexport var getNextResizeGroupStateProvider = function (measurementCache) {\n if (measurementCache === void 0) { measurementCache = getMeasurementCache(); }\n var _measurementCache = measurementCache;\n var _containerDimension;\n /**\n * Gets the width/height of the data rendered in a hidden div.\n * @param measuredData - The data corresponding to the measurement we wish to take.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _getMeasuredDimension(measuredData, getElementToMeasureDimension) {\n var cachedDimension = _measurementCache.getCachedMeasurement(measuredData);\n if (cachedDimension !== undefined) {\n return cachedDimension;\n }\n var measuredDimension = getElementToMeasureDimension();\n _measurementCache.addMeasurementToCache(measuredData, measuredDimension);\n return measuredDimension;\n }\n /**\n * Will get the next IResizeGroupState based on the current data while trying to shrink contents\n * to fit in the container.\n * @param data - The initial data point to start measuring.\n * @param onReduceData - Function that transforms the data into something that should render with less width/height.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _shrinkContentsUntilTheyFit(data, onReduceData, getElementToMeasureDimension) {\n var dataToMeasure = data;\n var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n while (measuredDimension > _containerDimension) {\n var nextMeasuredData = onReduceData(dataToMeasure);\n // We don't want to get stuck in an infinite render loop when there are no more\n // scaling steps, so implementations of onReduceData should return undefined when\n // there are no more scaling states to apply.\n if (nextMeasuredData === undefined) {\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n // If the measurement isn't in the cache, we need to rerender with some data in a hidden div\n if (measuredDimension === undefined) {\n return {\n dataToMeasure: nextMeasuredData,\n resizeDirection: 'shrink',\n };\n }\n dataToMeasure = nextMeasuredData;\n }\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n /**\n * This function should be called when the state changes in a manner that might allow for more content to fit\n * on the screen, such as the window width/height growing.\n * @param data - The initial data point to start measuring.\n * @param onGrowData - Function that transforms the data into something that may take up more space when rendering.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _growDataUntilItDoesNotFit(data, onGrowData, getElementToMeasureDimension, onReduceData) {\n var dataToMeasure = data;\n var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n while (measuredDimension < _containerDimension) {\n var nextMeasuredData = onGrowData(dataToMeasure);\n // We don't want to get stuck in an infinite render loop when there are no more\n // scaling steps, so implementations of onGrowData should return undefined when\n // there are no more scaling states to apply.\n if (nextMeasuredData === undefined) {\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n // If the measurement isn't in the cache, we need to rerender with some data in a hidden div\n if (measuredDimension === undefined) {\n return {\n dataToMeasure: nextMeasuredData,\n };\n }\n dataToMeasure = nextMeasuredData;\n }\n // Once the loop is done, we should now shrink until the contents fit.\n return __assign({ resizeDirection: 'shrink' }, _shrinkContentsUntilTheyFit(dataToMeasure, onReduceData, getElementToMeasureDimension));\n }\n /**\n * Handles an update to the container width/height.\n * Should only be called when we knew the previous container width/height.\n * @param newDimension - The new width/height of the container.\n * @param fullDimensionData - The initial data passed in as a prop to resizeGroup.\n * @param renderedData - The data that was rendered prior to the container size changing.\n * @param onGrowData - Set to true if the Resize group has an onGrowData function.\n */\n function _updateContainerDimension(newDimension, fullDimensionData, renderedData, onGrowData) {\n var nextState;\n if (newDimension > _containerDimension) {\n if (onGrowData) {\n nextState = {\n resizeDirection: 'grow',\n dataToMeasure: onGrowData(renderedData),\n };\n }\n else {\n nextState = {\n resizeDirection: 'shrink',\n dataToMeasure: fullDimensionData,\n };\n }\n }\n else {\n nextState = {\n resizeDirection: 'shrink',\n dataToMeasure: renderedData,\n };\n }\n _containerDimension = newDimension;\n return __assign(__assign({}, nextState), { measureContainer: false });\n }\n function getNextState(props, currentState, getElementToMeasureDimension, newContainerDimension) {\n // If there is no new container width/height or data to measure, there is no need for a new state update\n if (newContainerDimension === undefined && currentState.dataToMeasure === undefined) {\n return undefined;\n }\n if (newContainerDimension) {\n // If we know the last container size and we rendered data at that width/height, we can do an optimized render\n if (_containerDimension && currentState.renderedData && !currentState.dataToMeasure) {\n return __assign(__assign({}, currentState), _updateContainerDimension(newContainerDimension, props.data, currentState.renderedData, props.onGrowData));\n }\n // If we are just setting the container width/height for the first time, we can't do any optimizations\n _containerDimension = newContainerDimension;\n }\n var nextState = __assign(__assign({}, currentState), { measureContainer: false });\n if (currentState.dataToMeasure) {\n if (currentState.resizeDirection === 'grow' && props.onGrowData) {\n nextState = __assign(__assign({}, nextState), _growDataUntilItDoesNotFit(currentState.dataToMeasure, props.onGrowData, getElementToMeasureDimension, props.onReduceData));\n }\n else {\n nextState = __assign(__assign({}, nextState), _shrinkContentsUntilTheyFit(currentState.dataToMeasure, props.onReduceData, getElementToMeasureDimension));\n }\n }\n return nextState;\n }\n /** Function that determines if we need to render content for measurement based on the measurement cache contents. */\n function shouldRenderDataForMeasurement(dataToMeasure) {\n if (!dataToMeasure || _measurementCache.getCachedMeasurement(dataToMeasure) !== undefined) {\n return false;\n }\n return true;\n }\n function getInitialResizeGroupState(data) {\n return {\n dataToMeasure: __assign({}, data),\n resizeDirection: 'grow',\n measureContainer: true,\n };\n }\n return {\n getNextState: getNextState,\n shouldRenderDataForMeasurement: shouldRenderDataForMeasurement,\n getInitialResizeGroupState: getInitialResizeGroupState,\n };\n};\n// Provides a context property that (if true) tells any child components that\n// they are only being used for measurement purposes and will not be visible.\nexport var MeasuredContext = React.createContext({ isMeasured: false });\n// Styles for the hidden div used for measurement\nvar hiddenDivStyles = { position: 'fixed', visibility: 'hidden' };\nvar hiddenParentStyles = { position: 'relative' };\nvar COMPONENT_NAME = 'ResizeGroup';\nvar ResizeGroupBase = /** @class */ (function (_super) {\n __extends(ResizeGroupBase, _super);\n function ResizeGroupBase(props) {\n var _this = _super.call(this, props) || this;\n _this._nextResizeGroupStateProvider = getNextResizeGroupStateProvider();\n // The root div which is the container inside of which we are trying to fit content.\n _this._root = React.createRef();\n // A div that can be used for the initial measurement so that we can avoid mounting a second instance\n // of the component being measured for the initial render.\n _this._initialHiddenDiv = React.createRef();\n // A hidden div that is used for mounting a new instance of the component for measurement in a hidden\n // div without unmounting the currently visible content.\n _this._updateHiddenDiv = React.createRef();\n // Tracks if any content has been rendered to the user. This enables us to do some performance optimizations\n // for the initial render.\n _this._hasRenderedContent = false;\n _this.state = _this._nextResizeGroupStateProvider.getInitialResizeGroupState(_this.props.data);\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n styles: 'className',\n });\n return _this;\n }\n ResizeGroupBase.prototype.render = function () {\n var _a = this.props, className = _a.className, onRenderData = _a.onRenderData;\n var _b = this.state, dataToMeasure = _b.dataToMeasure, renderedData = _b.renderedData;\n var divProps = getNativeProps(this.props, divProperties, ['data']);\n var dataNeedsMeasuring = this._nextResizeGroupStateProvider.shouldRenderDataForMeasurement(dataToMeasure);\n var isInitialMeasure = !this._hasRenderedContent && dataNeedsMeasuring;\n // We only ever render the final content to the user. All measurements are done in a hidden div.\n // For the initial render, we want this to be as fast as possible, so we need to make sure that we only mount one\n // version of the component for measurement and the final render. For renders that update what is on screen, we\n // want to make sure that there are no jarring effects such as the screen flashing as we apply scaling steps for\n // measurement. In the update case, we mount a second version of the component just for measurement purposes and\n // leave the rendered content untouched until we know the next state to show to the user.\n return (React.createElement(\"div\", __assign({}, divProps, { className: className, ref: this._root }),\n React.createElement(\"div\", { style: hiddenParentStyles },\n dataNeedsMeasuring && !isInitialMeasure && (React.createElement(\"div\", { style: hiddenDivStyles, ref: this._updateHiddenDiv },\n React.createElement(MeasuredContext.Provider, { value: { isMeasured: true } }, onRenderData(dataToMeasure)))),\n React.createElement(\"div\", { ref: this._initialHiddenDiv, style: isInitialMeasure ? hiddenDivStyles : undefined, \"data-automation-id\": \"visibleContent\" }, isInitialMeasure ? onRenderData(dataToMeasure) : renderedData && onRenderData(renderedData)))));\n };\n ResizeGroupBase.prototype.componentDidMount = function () {\n this._afterComponentRendered(this.props.direction);\n this._events.on(window, 'resize', this._async.debounce(this._onResize, RESIZE_DELAY, { leading: true }));\n };\n ResizeGroupBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n this.setState({\n dataToMeasure: __assign({}, nextProps.data),\n resizeDirection: 'grow',\n // Receiving new props means the parent might rerender and the root width/height might change\n measureContainer: true,\n });\n };\n ResizeGroupBase.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.renderedData) {\n this._hasRenderedContent = true;\n if (this.props.dataDidRender) {\n this.props.dataDidRender(this.state.renderedData);\n }\n }\n this._afterComponentRendered(this.props.direction);\n };\n ResizeGroupBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ResizeGroupBase.prototype.remeasure = function () {\n if (this._root.current) {\n this.setState({ measureContainer: true });\n }\n };\n ResizeGroupBase.prototype._afterComponentRendered = function (direction) {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n var containerDimension = undefined;\n if (_this.state.measureContainer && _this._root.current) {\n var boundingRect = _this._root.current.getBoundingClientRect();\n containerDimension =\n direction && direction === ResizeGroupDirection.vertical ? boundingRect.height : boundingRect.width;\n }\n var nextState = _this._nextResizeGroupStateProvider.getNextState(_this.props, _this.state, function () {\n var refToMeasure = !_this._hasRenderedContent ? _this._initialHiddenDiv : _this._updateHiddenDiv;\n if (!refToMeasure.current) {\n return 0;\n }\n return direction && direction === ResizeGroupDirection.vertical\n ? refToMeasure.current.scrollHeight\n : refToMeasure.current.scrollWidth;\n }, containerDimension);\n if (nextState) {\n _this.setState(nextState);\n }\n }, this._root.current);\n };\n ResizeGroupBase.prototype._onResize = function () {\n if (this._root.current) {\n this.setState({ measureContainer: true });\n }\n };\n return ResizeGroupBase;\n}(React.Component));\nexport { ResizeGroupBase };\n//# sourceMappingURL=ResizeGroup.base.js.map","import { ResizeGroupBase } from './ResizeGroup.base';\nexport var ResizeGroup = ResizeGroupBase;\n//# sourceMappingURL=ResizeGroup.js.map","/**\n * {@docCategory ResizeGroup}\n */\nexport var ResizeGroupDirection;\n(function (ResizeGroupDirection) {\n ResizeGroupDirection[ResizeGroupDirection[\"horizontal\"] = 0] = \"horizontal\";\n ResizeGroupDirection[ResizeGroupDirection[\"vertical\"] = 1] = \"vertical\";\n})(ResizeGroupDirection || (ResizeGroupDirection = {}));\n//# sourceMappingURL=ResizeGroup.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, classNamesFunction, divProperties, getNativeProps, getRTL, initializeComponentRef, } from '../../Utilities';\nimport { ScrollablePaneContext, } from './ScrollablePane.types';\nvar getClassNames = classNamesFunction();\nvar ScrollablePaneBase = /** @class */ (function (_super) {\n __extends(ScrollablePaneBase, _super);\n function ScrollablePaneBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._stickyAboveRef = React.createRef();\n _this._stickyBelowRef = React.createRef();\n _this._contentContainer = React.createRef();\n _this.subscribe = function (handler) {\n _this._subscribers.add(handler);\n };\n _this.unsubscribe = function (handler) {\n _this._subscribers.delete(handler);\n };\n _this.addSticky = function (sticky) {\n _this._stickies.add(sticky);\n // If ScrollablePane is mounted, then sort sticky in correct place\n if (_this.contentContainer) {\n sticky.setDistanceFromTop(_this.contentContainer);\n _this.sortSticky(sticky);\n }\n };\n _this.removeSticky = function (sticky) {\n _this._stickies.delete(sticky);\n _this._removeStickyFromContainers(sticky);\n _this.notifySubscribers();\n };\n _this.sortSticky = function (sticky, sortAgain) {\n if (_this.stickyAbove && _this.stickyBelow) {\n if (sortAgain) {\n _this._removeStickyFromContainers(sticky);\n }\n if (sticky.canStickyTop && sticky.stickyContentTop) {\n _this._addToStickyContainer(sticky, _this.stickyAbove, sticky.stickyContentTop);\n }\n if (sticky.canStickyBottom && sticky.stickyContentBottom) {\n _this._addToStickyContainer(sticky, _this.stickyBelow, sticky.stickyContentBottom);\n }\n }\n };\n _this.updateStickyRefHeights = function () {\n var stickyItems = _this._stickies;\n var stickyTopHeight = 0;\n var stickyBottomHeight = 0;\n stickyItems.forEach(function (sticky) {\n var _a = sticky.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n if (sticky.nonStickyContent) {\n if (isStickyTop) {\n stickyTopHeight += sticky.nonStickyContent.offsetHeight;\n }\n if (isStickyBottom) {\n stickyBottomHeight += sticky.nonStickyContent.offsetHeight;\n }\n _this._checkStickyStatus(sticky);\n }\n });\n _this.setState({\n stickyTopHeight: stickyTopHeight,\n stickyBottomHeight: stickyBottomHeight,\n });\n };\n _this.notifySubscribers = function () {\n if (_this.contentContainer) {\n _this._subscribers.forEach(function (handle) {\n // this.stickyBelow is passed in for calculating distance to determine Sticky status\n handle(_this.contentContainer, _this.stickyBelow);\n });\n }\n };\n _this.getScrollPosition = function () {\n if (_this.contentContainer) {\n return _this.contentContainer.scrollTop;\n }\n return 0;\n };\n _this.syncScrollSticky = function (sticky) {\n if (sticky && _this.contentContainer) {\n sticky.syncScroll(_this.contentContainer);\n }\n };\n _this._getScrollablePaneContext = function () {\n return {\n scrollablePane: {\n subscribe: _this.subscribe,\n unsubscribe: _this.unsubscribe,\n addSticky: _this.addSticky,\n removeSticky: _this.removeSticky,\n updateStickyRefHeights: _this.updateStickyRefHeights,\n sortSticky: _this.sortSticky,\n notifySubscribers: _this.notifySubscribers,\n syncScrollSticky: _this.syncScrollSticky,\n },\n };\n };\n _this._addToStickyContainer = function (sticky, stickyContainer, stickyContentToAdd) {\n // If there's no children, append child to list, otherwise, sort though array and append at correct position\n if (!stickyContainer.children.length) {\n stickyContainer.appendChild(stickyContentToAdd);\n }\n else {\n // If stickyContentToAdd isn't a child element of target container, then append\n if (!stickyContainer.contains(stickyContentToAdd)) {\n var stickyChildrenElements_1 = [].slice.call(stickyContainer.children);\n var stickyList_1 = [];\n // Get stickies. Filter by canStickyTop/Bottom, then sort by distance from top, and then\n // filter by elements that are in the stickyContainer already.\n _this._stickies.forEach(function (stickyItem) {\n if (stickyContainer === _this.stickyAbove && sticky.canStickyTop) {\n stickyList_1.push(stickyItem);\n }\n else if (sticky.canStickyBottom) {\n stickyList_1.push(stickyItem);\n }\n });\n var stickyListSorted = stickyList_1\n .sort(function (a, b) {\n return (a.state.distanceFromTop || 0) - (b.state.distanceFromTop || 0);\n })\n .filter(function (item) {\n var stickyContent = stickyContainer === _this.stickyAbove ? item.stickyContentTop : item.stickyContentBottom;\n if (stickyContent) {\n return stickyChildrenElements_1.indexOf(stickyContent) > -1;\n }\n return false;\n });\n // Get first element that has a distance from top that is further than our sticky that is being added\n var targetStickyToAppendBefore = undefined;\n for (var _i = 0, stickyListSorted_1 = stickyListSorted; _i < stickyListSorted_1.length; _i++) {\n var stickyListItem = stickyListSorted_1[_i];\n if ((stickyListItem.state.distanceFromTop || 0) >= (sticky.state.distanceFromTop || 0)) {\n targetStickyToAppendBefore = stickyListItem;\n break;\n }\n }\n // If target element to append before is known, grab respective stickyContentTop/Bottom element\n // and insert before\n var targetContainer = null;\n if (targetStickyToAppendBefore) {\n targetContainer =\n stickyContainer === _this.stickyAbove\n ? targetStickyToAppendBefore.stickyContentTop\n : targetStickyToAppendBefore.stickyContentBottom;\n }\n stickyContainer.insertBefore(stickyContentToAdd, targetContainer);\n }\n }\n };\n _this._removeStickyFromContainers = function (sticky) {\n if (_this.stickyAbove && sticky.stickyContentTop && _this.stickyAbove.contains(sticky.stickyContentTop)) {\n _this.stickyAbove.removeChild(sticky.stickyContentTop);\n }\n if (_this.stickyBelow && sticky.stickyContentBottom && _this.stickyBelow.contains(sticky.stickyContentBottom)) {\n _this.stickyBelow.removeChild(sticky.stickyContentBottom);\n }\n };\n _this._onWindowResize = function () {\n var scrollbarWidth = _this._getScrollbarWidth();\n var scrollbarHeight = _this._getScrollbarHeight();\n _this.setState({\n scrollbarWidth: scrollbarWidth,\n scrollbarHeight: scrollbarHeight,\n });\n _this.notifySubscribers();\n };\n _this._getStickyContainerStyle = function (height, isTop) {\n return __assign(__assign({ height: height }, (getRTL(_this.props.theme)\n ? {\n right: '0',\n left: (_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0) + \"px\",\n }\n : {\n left: '0',\n right: (_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0) + \"px\",\n })), (isTop\n ? {\n top: '0',\n }\n : {\n bottom: (_this.state.scrollbarHeight || _this._getScrollbarHeight() || 0) + \"px\",\n }));\n };\n _this._onScroll = function () {\n var contentContainer = _this.contentContainer;\n if (contentContainer) {\n _this._stickies.forEach(function (sticky) {\n sticky.syncScroll(contentContainer);\n });\n }\n _this._notifyThrottled();\n };\n _this._subscribers = new Set();\n _this._stickies = new Set();\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n stickyTopHeight: 0,\n stickyBottomHeight: 0,\n scrollbarWidth: 0,\n scrollbarHeight: 0,\n };\n _this._notifyThrottled = _this._async.throttle(_this.notifySubscribers, 50);\n return _this;\n }\n Object.defineProperty(ScrollablePaneBase.prototype, \"root\", {\n get: function () {\n return this._root.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScrollablePaneBase.prototype, \"stickyAbove\", {\n get: function () {\n return this._stickyAboveRef.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScrollablePaneBase.prototype, \"stickyBelow\", {\n get: function () {\n return this._stickyBelowRef.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ScrollablePaneBase.prototype, \"contentContainer\", {\n get: function () {\n return this._contentContainer.current;\n },\n enumerable: true,\n configurable: true\n });\n ScrollablePaneBase.prototype.componentDidMount = function () {\n var _this = this;\n var initialScrollPosition = this.props.initialScrollPosition;\n this._events.on(this.contentContainer, 'scroll', this._onScroll);\n this._events.on(window, 'resize', this._onWindowResize);\n if (this.contentContainer && initialScrollPosition) {\n this.contentContainer.scrollTop = initialScrollPosition;\n }\n // Set sticky distances from top property, then sort in correct order and notify subscribers\n this.setStickiesDistanceFromTop();\n this._stickies.forEach(function (sticky) {\n _this.sortSticky(sticky);\n });\n this.notifySubscribers();\n if ('MutationObserver' in window) {\n this._mutationObserver = new MutationObserver(function (mutation) {\n // Function to check if mutation is occuring in stickyAbove or stickyBelow\n function checkIfMutationIsSticky(mutationRecord) {\n if (this.stickyAbove !== null && this.stickyBelow !== null) {\n return this.stickyAbove.contains(mutationRecord.target) || this.stickyBelow.contains(mutationRecord.target);\n }\n return false;\n }\n // Compute the scrollbar height, which might have changed if the content's width changed and caused overflow\n var scrollbarHeight = _this._getScrollbarHeight();\n // If the scrollbar height changed, update state so it's postioned correctly below sticky footer\n if (scrollbarHeight !== _this.state.scrollbarHeight) {\n _this.setState({\n scrollbarHeight: scrollbarHeight,\n });\n }\n // Notify subscribers again to re-check whether Sticky should be Sticky'd or not\n _this.notifySubscribers();\n // If mutation occurs in sticky header or footer, then update sticky top/bottom heights\n if (mutation.some(checkIfMutationIsSticky.bind(_this))) {\n _this.updateStickyRefHeights();\n }\n else {\n // If mutation occurs in scrollable region, then find Sticky it belongs to and force update\n var stickyList_2 = [];\n _this._stickies.forEach(function (sticky) {\n if (sticky.root && sticky.root.contains(mutation[0].target)) {\n stickyList_2.push(sticky);\n }\n });\n if (stickyList_2.length) {\n stickyList_2.forEach(function (sticky) {\n sticky.forceUpdate();\n });\n }\n }\n });\n if (this.root) {\n this._mutationObserver.observe(this.root, {\n childList: true,\n attributes: true,\n subtree: true,\n characterData: true,\n });\n }\n }\n };\n ScrollablePaneBase.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n }\n };\n // Only updates if props/state change, just to prevent excessive setState with updateStickyRefHeights\n ScrollablePaneBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (this.props.children !== nextProps.children ||\n this.props.initialScrollPosition !== nextProps.initialScrollPosition ||\n this.props.className !== nextProps.className ||\n this.state.stickyTopHeight !== nextState.stickyTopHeight ||\n this.state.stickyBottomHeight !== nextState.stickyBottomHeight ||\n this.state.scrollbarWidth !== nextState.scrollbarWidth ||\n this.state.scrollbarHeight !== nextState.scrollbarHeight);\n };\n ScrollablePaneBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n var initialScrollPosition = this.props.initialScrollPosition;\n if (this.contentContainer &&\n typeof initialScrollPosition === 'number' &&\n prevProps.initialScrollPosition !== initialScrollPosition) {\n this.contentContainer.scrollTop = initialScrollPosition;\n }\n // Update subscribers when stickyTopHeight/stickyBottomHeight changes\n if (prevState.stickyTopHeight !== this.state.stickyTopHeight ||\n prevState.stickyBottomHeight !== this.state.stickyBottomHeight) {\n this.notifySubscribers();\n }\n this._async.setTimeout(this._onWindowResize, 0);\n };\n ScrollablePaneBase.prototype.render = function () {\n var _a = this.props, className = _a.className, theme = _a.theme, styles = _a.styles;\n var _b = this.state, stickyTopHeight = _b.stickyTopHeight, stickyBottomHeight = _b.stickyBottomHeight;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n scrollbarVisibility: this.props.scrollbarVisibility,\n });\n return (React.createElement(\"div\", __assign({}, getNativeProps(this.props, divProperties), { ref: this._root, className: classNames.root }),\n React.createElement(\"div\", { ref: this._stickyAboveRef, className: classNames.stickyAbove, style: this._getStickyContainerStyle(stickyTopHeight, true) }),\n React.createElement(\"div\", { ref: this._contentContainer, className: classNames.contentContainer, \"data-is-scrollable\": true },\n React.createElement(ScrollablePaneContext.Provider, { value: this._getScrollablePaneContext() }, this.props.children)),\n React.createElement(\"div\", { className: classNames.stickyBelow, style: this._getStickyContainerStyle(stickyBottomHeight, false) },\n React.createElement(\"div\", { ref: this._stickyBelowRef, className: classNames.stickyBelowItems }))));\n };\n ScrollablePaneBase.prototype.setStickiesDistanceFromTop = function () {\n var _this = this;\n if (this.contentContainer) {\n this._stickies.forEach(function (sticky) {\n sticky.setDistanceFromTop(_this.contentContainer);\n });\n }\n };\n ScrollablePaneBase.prototype.forceLayoutUpdate = function () {\n this._onWindowResize();\n };\n ScrollablePaneBase.prototype._checkStickyStatus = function (sticky) {\n if (this.stickyAbove && this.stickyBelow && this.contentContainer && sticky.nonStickyContent) {\n // If sticky is sticky, then append content to appropriate container\n if (sticky.state.isStickyTop || sticky.state.isStickyBottom) {\n if (sticky.state.isStickyTop &&\n !this.stickyAbove.contains(sticky.nonStickyContent) &&\n sticky.stickyContentTop) {\n sticky.addSticky(sticky.stickyContentTop);\n }\n if (sticky.state.isStickyBottom &&\n !this.stickyBelow.contains(sticky.nonStickyContent) &&\n sticky.stickyContentBottom) {\n sticky.addSticky(sticky.stickyContentBottom);\n }\n }\n else if (!this.contentContainer.contains(sticky.nonStickyContent)) {\n // Reset sticky if it's not sticky and not in the contentContainer element\n sticky.resetSticky();\n }\n }\n };\n ScrollablePaneBase.prototype._getScrollbarWidth = function () {\n var contentContainer = this.contentContainer;\n return contentContainer ? contentContainer.offsetWidth - contentContainer.clientWidth : 0;\n };\n ScrollablePaneBase.prototype._getScrollbarHeight = function () {\n var contentContainer = this.contentContainer;\n return contentContainer ? contentContainer.offsetHeight - contentContainer.clientHeight : 0;\n };\n return ScrollablePaneBase;\n}(React.Component));\nexport { ScrollablePaneBase };\n//# sourceMappingURL=ScrollablePane.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ScrollablePane',\n contentContainer: 'ms-ScrollablePane--contentContainer',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var AboveAndBelowStyles = {\n position: 'absolute',\n pointerEvents: 'none',\n };\n var positioningStyle = {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n WebkitOverflowScrolling: 'touch',\n };\n return {\n root: [classNames.root, theme.fonts.medium, positioningStyle, className],\n contentContainer: [\n classNames.contentContainer,\n {\n overflowY: props.scrollbarVisibility === 'always' ? 'scroll' : 'auto',\n },\n positioningStyle,\n ],\n stickyAbove: [\n {\n top: 0,\n zIndex: 1,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderBottom: '1px solid WindowText',\n },\n _a),\n },\n AboveAndBelowStyles,\n ],\n stickyBelow: [\n {\n bottom: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderTop: '1px solid WindowText',\n },\n _b),\n },\n AboveAndBelowStyles,\n ],\n stickyBelowItems: [\n {\n bottom: 0,\n },\n AboveAndBelowStyles,\n {\n width: '100%',\n },\n ],\n };\n};\n//# sourceMappingURL=ScrollablePane.styles.js.map","import { getStyles } from './ScrollablePane.styles';\nimport { ScrollablePaneBase } from './ScrollablePane.base';\nimport { styled } from '../../Utilities';\nexport var ScrollablePane = styled(ScrollablePaneBase, getStyles, undefined, { scope: 'ScrollablePane' });\n//# sourceMappingURL=ScrollablePane.js.map","import * as React from 'react';\n/**\n * {@docCategory ScrollablePane}\n */\nexport var ScrollbarVisibility = {\n auto: 'auto',\n always: 'always',\n};\nexport var ScrollablePaneContext = React.createContext({ scrollablePane: undefined });\n//# sourceMappingURL=ScrollablePane.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, warnDeprecations, getId, KeyCodes, classNamesFunction, getNativeProps, inputProperties, } from '../../Utilities';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SearchBox';\nvar SearchBoxBase = /** @class */ (function (_super) {\n __extends(SearchBoxBase, _super);\n function SearchBoxBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootElement = React.createRef();\n _this._inputElement = React.createRef();\n _this._onClickFocus = function () {\n var inputElement = _this._inputElement.current;\n if (inputElement) {\n _this.focus();\n inputElement.selectionStart = inputElement.selectionEnd = 0;\n }\n };\n _this._onFocusCapture = function (ev) {\n _this.setState({\n hasFocus: true,\n });\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n };\n _this._onClearClick = function (ev) {\n var clearButtonProps = _this.props.clearButtonProps;\n if (clearButtonProps && clearButtonProps.onClick) {\n clearButtonProps.onClick(ev);\n }\n if (!ev.defaultPrevented) {\n _this._onClear(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n switch (ev.which) {\n case KeyCodes.escape:\n _this.props.onEscape && _this.props.onEscape(ev);\n // Only call onClear if the search box has a value to clear. Otherwise, allow the Esc key\n // to propagate from the empty search box to a parent element such as a dialog, etc.\n if (_this.state.value && !ev.defaultPrevented) {\n _this._onClear(ev);\n }\n break;\n case KeyCodes.enter:\n if (_this.props.onSearch) {\n _this.props.onSearch(_this.state.value);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n default:\n _this.props.onKeyDown && _this.props.onKeyDown(ev);\n if (ev.defaultPrevented) {\n ev.stopPropagation();\n }\n break;\n }\n };\n _this._onBlur = function (ev) {\n _this.setState({\n hasFocus: false,\n });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n };\n _this._onInputChange = function (ev) {\n var value = ev.target.value;\n if (value === _this._latestValue) {\n return;\n }\n _this._latestValue = value;\n _this.setState({ value: value });\n _this._callOnChange(ev, value);\n };\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n labelText: 'placeholder',\n defaultValue: 'value',\n });\n _this._latestValue = props.value || '';\n _this._fallbackId = getId(COMPONENT_NAME);\n _this.state = {\n value: _this._latestValue,\n hasFocus: false,\n };\n return _this;\n }\n SearchBoxBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n if (newProps.value !== undefined) {\n this._latestValue = newProps.value;\n // If the user passes in null, substitute an empty string\n // (passing null is not allowed per typings, but users might do it anyway)\n this.setState({\n value: newProps.value || '',\n });\n }\n };\n SearchBoxBase.prototype.render = function () {\n var _a = this.props, ariaLabel = _a.ariaLabel, placeholder = _a.placeholder, className = _a.className, disabled = _a.disabled, underlined = _a.underlined, styles = _a.styles, \n // eslint-disable-next-line deprecation/deprecation\n labelText = _a.labelText, theme = _a.theme, clearButtonProps = _a.clearButtonProps, disableAnimation = _a.disableAnimation, iconProps = _a.iconProps, role = _a.role, _b = _a.id, id = _b === void 0 ? this._fallbackId : _b;\n var _c = this.state, value = _c.value, hasFocus = _c.hasFocus;\n var placeholderValue = placeholder !== undefined ? placeholder : labelText;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n underlined: underlined,\n hasFocus: hasFocus,\n disabled: disabled,\n hasInput: value.length > 0,\n disableAnimation: disableAnimation,\n });\n var nativeProps = getNativeProps(this.props, inputProperties, [\n 'className',\n 'placeholder',\n 'onFocus',\n 'onBlur',\n 'value',\n 'role',\n ]);\n return (React.createElement(\"div\", { role: role, ref: this._rootElement, className: classNames.root, onFocusCapture: this._onFocusCapture },\n React.createElement(\"div\", { className: classNames.iconContainer, onClick: this._onClickFocus, \"aria-hidden\": true },\n React.createElement(Icon, __assign({ iconName: \"Search\" }, iconProps, { className: classNames.icon }))),\n React.createElement(\"input\", __assign({}, nativeProps, { id: id, className: classNames.field, placeholder: placeholderValue, onChange: this._onInputChange, onInput: this._onInputChange, onBlur: this._onBlur, onKeyDown: this._onKeyDown, value: value, disabled: disabled, role: \"searchbox\", \"aria-label\": ariaLabel, ref: this._inputElement })),\n value.length > 0 && (React.createElement(\"div\", { className: classNames.clearButton },\n React.createElement(IconButton, __assign({ onBlur: this._onBlur, styles: { root: { height: 'auto' }, icon: { fontSize: '12px' } }, iconProps: { iconName: 'Clear' } }, clearButtonProps, { onClick: this._onClearClick }))))));\n };\n /**\n * Sets focus to the search box input field\n */\n SearchBoxBase.prototype.focus = function () {\n if (this._inputElement.current) {\n this._inputElement.current.focus();\n }\n };\n /**\n * Returns whether or not the SearchBox has focus\n */\n SearchBoxBase.prototype.hasFocus = function () {\n return !!this.state.hasFocus;\n };\n SearchBoxBase.prototype._onClear = function (ev) {\n this.props.onClear && this.props.onClear(ev);\n if (!ev.defaultPrevented) {\n this._latestValue = '';\n this.setState({\n value: '',\n });\n this._callOnChange(undefined, '');\n ev.stopPropagation();\n ev.preventDefault();\n this.focus();\n }\n };\n SearchBoxBase.prototype._callOnChange = function (ev, newValue) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n // Call @deprecated method.\n if (onChanged) {\n onChanged(newValue);\n }\n if (onChange) {\n onChange(ev, newValue);\n }\n };\n SearchBoxBase.defaultProps = {\n disableAnimation: false,\n clearButtonProps: { ariaLabel: 'Clear text' },\n };\n return SearchBoxBase;\n}(React.Component));\nexport { SearchBoxBase };\n//# sourceMappingURL=SearchBox.base.js.map","import { HighContrastSelector, AnimationVariables, normalize, getPlaceholderStyles, getGlobalClassNames, getInputFocusStyle, } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-SearchBox',\n iconContainer: 'ms-SearchBox-iconContainer',\n icon: 'ms-SearchBox-icon',\n clearButton: 'ms-SearchBox-clearButton',\n field: 'ms-SearchBox-field',\n};\nexport function getStyles(props) {\n var _a, _b, _c, _d;\n var theme = props.theme, underlined = props.underlined, disabled = props.disabled, hasFocus = props.hasFocus, className = props.className, hasInput = props.hasInput, disableAnimation = props.disableAnimation;\n var palette = theme.palette, fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // placeholder style constants\n var placeholderStyles = {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n };\n var inputIconAlt = palette.neutralSecondary;\n var inputIconAltHovered = palette.neutralPrimary;\n var inputBorderDisabled = palette.neutralLighter;\n var inputBackgroundHovered = palette.neutralLighter;\n var inputBackgroundDisabled = palette.neutralLighter;\n return {\n root: [\n classNames.root,\n fonts.medium,\n normalize,\n {\n color: semanticColors.inputText,\n backgroundColor: semanticColors.inputBackground,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'stretch',\n // The 1px top and bottom padding ensure the input field does not overlap the border\n padding: '1px 0 1px 4px',\n borderRadius: effects.roundedCorner2,\n border: \"1px solid \" + semanticColors.inputBorder,\n height: 32,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _a[':hover'] = {\n borderColor: semanticColors.inputBorderHovered,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n _a[\":hover .\" + classNames.iconContainer] = {\n color: semanticColors.inputIconHovered,\n },\n _a),\n },\n !hasFocus &&\n hasInput && {\n selectors: (_c = {},\n _c[\":hover .\" + classNames.iconContainer] = {\n width: 4,\n },\n _c[\":hover .\" + classNames.icon] = {\n opacity: 0,\n pointerEvents: 'none',\n },\n _c),\n },\n hasFocus && [\n 'is-active',\n {\n position: 'relative',\n },\n getInputFocusStyle(semanticColors.inputFocusBorderAlt, underlined ? 0 : effects.roundedCorner2, underlined ? 'borderBottom' : 'border'),\n ],\n disabled && [\n 'is-disabled',\n {\n borderColor: inputBorderDisabled,\n backgroundColor: inputBackgroundDisabled,\n pointerEvents: 'none',\n cursor: 'default',\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _d),\n },\n ],\n underlined && [\n 'is-underlined',\n {\n borderWidth: '0 0 1px 0',\n borderRadius: 0,\n // Underlined SearchBox has a larger padding left to vertically align with the waffle in product\n padding: '1px 0 1px 8px',\n },\n ],\n underlined &&\n disabled && {\n backgroundColor: 'transparent',\n },\n hasInput && 'can-clear',\n className,\n ],\n iconContainer: [\n classNames.iconContainer,\n {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n flexShrink: 0,\n fontSize: 16,\n width: 32,\n textAlign: 'center',\n color: semanticColors.inputIcon,\n cursor: 'text',\n },\n hasFocus && {\n width: 4,\n },\n disabled && {\n color: semanticColors.inputIconDisabled,\n },\n !disableAnimation && {\n transition: \"width \" + AnimationVariables.durationValue1,\n },\n ],\n icon: [\n classNames.icon,\n {\n opacity: 1,\n },\n hasFocus && {\n opacity: 0,\n pointerEvents: 'none',\n },\n !disableAnimation && {\n transition: \"opacity \" + AnimationVariables.durationValue1 + \" 0s\",\n },\n ],\n clearButton: [\n classNames.clearButton,\n {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n cursor: 'pointer',\n flexBasis: '32px',\n flexShrink: 0,\n padding: 0,\n margin: '-1px 0px',\n selectors: {\n '&:hover .ms-Button': {\n backgroundColor: inputBackgroundHovered,\n },\n '&:hover .ms-Button-icon': {\n color: inputIconAltHovered,\n },\n '.ms-Button': {\n borderRadius: getRTL(theme) ? '1px 0 0 1px' : '0 1px 1px 0',\n },\n '.ms-Button-icon': {\n color: inputIconAlt,\n },\n },\n },\n ],\n field: [\n classNames.field,\n normalize,\n getPlaceholderStyles(placeholderStyles),\n {\n backgroundColor: 'transparent',\n border: 'none',\n outline: 'none',\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n color: semanticColors.inputText,\n flex: '1 1 0px',\n // The default implicit value of 'auto' prevents the input from shrinking. Setting min-width to\n // 0px allows the input element to shrink to fit the container.\n minWidth: '0px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // This padding forces the text placement to round up.\n paddingBottom: 0.5,\n // This removes the IE specific clear button in the input since we implimented our own\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n disabled && {\n color: semanticColors.disabledText,\n },\n ],\n };\n}\n//# sourceMappingURL=SearchBox.styles.js.map","import { styled } from '../../Utilities';\nimport { SearchBoxBase } from './SearchBox.base';\nimport { getStyles } from './SearchBox.styles';\nexport var SearchBox = styled(SearchBoxBase, getStyles, undefined, { scope: 'SearchBox' });\n//# sourceMappingURL=SearchBox.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Selection } from '../../Selection';\nimport { initializeComponentRef } from '../../Utilities';\nvar BaseSelectedItemsList = /** @class */ (function (_super) {\n __extends(BaseSelectedItemsList, _super);\n function BaseSelectedItemsList(basePickerProps) {\n var _this = _super.call(this, basePickerProps) || this;\n _this.addItems = function (items) {\n var processedItems = _this.props.onItemSelected\n ? _this.props.onItemSelected(items)\n : items;\n var processedItemObjects = processedItems;\n var processedItemPromiseLikes = processedItems;\n if (processedItemPromiseLikes && processedItemPromiseLikes.then) {\n processedItemPromiseLikes.then(function (resolvedProcessedItems) {\n var newItems = _this.state.items.concat(resolvedProcessedItems);\n _this.updateItems(newItems);\n });\n }\n else {\n var newItems = _this.state.items.concat(processedItemObjects);\n _this.updateItems(newItems);\n }\n };\n _this.removeItemAt = function (index) {\n var items = _this.state.items;\n if (_this._canRemoveItem(items[index])) {\n if (index > -1) {\n if (_this.props.onItemsDeleted) {\n _this.props.onItemsDeleted([items[index]]);\n }\n var newItems = items.slice(0, index).concat(items.slice(index + 1));\n _this.updateItems(newItems);\n }\n }\n };\n _this.removeItem = function (item) {\n var items = _this.state.items;\n var index = items.indexOf(item);\n _this.removeItemAt(index);\n };\n _this.replaceItem = function (itemToReplace, itemsToReplaceWith) {\n var items = _this.state.items;\n var index = items.indexOf(itemToReplace);\n if (index > -1) {\n var newItems = items\n .slice(0, index)\n .concat(itemsToReplaceWith)\n .concat(items.slice(index + 1));\n _this.updateItems(newItems);\n }\n };\n _this.removeItems = function (itemsToRemove) {\n var items = _this.state.items;\n var itemsCanRemove = itemsToRemove.filter(function (item) { return _this._canRemoveItem(item); });\n var newItems = items.filter(function (item) { return itemsCanRemove.indexOf(item) === -1; });\n var firstItemToRemove = itemsCanRemove[0];\n var index = items.indexOf(firstItemToRemove);\n if (_this.props.onItemsDeleted) {\n _this.props.onItemsDeleted(itemsCanRemove);\n }\n _this.updateItems(newItems, index);\n };\n _this.onCopy = function (ev) {\n if (_this.props.onCopyItems && _this.selection.getSelectedCount() > 0) {\n var selectedItems = _this.selection.getSelection();\n _this.copyItems(selectedItems);\n }\n };\n _this.renderItems = function () {\n var removeButtonAriaLabel = _this.props.removeButtonAriaLabel;\n var onRenderItem = _this.props.onRenderItem;\n var items = _this.state.items;\n return items.map(function (item, index) {\n return onRenderItem({\n item: item,\n index: index,\n key: item.key ? item.key : index,\n selected: _this.selection.isIndexSelected(index),\n onRemoveItem: function () { return _this.removeItem(item); },\n onItemChange: _this.onItemChange,\n removeButtonAriaLabel: removeButtonAriaLabel,\n onCopyItem: function (itemToCopy) { return _this.copyItems([itemToCopy]); },\n });\n });\n };\n _this.onSelectionChanged = function () {\n _this.forceUpdate();\n };\n _this.onItemChange = function (changedItem, index) {\n var items = _this.state.items;\n if (index >= 0) {\n var newItems = items;\n newItems[index] = changedItem;\n _this.updateItems(newItems);\n }\n };\n initializeComponentRef(_this);\n var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];\n _this.state = {\n items: items,\n };\n // Create a new selection if one is not specified\n _this.selection = _this.props.selection\n ? _this.props.selection\n : new Selection({ onSelectionChanged: _this.onSelectionChanged });\n return _this;\n }\n Object.defineProperty(BaseSelectedItemsList.prototype, \"items\", {\n get: function () {\n return this.state.items;\n },\n enumerable: true,\n configurable: true\n });\n BaseSelectedItemsList.prototype.removeSelectedItems = function () {\n if (this.state.items.length && this.selection.getSelectedCount() > 0) {\n this.removeItems(this.selection.getSelection());\n }\n };\n /**\n * Controls what happens whenever there is an action that impacts the selected items.\n * If selectedItems is provided, this will act as a controlled component and will not update its own state.\n */\n BaseSelectedItemsList.prototype.updateItems = function (items, focusIndex) {\n var _this = this;\n if (this.props.selectedItems) {\n // If the component is a controlled component then the controlling component will need to pass the new props\n this.onChange(items);\n }\n else {\n this.setState({ items: items }, function () {\n _this._onSelectedItemsUpdated(items, focusIndex);\n });\n }\n };\n BaseSelectedItemsList.prototype.hasSelectedItems = function () {\n return this.selection.getSelectedCount() > 0;\n };\n BaseSelectedItemsList.prototype.unselectAll = function () {\n this.selection.setAllSelected(false);\n };\n BaseSelectedItemsList.prototype.highlightedItems = function () {\n return this.selection.getSelection();\n };\n BaseSelectedItemsList.prototype.UNSAFE_componentWillUpdate = function (newProps, newState) {\n if (newState.items && newState.items !== this.state.items) {\n this.selection.setItems(newState.items);\n }\n };\n BaseSelectedItemsList.prototype.componentDidMount = function () {\n this.selection.setItems(this.state.items);\n };\n BaseSelectedItemsList.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n var newItems = newProps.selectedItems;\n if (newItems) {\n this.setState({ items: newItems });\n }\n if (newProps.selection) {\n this.selection = newProps.selection;\n }\n };\n BaseSelectedItemsList.prototype.render = function () {\n return this.renderItems();\n };\n BaseSelectedItemsList.prototype.onChange = function (items) {\n if (this.props.onChange) {\n this.props.onChange(items);\n }\n };\n BaseSelectedItemsList.prototype.copyItems = function (items) {\n if (this.props.onCopyItems) {\n var copyText = this.props.onCopyItems(items);\n var copyInput = document.createElement('input');\n document.body.appendChild(copyInput);\n try {\n // Try to copy the text directly to the clipboard\n copyInput.value = copyText;\n copyInput.select();\n if (!document.execCommand('copy')) {\n // The command failed. Fallback to the method below.\n throw new Error();\n }\n }\n catch (err) {\n // no op\n }\n finally {\n document.body.removeChild(copyInput);\n }\n }\n };\n BaseSelectedItemsList.prototype._onSelectedItemsUpdated = function (items, focusIndex) {\n this.onChange(items);\n };\n BaseSelectedItemsList.prototype._canRemoveItem = function (item) {\n return !this.props.canRemoveItem || this.props.canRemoveItem(item);\n };\n return BaseSelectedItemsList;\n}(React.Component));\nexport { BaseSelectedItemsList };\n//# sourceMappingURL=BaseSelectedItemsList.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".personaContainer_91022ca2{border-radius:15px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:\" }, { \"theme\": \"themeLighterAlt\", \"defaultValue\": \"#eff6fc\" }, { \"rawString\": \";margin:4px;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;position:relative}.personaContainer_91022ca2::-moz-focus-inner{border:0}.personaContainer_91022ca2{outline:transparent}.personaContainer_91022ca2{position:relative}.ms-Fabric--isFocusVisible .personaContainer_91022ca2:focus:after{content:'';position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;pointer-events:none;border:1px solid \" }, { \"theme\": \"focusBorder\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.personaContainer_91022ca2 .ms-Persona-primaryText{color:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \";font-size:14px;font-weight:400}.personaContainer_91022ca2 .ms-Persona-primaryText.hover_91022ca2{color:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2 .ms-Persona-primaryText{color:HighlightText}}.personaContainer_91022ca2 .actionButton_91022ca2:hover{background:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.personaContainer_91022ca2 .actionButton_91022ca2 .ms-Button-icon{color:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2 .actionButton_91022ca2 .ms-Button-icon{color:HighlightText}}.personaContainer_91022ca2:hover{background:\" }, { \"theme\": \"themeLighter\", \"defaultValue\": \"#deecf9\" }, { \"rawString\": \"}.personaContainer_91022ca2:hover .ms-Persona-primaryText{color:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \";font-size:14px;font-weight:400}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2:hover .ms-Persona-primaryText{color:HighlightText}}.personaContainer_91022ca2.personaContainerIsSelected_91022ca2{background:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}.personaContainer_91022ca2.personaContainerIsSelected_91022ca2 .ms-Persona-primaryText{color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2.personaContainerIsSelected_91022ca2 .ms-Persona-primaryText{color:HighlightText}}.personaContainer_91022ca2.personaContainerIsSelected_91022ca2 .actionButton_91022ca2{color:\" }, { \"theme\": \"white\", \"defaultValue\": \"#ffffff\" }, { \"rawString\": \"}.personaContainer_91022ca2.personaContainerIsSelected_91022ca2 .actionButton_91022ca2 .ms-Button-icon{color:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \"}.personaContainer_91022ca2.personaContainerIsSelected_91022ca2 .actionButton_91022ca2 .ms-Button-icon:hover{background:\" }, { \"theme\": \"themeDark\", \"defaultValue\": \"#005a9e\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2.personaContainerIsSelected_91022ca2 .actionButton_91022ca2 .ms-Button-icon{color:HighlightText}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2.personaContainerIsSelected_91022ca2{border-color:Highlight;background:Highlight;-ms-high-contrast-adjust:none}}.personaContainer_91022ca2.validationError_91022ca2 .ms-Persona-primaryText{color:\" }, { \"theme\": \"red\", \"defaultValue\": \"#e81123\" }, { \"rawString\": \"}.personaContainer_91022ca2.validationError_91022ca2 .ms-Persona-initials{font-size:20px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.personaContainer_91022ca2{border:1px solid WindowText}}.personaContainer_91022ca2 .itemContent_91022ca2{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;min-width:0;max-width:100%}.personaContainer_91022ca2 .removeButton_91022ca2{border-radius:15px;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33px;height:33px;-ms-flex-preferred-size:32px;flex-basis:32px}.personaContainer_91022ca2 .expandButton_91022ca2{border-radius:15px 0 0 15px;height:33px;width:44px;padding-right:16px;position:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:-17px}.personaContainer_91022ca2 .personaWrapper_91022ca2{position:relative;display:inherit}.personaContainer_91022ca2 .personaWrapper_91022ca2 .ms-Persona-details{padding:0 8px}.personaContainer_91022ca2 .personaDetails_91022ca2{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.itemContainer_91022ca2{display:inline-block;vertical-align:top}\" }]);\nexport var personaContainer = \"personaContainer_91022ca2\";\nexport var hover = \"hover_91022ca2\";\nexport var actionButton = \"actionButton_91022ca2\";\nexport var personaContainerIsSelected = \"personaContainerIsSelected_91022ca2\";\nexport var validationError = \"validationError_91022ca2\";\nexport var itemContent = \"itemContent_91022ca2\";\nexport var removeButton = \"removeButton_91022ca2\";\nexport var expandButton = \"expandButton_91022ca2\";\nexport var personaWrapper = \"personaWrapper_91022ca2\";\nexport var personaDetails = \"personaDetails_91022ca2\";\nexport var itemContainer = \"itemContainer_91022ca2\";\n//# sourceMappingURL=ExtendedSelectedItem.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { css, getId, initializeComponentRef } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { IconButton } from '../../../../Button';\nimport * as stylesImport from './ExtendedSelectedItem.scss';\nvar styles = stylesImport;\nvar ExtendedSelectedItem = /** @class */ (function (_super) {\n __extends(ExtendedSelectedItem, _super);\n function ExtendedSelectedItem(props) {\n var _this = _super.call(this, props) || this;\n _this.persona = React.createRef();\n initializeComponentRef(_this);\n // eslint-disable-next-line react/no-unused-state\n _this.state = { contextualMenuVisible: false };\n return _this;\n }\n ExtendedSelectedItem.prototype.render = function () {\n var _a, _b;\n var _c = this.props, item = _c.item, onExpandItem = _c.onExpandItem, onRemoveItem = _c.onRemoveItem, removeButtonAriaLabel = _c.removeButtonAriaLabel, index = _c.index, selected = _c.selected;\n var itemId = getId();\n return (React.createElement(\"div\", { ref: this.persona, className: css('ms-PickerPersona-container', styles.personaContainer, (_a = {}, _a['is-selected ' + styles.personaContainerIsSelected] = selected, _a), (_b = {}, _b['is-invalid ' + styles.validationError] = !item.isValid, _b)), \"data-is-focusable\": true, \"data-is-sub-focuszone\": true, \"data-selection-index\": index, role: 'listitem', \"aria-labelledby\": 'selectedItemPersona-' + itemId },\n React.createElement(\"div\", { hidden: !item.canExpand || onExpandItem === undefined },\n React.createElement(IconButton, { onClick: this._onClickIconButton(onExpandItem), iconProps: { iconName: 'Add', style: { fontSize: '14px' } }, className: css('ms-PickerItem-removeButton', styles.expandButton, styles.actionButton), ariaLabel: removeButtonAriaLabel })),\n React.createElement(\"div\", { className: css(styles.personaWrapper) },\n React.createElement(\"div\", { className: css('ms-PickerItem-content', styles.itemContent), id: 'selectedItemPersona-' + itemId },\n React.createElement(Persona, __assign({}, item, { onRenderCoin: this.props.renderPersonaCoin, onRenderPrimaryText: this.props.renderPrimaryText, size: PersonaSize.size32 }))),\n React.createElement(IconButton, { onClick: this._onClickIconButton(onRemoveItem), iconProps: { iconName: 'Cancel', style: { fontSize: '14px' } }, className: css('ms-PickerItem-removeButton', styles.removeButton, styles.actionButton), ariaLabel: removeButtonAriaLabel }))));\n };\n ExtendedSelectedItem.prototype._onClickIconButton = function (action) {\n return function (ev) {\n ev.stopPropagation();\n ev.preventDefault();\n if (action) {\n action();\n }\n };\n };\n return ExtendedSelectedItem;\n}(React.Component));\nexport { ExtendedSelectedItem };\n//# sourceMappingURL=ExtendedSelectedItem.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef } from '../../../../Utilities';\nimport { ContextualMenu, DirectionalHint } from '../../../../ContextualMenu';\nvar SelectedItemWithContextMenu = /** @class */ (function (_super) {\n __extends(SelectedItemWithContextMenu, _super);\n function SelectedItemWithContextMenu(props) {\n var _this = _super.call(this, props) || this;\n _this.itemElement = React.createRef();\n _this._onClick = function (ev) {\n ev.preventDefault();\n if (_this.props.beginEditing && !_this.props.item.isValid) {\n _this.props.beginEditing(_this.props.item);\n }\n else {\n _this.setState({ contextualMenuVisible: true });\n }\n };\n _this._onCloseContextualMenu = function (ev) {\n _this.setState({ contextualMenuVisible: false });\n };\n initializeComponentRef(_this);\n _this.state = { contextualMenuVisible: false };\n return _this;\n }\n SelectedItemWithContextMenu.prototype.render = function () {\n return (React.createElement(\"div\", { ref: this.itemElement, onContextMenu: this._onClick },\n this.props.renderedItem,\n this.state.contextualMenuVisible ? (React.createElement(ContextualMenu, { items: this.props.menuItems, shouldFocusOnMount: true, target: this.itemElement.current, onDismiss: this._onCloseContextualMenu, directionalHint: DirectionalHint.bottomLeftEdge })) : null));\n };\n return SelectedItemWithContextMenu;\n}(React.Component));\nexport { SelectedItemWithContextMenu };\n//# sourceMappingURL=SelectedItemWithContextMenu.js.map","import { getGlobalClassNames, getTheme } from '@uifabric/styling';\nvar GlobalClassNames = {\n root: 'ms-EditingItem',\n input: 'ms-EditingItem-input',\n};\nexport var getStyles = function (prop) {\n var theme = getTheme();\n if (!theme) {\n throw new Error('theme is undefined or null in Editing item getStyles function.');\n }\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n margin: '4px',\n },\n ],\n input: [\n classNames.input,\n {\n border: '0px',\n outline: 'none',\n width: '100%',\n backgroundColor: semanticColors.inputBackground,\n color: semanticColors.inputText,\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n ],\n };\n};\n//# sourceMappingURL=EditingItem.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, getId, getNativeProps, inputProperties, classNamesFunction, initializeComponentRef, } from '../../../../Utilities';\nimport { getStyles } from './EditingItem.styles';\nvar EditingItem = /** @class */ (function (_super) {\n __extends(EditingItem, _super);\n function EditingItem(props) {\n var _this = _super.call(this, props) || this;\n _this._editingFloatingPicker = React.createRef();\n _this._renderEditingSuggestions = function () {\n var FloatingPicker = _this.props.onRenderFloatingPicker;\n var floatingPickerProps = _this.props.floatingPickerProps;\n if (!FloatingPicker || !floatingPickerProps) {\n return React.createElement(React.Fragment, null);\n }\n return (React.createElement(FloatingPicker, __assign({ componentRef: _this._editingFloatingPicker, onChange: _this._onSuggestionSelected, inputElement: _this._editingInput, selectedItems: [] }, floatingPickerProps)));\n };\n _this._resolveInputRef = function (ref) {\n _this._editingInput = ref;\n _this.forceUpdate(function () {\n _this._editingInput.focus();\n });\n };\n _this._onInputClick = function () {\n _this._editingFloatingPicker.current && _this._editingFloatingPicker.current.showPicker(true /*updatevalue*/);\n };\n _this._onInputBlur = function (ev) {\n if (_this._editingFloatingPicker.current && ev.relatedTarget !== null) {\n var target = ev.relatedTarget;\n if (target.className.indexOf('ms-Suggestions-itemButton') === -1 &&\n target.className.indexOf('ms-Suggestions-sectionButton') === -1) {\n _this._editingFloatingPicker.current.forceResolveSuggestion();\n }\n }\n };\n _this._onInputChange = function (ev) {\n var value = ev.target.value;\n if (value === '') {\n if (_this.props.onRemoveItem) {\n _this.props.onRemoveItem();\n }\n }\n else {\n _this._editingFloatingPicker.current && _this._editingFloatingPicker.current.onQueryStringChanged(value);\n }\n };\n _this._onSuggestionSelected = function (item) {\n _this.props.onEditingComplete(_this.props.item, item);\n };\n initializeComponentRef(_this);\n // eslint-disable-next-line react/no-unused-state\n _this.state = { contextualMenuVisible: false };\n return _this;\n }\n EditingItem.prototype.componentDidMount = function () {\n var getEditingItemText = this.props.getEditingItemText;\n var itemText = getEditingItemText(this.props.item);\n this._editingFloatingPicker.current && this._editingFloatingPicker.current.onQueryStringChanged(itemText);\n this._editingInput.value = itemText;\n this._editingInput.focus();\n };\n EditingItem.prototype.render = function () {\n var itemId = getId();\n var nativeProps = getNativeProps(this.props, inputProperties);\n var getClassNames = classNamesFunction();\n var classNames = getClassNames(getStyles);\n return (React.createElement(\"div\", { \"aria-labelledby\": 'editingItemPersona-' + itemId, className: classNames.root },\n React.createElement(\"input\", __assign({ autoCapitalize: 'off', autoComplete: 'off' }, nativeProps, { ref: this._resolveInputRef, onChange: this._onInputChange, onKeyDown: this._onInputKeyDown, onBlur: this._onInputBlur, onClick: this._onInputClick, \"data-lpignore\": true, className: classNames.input, id: itemId })),\n this._renderEditingSuggestions()));\n };\n EditingItem.prototype._onInputKeyDown = function (ev) {\n if (ev.which === KeyCodes.backspace || ev.which === KeyCodes.del) {\n ev.stopPropagation();\n }\n };\n return EditingItem;\n}(React.Component));\nexport { EditingItem };\n//# sourceMappingURL=EditingItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseSelectedItemsList } from '../BaseSelectedItemsList';\nimport { ExtendedSelectedItem } from './Items/ExtendedSelectedItem';\nimport { SelectedItemWithContextMenu } from './Items/SelectedItemWithContextMenu';\nimport { EditingItem } from './Items/EditingItem';\n/**\n * {@docCategory SelectedPeopleList}\n */\nvar BasePeopleSelectedItemsList = /** @class */ (function (_super) {\n __extends(BasePeopleSelectedItemsList, _super);\n function BasePeopleSelectedItemsList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BasePeopleSelectedItemsList;\n}(BaseSelectedItemsList));\nexport { BasePeopleSelectedItemsList };\n/**\n * Standard People Picker.\n */\nvar SelectedPeopleList = /** @class */ (function (_super) {\n __extends(SelectedPeopleList, _super);\n function SelectedPeopleList() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderItems = function () {\n var items = _this.state.items;\n return items.map(function (item, index) { return _this._renderItem(item, index); });\n };\n _this._beginEditing = function (item) {\n item.isEditing = true;\n _this.forceUpdate();\n };\n _this._completeEditing = function (oldItem, newItem) {\n oldItem.isEditing = false;\n _this.replaceItem(oldItem, newItem);\n };\n return _this;\n }\n SelectedPeopleList.prototype._renderItem = function (item, index) {\n var _this = this;\n var removeButtonAriaLabel = this.props.removeButtonAriaLabel;\n var expandGroup = this.props.onExpandGroup;\n var props = {\n item: item,\n index: index,\n key: item.key ? item.key : index,\n selected: this.selection.isIndexSelected(index),\n onRemoveItem: function () { return _this.removeItem(item); },\n onItemChange: this.onItemChange,\n removeButtonAriaLabel: removeButtonAriaLabel,\n onCopyItem: function (itemToCopy) { return _this.copyItems([itemToCopy]); },\n onExpandItem: expandGroup ? function () { return expandGroup(item); } : undefined,\n menuItems: this._createMenuItems(item),\n };\n var hasContextMenu = props.menuItems.length > 0;\n if (item.isEditing && hasContextMenu) {\n return (React.createElement(EditingItem, __assign({}, props, { onRenderFloatingPicker: this.props.onRenderFloatingPicker, floatingPickerProps: this.props.floatingPickerProps, onEditingComplete: this._completeEditing, getEditingItemText: this.props.getEditingItemText })));\n }\n else {\n // This cast is here because we are guaranteed that onRenderItem is set\n // from static defaultProps\n // TODO: Move this component to composition with required onRenderItem to remove\n // this cast.\n var onRenderItem = this.props.onRenderItem;\n var renderedItem = onRenderItem(props);\n return hasContextMenu ? (React.createElement(SelectedItemWithContextMenu, { key: props.key, renderedItem: renderedItem, beginEditing: this._beginEditing, menuItems: this._createMenuItems(props.item), item: props.item })) : (renderedItem);\n }\n };\n SelectedPeopleList.prototype._createMenuItems = function (item) {\n var _this = this;\n var menuItems = [];\n if (this.props.editMenuItemText && this.props.getEditingItemText) {\n menuItems.push({\n key: 'Edit',\n text: this.props.editMenuItemText,\n onClick: function (ev, menuItem) {\n _this._beginEditing(menuItem.data);\n },\n data: item,\n });\n }\n if (this.props.removeMenuItemText) {\n menuItems.push({\n key: 'Remove',\n text: this.props.removeMenuItemText,\n onClick: function (ev, menuItem) {\n _this.removeItem(menuItem.data);\n },\n data: item,\n });\n }\n if (this.props.copyMenuItemText) {\n menuItems.push({\n key: 'Copy',\n text: this.props.copyMenuItemText,\n onClick: function (ev, menuItem) {\n if (_this.props.onCopyItems) {\n _this.copyItems([menuItem.data]);\n }\n },\n data: item,\n });\n }\n return menuItems;\n };\n SelectedPeopleList.defaultProps = {\n onRenderItem: function (props) { return React.createElement(ExtendedSelectedItem, __assign({}, props)); },\n };\n return SelectedPeopleList;\n}(BasePeopleSelectedItemsList));\nexport { SelectedPeopleList };\n//# sourceMappingURL=SelectedPeopleList.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var SeparatorBase = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className, vertical = props.vertical, alignContent = props.alignContent;\n var _classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n alignContent: alignContent,\n vertical: vertical,\n });\n return (React.createElement(\"div\", { className: _classNames.root },\n React.createElement(\"div\", { className: _classNames.content, role: \"separator\", \"aria-orientation\": vertical ? 'vertical' : 'horizontal' }, props.children)));\n};\n//# sourceMappingURL=Separator.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Separator.styles';\nimport { SeparatorBase } from './Separator.base';\nexport var Separator = styled(SeparatorBase, getStyles, undefined, {\n scope: 'Separator',\n});\nSeparator.displayName = 'Separator';\n//# sourceMappingURL=Separator.js.map","import { HighContrastSelector } from '@uifabric/styling';\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, alignContent = props.alignContent, vertical = props.vertical, className = props.className;\n var alignStart = alignContent === 'start';\n var alignCenter = alignContent === 'center';\n var alignEnd = alignContent === 'end';\n return {\n root: [\n theme.fonts.medium,\n {\n position: 'relative',\n },\n alignContent && {\n textAlign: alignContent,\n },\n !alignContent && {\n textAlign: 'center',\n },\n vertical &&\n (alignCenter || !alignContent) && {\n verticalAlign: 'middle',\n },\n vertical &&\n alignStart && {\n verticalAlign: 'top',\n },\n vertical &&\n alignEnd && {\n verticalAlign: 'bottom',\n },\n vertical && {\n padding: '0 4px',\n height: 'inherit',\n display: 'table-cell',\n zIndex: 1,\n selectors: {\n ':after': (_a = {\n backgroundColor: theme.palette.neutralLighter,\n width: '1px',\n content: '\"\"',\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '50%',\n right: '0',\n zIndex: -1\n },\n _a[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _a),\n },\n },\n !vertical && {\n padding: '4px 0',\n selectors: {\n ':before': (_b = {\n backgroundColor: theme.palette.neutralLighter,\n height: '1px',\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n top: '50%',\n bottom: '0',\n left: '0',\n right: '0'\n },\n _b[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _b),\n },\n },\n className,\n ],\n content: [\n {\n position: 'relative',\n display: 'inline-block',\n padding: '0 12px',\n color: theme.semanticColors.bodyText,\n background: theme.semanticColors.bodyBackground,\n },\n vertical && {\n padding: '12px 0',\n },\n ],\n };\n};\n//# sourceMappingURL=Separator.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties, Async, initializeComponentRef, } from '../../Utilities';\nimport { ShimmerElementsGroup } from './ShimmerElementsGroup/ShimmerElementsGroup';\nvar TRANSITION_ANIMATION_INTERVAL = 200; /* ms */\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nvar ShimmerBase = /** @class */ (function (_super) {\n __extends(ShimmerBase, _super);\n function ShimmerBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n _this.state = {\n contentLoaded: props.isDataLoaded,\n };\n _this._async = new Async(_this);\n return _this;\n }\n ShimmerBase.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var isDataLoaded = this.props.isDataLoaded;\n if (isDataLoaded !== prevProps.isDataLoaded) {\n this._async.clearTimeout(this._lastTimeoutId);\n // Removing the shimmerWrapper div from the DOM only after the fade out animation completed.\n if (isDataLoaded) {\n this._lastTimeoutId = this._async.setTimeout(function () {\n _this.setState({\n contentLoaded: isDataLoaded,\n });\n }, TRANSITION_ANIMATION_INTERVAL);\n }\n else {\n this.setState({\n contentLoaded: isDataLoaded,\n });\n }\n }\n };\n ShimmerBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n ShimmerBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, shimmerElements = _a.shimmerElements, children = _a.children, isDataLoaded = _a.isDataLoaded, width = _a.width, className = _a.className, customElementsGroup = _a.customElementsGroup, theme = _a.theme, ariaLabel = _a.ariaLabel, shimmerColors = _a.shimmerColors;\n var contentLoaded = this.state.contentLoaded;\n this._classNames = getClassNames(styles, {\n theme: theme,\n isDataLoaded: isDataLoaded,\n className: className,\n transitionAnimationInterval: TRANSITION_ANIMATION_INTERVAL,\n shimmerColor: shimmerColors && shimmerColors.shimmer,\n shimmerWaveColor: shimmerColors && shimmerColors.shimmerWave,\n });\n var divProps = getNativeProps(this.props, divProperties);\n return (React.createElement(\"div\", __assign({}, divProps, { className: this._classNames.root }),\n !contentLoaded && (React.createElement(\"div\", { style: { width: width ? width : '100%' }, className: this._classNames.shimmerWrapper },\n React.createElement(\"div\", { className: this._classNames.shimmerGradient }),\n customElementsGroup ? (customElementsGroup) : (React.createElement(ShimmerElementsGroup, { shimmerElements: shimmerElements, backgroundColor: shimmerColors && shimmerColors.background })))),\n children && React.createElement(\"div\", { className: this._classNames.dataWrapper }, children),\n ariaLabel && !isDataLoaded && (React.createElement(\"div\", { role: \"status\", \"aria-live\": \"polite\" },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: this._classNames.screenReaderText }, ariaLabel))))));\n };\n ShimmerBase.defaultProps = {\n isDataLoaded: false,\n };\n return ShimmerBase;\n}(React.Component));\nexport { ShimmerBase };\n//# sourceMappingURL=Shimmer.base.js.map","import { __assign } from \"tslib\";\nimport { keyframes, getGlobalClassNames, hiddenContentStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Shimmer-container',\n shimmerWrapper: 'ms-Shimmer-shimmerWrapper',\n shimmerGradient: 'ms-Shimmer-shimmerGradient',\n dataWrapper: 'ms-Shimmer-dataWrapper',\n};\nvar BACKGROUND_OFF_SCREEN_POSITION = '100%';\nvar shimmerAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: \"translateX(-\" + BACKGROUND_OFF_SCREEN_POSITION + \")\",\n },\n '100%': {\n transform: \"translateX(\" + BACKGROUND_OFF_SCREEN_POSITION + \")\",\n },\n });\n});\nvar shimmerAnimationRTL = memoizeFunction(function () {\n return keyframes({\n '100%': {\n transform: \"translateX(-\" + BACKGROUND_OFF_SCREEN_POSITION + \")\",\n },\n '0%': {\n transform: \"translateX(\" + BACKGROUND_OFF_SCREEN_POSITION + \")\",\n },\n });\n});\nexport function getStyles(props) {\n var _a;\n var isDataLoaded = props.isDataLoaded, className = props.className, theme = props.theme, transitionAnimationInterval = props.transitionAnimationInterval, shimmerColor = props.shimmerColor, shimmerWaveColor = props.shimmerWaveColor;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isRTL = getRTL(theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'relative',\n height: 'auto',\n },\n className,\n ],\n shimmerWrapper: [\n classNames.shimmerWrapper,\n {\n position: 'relative',\n overflow: 'hidden',\n transform: 'translateZ(0)',\n backgroundColor: shimmerColor || semanticColors.disabledBackground,\n transition: \"opacity \" + transitionAnimationInterval + \"ms\",\n selectors: (_a = {\n '> *': {\n transform: 'translateZ(0)',\n }\n },\n _a[HighContrastSelector] = __assign({ background: \"WindowText\\n linear-gradient(\\n to right,\\n transparent 0%,\\n Window 50%,\\n transparent 100%)\\n 0 0 / 90% 100%\\n no-repeat\" }, getHighContrastNoAdjustStyle()),\n _a),\n },\n isDataLoaded && {\n opacity: '0',\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n },\n ],\n shimmerGradient: [\n classNames.shimmerGradient,\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n background: (shimmerColor || semanticColors.disabledBackground) + \"\\n linear-gradient(\\n to right,\\n \" + (shimmerColor || semanticColors.disabledBackground) + \" 0%,\\n \" + (shimmerWaveColor || semanticColors.bodyDivider) + \" 50%,\\n \" + (shimmerColor || semanticColors.disabledBackground) + \" 100%)\\n 0 0 / 90% 100%\\n no-repeat\",\n transform: \"translateX(-\" + BACKGROUND_OFF_SCREEN_POSITION + \")\",\n animationDuration: '2s',\n animationTimingFunction: 'ease-in-out',\n animationDirection: 'normal',\n animationIterationCount: 'infinite',\n animationName: isRTL ? shimmerAnimationRTL() : shimmerAnimation(),\n },\n ],\n dataWrapper: [\n classNames.dataWrapper,\n {\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n opacity: '0',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n transition: \"opacity \" + transitionAnimationInterval + \"ms\",\n },\n isDataLoaded && {\n opacity: '1',\n position: 'static',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n}\n//# sourceMappingURL=Shimmer.styles.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Shimmer.styles';\nimport { ShimmerBase } from './Shimmer.base';\nexport var Shimmer = styled(ShimmerBase, getStyles, undefined, {\n scope: 'Shimmer',\n});\n//# sourceMappingURL=Shimmer.js.map","/**\n * Describes the possible types for shimmer elements used.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementType;\n(function (ShimmerElementType) {\n /**\n * Line element type\n */\n ShimmerElementType[ShimmerElementType[\"line\"] = 1] = \"line\";\n /**\n * Circle element type\n */\n ShimmerElementType[ShimmerElementType[\"circle\"] = 2] = \"circle\";\n /**\n * Gap element type\n */\n ShimmerElementType[ShimmerElementType[\"gap\"] = 3] = \"gap\";\n})(ShimmerElementType || (ShimmerElementType = {}));\n/**\n * Describes the default heights for shimmer elements when omitted in implementation.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsDefaultHeights;\n(function (ShimmerElementsDefaultHeights) {\n /**\n * Default height of the line element when not provided by user: 16px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"line\"] = 16] = \"line\";\n /**\n * Default height of the gap element when not provided by user: 16px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"gap\"] = 16] = \"gap\";\n /**\n * Default height of the circle element when not provided by user: 24px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"circle\"] = 24] = \"circle\";\n})(ShimmerElementsDefaultHeights || (ShimmerElementsDefaultHeights = {}));\n//# sourceMappingURL=Shimmer.types.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var ShimmerCircleBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"svg\", { viewBox: \"0 0 10 10\", width: height, height: height, className: classNames.svg },\n React.createElement(\"path\", { d: \"M0,0 L10,0 L10,10 L0,10 L0,0 Z M0,5 C0,7.76142375 2.23857625,10 5,10 C7.76142375,10 10,7.76142375 10,5 C10,2.23857625 7.76142375,2.22044605e-16 5,0 C2.23857625,-2.22044605e-16 0,2.23857625 0,5 L0,5 Z\" }))));\n};\n//# sourceMappingURL=ShimmerCircle.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerCircle-root',\n svg: 'ms-ShimmerCircle-svg',\n};\nexport function getStyles(props) {\n var _a, _b;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n width: height + \"px\",\n height: height + \"px\",\n minWidth: height + \"px\",\n boxSizing: 'content-box',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n borderStyles,\n ],\n svg: [\n globalClassNames.svg,\n {\n display: 'block',\n fill: semanticColors.bodyBackground,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n fill: 'Window',\n },\n _b),\n },\n ],\n };\n}\n//# sourceMappingURL=ShimmerCircle.styles.js.map","import { styled } from '../../../Utilities';\nimport { getStyles } from './ShimmerCircle.styles';\nimport { ShimmerCircleBase } from './ShimmerCircle.base';\nexport var ShimmerCircle = styled(ShimmerCircleBase, getStyles, undefined, { scope: 'ShimmerCircle' });\n//# sourceMappingURL=ShimmerCircle.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, memoizeFunction } from '../../../Utilities';\nimport { ShimmerElementType, ShimmerElementsDefaultHeights } from '../Shimmer.types';\nimport { ShimmerLine } from '../ShimmerLine/ShimmerLine';\nimport { ShimmerGap } from '../ShimmerGap/ShimmerGap';\nimport { ShimmerCircle } from '../ShimmerCircle/ShimmerCircle';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsGroupBase = function (props) {\n var styles = props.styles, _a = props.width, width = _a === void 0 ? 'auto' : _a, shimmerElements = props.shimmerElements, _b = props.rowHeight, rowHeight = _b === void 0 ? findMaxElementHeight(shimmerElements || []) : _b, _c = props.flexWrap, flexWrap = _c === void 0 ? false : _c, theme = props.theme, backgroundColor = props.backgroundColor;\n var classNames = getClassNames(styles, {\n theme: theme,\n flexWrap: flexWrap,\n });\n return (React.createElement(\"div\", { style: { width: width }, className: classNames.root }, getRenderedElements(shimmerElements, backgroundColor, rowHeight)));\n};\nfunction getRenderedElements(shimmerElements, backgroundColor, rowHeight) {\n var renderedElements = shimmerElements ? (shimmerElements.map(\n // false positive\n // eslint-disable-next-line array-callback-return\n function (element, index) {\n var type = element.type, filteredElem = __rest(element, [\"type\"]);\n var verticalAlign = filteredElem.verticalAlign, height = filteredElem.height;\n var styles = getElementStyles(verticalAlign, type, height, backgroundColor, rowHeight);\n switch (element.type) {\n case ShimmerElementType.circle:\n return React.createElement(ShimmerCircle, __assign({ key: index }, filteredElem, { styles: styles }));\n case ShimmerElementType.gap:\n return React.createElement(ShimmerGap, __assign({ key: index }, filteredElem, { styles: styles }));\n case ShimmerElementType.line:\n return React.createElement(ShimmerLine, __assign({ key: index }, filteredElem, { styles: styles }));\n }\n })) : (React.createElement(ShimmerLine, { height: ShimmerElementsDefaultHeights.line }));\n return renderedElements;\n}\nvar getElementStyles = memoizeFunction(function (verticalAlign, elementType, elementHeight, backgroundColor, rowHeight) {\n var dif = rowHeight && elementHeight ? rowHeight - elementHeight : 0;\n var borderStyle;\n if (!verticalAlign || verticalAlign === 'center') {\n borderStyle = {\n borderBottomWidth: (dif ? Math.floor(dif / 2) : 0) + \"px\",\n borderTopWidth: (dif ? Math.ceil(dif / 2) : 0) + \"px\",\n };\n }\n else if (verticalAlign && verticalAlign === 'top') {\n borderStyle = {\n borderBottomWidth: dif + \"px\",\n borderTopWidth: \"0px\",\n };\n }\n else if (verticalAlign && verticalAlign === 'bottom') {\n borderStyle = {\n borderBottomWidth: \"0px\",\n borderTopWidth: dif + \"px\",\n };\n }\n if (backgroundColor) {\n switch (elementType) {\n case ShimmerElementType.circle:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n svg: { fill: backgroundColor },\n };\n case ShimmerElementType.gap:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor, backgroundColor: backgroundColor }),\n };\n case ShimmerElementType.line:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n topLeftCorner: { fill: backgroundColor },\n topRightCorner: { fill: backgroundColor },\n bottomLeftCorner: { fill: backgroundColor },\n bottomRightCorner: { fill: backgroundColor },\n };\n }\n }\n return {\n root: borderStyle,\n };\n});\n/**\n * User should not worry to provide which of the elements is the highest so we do the calculation for him.\n * Plus if user forgot to specify the height we assign their defaults.\n */\nfunction findMaxElementHeight(shimmerElements) {\n var shimmerElementsDefaulted = shimmerElements.map(function (element) {\n switch (element.type) {\n case ShimmerElementType.circle:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.circle;\n }\n break;\n case ShimmerElementType.line:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.line;\n }\n break;\n case ShimmerElementType.gap:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.gap;\n }\n break;\n }\n return element;\n });\n var rowHeight = shimmerElementsDefaulted.reduce(function (acc, next) {\n return next.height ? (next.height > acc ? next.height : acc) : acc;\n }, 0);\n return rowHeight;\n}\n//# sourceMappingURL=ShimmerElementsGroup.base.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerElementsGroup-root',\n};\nexport function getStyles(props) {\n var flexWrap = props.flexWrap, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: 'center',\n flexWrap: flexWrap ? 'wrap' : 'nowrap',\n position: 'relative',\n },\n ],\n };\n}\n//# sourceMappingURL=ShimmerElementsGroup.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerElementsGroupBase } from './ShimmerElementsGroup.base';\nimport { getStyles } from './ShimmerElementsGroup.styles';\nexport var ShimmerElementsGroup = styled(ShimmerElementsGroupBase, getStyles, undefined, { scope: 'ShimmerElementsGroup' });\n//# sourceMappingURL=ShimmerElementsGroup.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerGapBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '10px' : _a, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? width + \"px\" : 'auto' }, className: classNames.root }));\n};\n//# sourceMappingURL=ShimmerGap.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerGap-root',\n};\nexport function getStyles(props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n backgroundColor: semanticColors.bodyBackground,\n height: height + \"px\",\n boxSizing: 'content-box',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Window',\n borderColor: 'Window',\n },\n _a),\n },\n borderStyles,\n ],\n };\n}\n//# sourceMappingURL=ShimmerGap.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerGapBase } from './ShimmerGap.base';\nimport { getStyles } from './ShimmerGap.styles';\nexport var ShimmerGap = styled(ShimmerGapBase, getStyles, undefined, {\n scope: 'ShimmerGap',\n});\n//# sourceMappingURL=ShimmerGap.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerLineBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '100%' : _a, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? width + \"px\" : 'auto' }, className: classNames.root },\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topLeftCorner },\n React.createElement(\"path\", { d: \"M0 2 A 2 2, 0, 0, 1, 2 0 L 0 0 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topRightCorner },\n React.createElement(\"path\", { d: \"M0 0 A 2 2, 0, 0, 1, 2 2 L 2 0 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomRightCorner },\n React.createElement(\"path\", { d: \"M2 0 A 2 2, 0, 0, 1, 0 2 L 2 2 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomLeftCorner },\n React.createElement(\"path\", { d: \"M2 2 A 2 2, 0, 0, 1, 0 0 L 0 2 Z\" }))));\n};\n//# sourceMappingURL=ShimmerLine.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerLine-root',\n topLeftCorner: 'ms-ShimmerLine-topLeftCorner',\n topRightCorner: 'ms-ShimmerLine-topRightCorner',\n bottomLeftCorner: 'ms-ShimmerLine-bottomLeftCorner',\n bottomRightCorner: 'ms-ShimmerLine-bottomRightCorner',\n};\nexport function getStyles(props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n var sharedCornerStyles = {\n position: 'absolute',\n fill: semanticColors.bodyBackground,\n };\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n height: height + \"px\",\n boxSizing: 'content-box',\n position: 'relative',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n borderWidth: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n selectors: {\n '> *': {\n fill: 'Window',\n },\n },\n },\n _a),\n },\n borderStyles,\n ],\n topLeftCorner: [\n globalClassNames.topLeftCorner,\n {\n top: '0',\n left: '0',\n },\n sharedCornerStyles,\n ],\n topRightCorner: [\n globalClassNames.topRightCorner,\n {\n top: '0',\n right: '0',\n },\n sharedCornerStyles,\n ],\n bottomRightCorner: [\n globalClassNames.bottomRightCorner,\n {\n bottom: '0',\n right: '0',\n },\n sharedCornerStyles,\n ],\n bottomLeftCorner: [\n globalClassNames.bottomLeftCorner,\n {\n bottom: '0',\n left: '0',\n },\n sharedCornerStyles,\n ],\n };\n}\n//# sourceMappingURL=ShimmerLine.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerLineBase } from './ShimmerLine.base';\nimport { getStyles } from './ShimmerLine.styles';\nexport var ShimmerLine = styled(ShimmerLineBase, getStyles, undefined, {\n scope: 'ShimmerLine',\n});\n//# sourceMappingURL=ShimmerLine.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, getId, getRTL, getRTLSafeKeyCode, warnMutuallyExclusive, initializeComponentRef, Async, on, FocusRects, } from '../../Utilities';\nimport { classNamesFunction, getNativeProps, divProperties } from '../../Utilities';\nimport { Label } from '../../Label';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SliderBase';\nexport var ONKEYDOWN_TIMEOUT_DURATION = 1000;\nvar SliderBase = /** @class */ (function (_super) {\n __extends(SliderBase, _super);\n function SliderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._sliderLine = React.createRef();\n _this._thumb = React.createRef();\n _this._lowerValueThumb = React.createRef();\n _this._onKeyDownTimer = -1;\n _this._isAdjustingLowerValue = false;\n _this._getAriaValueText = function (value) {\n var ariaValueText = _this.props.ariaValueText;\n if (value !== undefined) {\n return ariaValueText ? ariaValueText(value) : value.toString();\n }\n return undefined;\n };\n _this._calculateCurrentSteps = function (event) {\n if (!_this._sliderLine.current) {\n return;\n }\n var _a = _this.props, max = _a.max, min = _a.min, step = _a.step;\n var steps = (max - min) / step;\n var sliderPositionRect = _this._sliderLine.current.getBoundingClientRect();\n var sliderLength = !_this.props.vertical ? sliderPositionRect.width : sliderPositionRect.height;\n var stepLength = sliderLength / steps;\n var currentSteps;\n var distance;\n if (!_this.props.vertical) {\n var left = _this._getPosition(event, _this.props.vertical);\n distance = getRTL(_this.props.theme) ? sliderPositionRect.right - left : left - sliderPositionRect.left;\n currentSteps = distance / stepLength;\n }\n else {\n var bottom = _this._getPosition(event, _this.props.vertical);\n distance = sliderPositionRect.bottom - bottom;\n currentSteps = distance / stepLength;\n }\n return currentSteps;\n };\n _this._onMouseDownOrTouchStart = function (event) {\n var _a = _this.props, ranged = _a.ranged, min = _a.min, step = _a.step;\n if (ranged) {\n var currentSteps = _this._calculateCurrentSteps(event);\n var newRenderedValue = min + step * currentSteps;\n if (newRenderedValue <= _this.state.lowerValue ||\n newRenderedValue - _this.state.lowerValue <= _this.state.value - newRenderedValue) {\n _this._isAdjustingLowerValue = true;\n }\n else {\n _this._isAdjustingLowerValue = false;\n }\n }\n if (event.type === 'mousedown') {\n _this._disposables.push(on(window, 'mousemove', _this._onMouseMoveOrTouchMove, true), on(window, 'mouseup', _this._onMouseUpOrTouchEnd, true));\n }\n else if (event.type === 'touchstart') {\n _this._disposables.push(on(window, 'touchmove', _this._onMouseMoveOrTouchMove, true), on(window, 'touchend', _this._onMouseUpOrTouchEnd, true));\n }\n _this._onMouseMoveOrTouchMove(event, true);\n };\n _this._onMouseMoveOrTouchMove = function (event, suppressEventCancelation) {\n if (!_this._sliderLine.current) {\n return;\n }\n var _a = _this.props, max = _a.max, min = _a.min, step = _a.step;\n var steps = (max - min) / step;\n var currentSteps = _this._calculateCurrentSteps(event);\n var currentValue;\n var renderedValue;\n // The value shouldn't be bigger than max or be smaller than min.\n if (currentSteps > Math.floor(steps)) {\n renderedValue = currentValue = max;\n }\n else if (currentSteps < 0) {\n renderedValue = currentValue = min;\n }\n else {\n renderedValue = min + step * currentSteps;\n currentValue = min + step * Math.round(currentSteps);\n }\n _this._updateValue(currentValue, renderedValue);\n if (!suppressEventCancelation) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n _this._onMouseUpOrTouchEnd = function (event) {\n // Disable renderedValue override.\n _this.setState({\n renderedValue: undefined,\n renderedLowerValue: undefined,\n });\n if (_this.props.onChanged) {\n _this.props.onChanged(event, _this.state.value);\n }\n _this._disposeListeners();\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n _this._onKeyDown = function (event) {\n var value;\n if (_this._isAdjustingLowerValue) {\n value = _this.props.lowerValue || _this.state.lowerValue;\n }\n else {\n value = _this.props.value || _this.state.value;\n }\n var _a = _this.props, max = _a.max, min = _a.min, step = _a.step;\n var diff = 0;\n // eslint-disable-next-line deprecation/deprecation\n switch (event.which) {\n case getRTLSafeKeyCode(KeyCodes.left, _this.props.theme):\n case KeyCodes.down:\n diff = -step;\n _this._clearOnKeyDownTimer();\n _this._setOnKeyDownTimer(event);\n break;\n case getRTLSafeKeyCode(KeyCodes.right, _this.props.theme):\n case KeyCodes.up:\n diff = step;\n _this._clearOnKeyDownTimer();\n _this._setOnKeyDownTimer(event);\n break;\n case KeyCodes.home:\n value = min;\n _this._clearOnKeyDownTimer();\n _this._setOnKeyDownTimer(event);\n break;\n case KeyCodes.end:\n value = max;\n _this._clearOnKeyDownTimer();\n _this._setOnKeyDownTimer(event);\n break;\n default:\n return;\n }\n var newValue = Math.min(max, Math.max(min, value + diff));\n _this._updateValue(newValue, newValue);\n event.preventDefault();\n event.stopPropagation();\n // Disable renderedValue override.\n _this.setState({\n renderedValue: undefined,\n renderedLowerValue: undefined,\n });\n };\n _this._onThumbFocus = function (event) {\n _this._isAdjustingLowerValue = event.target === _this._lowerValueThumb.current;\n };\n _this._clearOnKeyDownTimer = function () {\n _this._async.clearTimeout(_this._onKeyDownTimer);\n };\n _this._setOnKeyDownTimer = function (event) {\n _this._onKeyDownTimer = _this._async.setTimeout(function () {\n if (_this.props.onChanged) {\n _this.props.onChanged(event, _this.state.value);\n }\n }, ONKEYDOWN_TIMEOUT_DURATION);\n };\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n warnMutuallyExclusive(COMPONENT_NAME, _this.props, {\n value: 'defaultValue',\n });\n if (props.ranged) {\n warnMutuallyExclusive(COMPONENT_NAME, _this.props, {\n lowerValue: 'defaultLowerValue',\n });\n }\n _this._id = getId('Slider');\n var value = props.value !== undefined ? props.value : props.defaultValue !== undefined ? props.defaultValue : props.min;\n var lowerValue = props.lowerValue !== undefined\n ? props.lowerValue\n : props.defaultLowerValue !== undefined\n ? props.defaultLowerValue\n : props.min;\n _this.state = {\n value: value,\n lowerValue: lowerValue,\n renderedValue: undefined,\n renderedLowerValue: undefined,\n };\n return _this;\n }\n SliderBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._disposeListeners();\n };\n SliderBase.prototype.render = function () {\n var _a, _b, _c;\n var _d = this.props, ariaLabel = _d.ariaLabel, className = _d.className, disabled = _d.disabled, label = _d.label, max = _d.max, min = _d.min, showValue = _d.showValue, buttonProps = _d.buttonProps, vertical = _d.vertical, styles = _d.styles, theme = _d.theme, originFromZero = _d.originFromZero, ranged = _d.ranged;\n var value = this.value;\n var renderedValue = this.renderedValue;\n var renderedLowerValue = this.renderedLowerValue;\n var thumbOffsetPercent = this._getPercent(renderedValue);\n var lowerThumbOffsetPercent = this._getPercent(renderedLowerValue);\n var originValue = originFromZero ? 0 : min;\n var originPercent = this._getPercent(originValue);\n var activeSectionWidth = ranged\n ? thumbOffsetPercent - lowerThumbOffsetPercent\n : Math.abs(originPercent - thumbOffsetPercent);\n var topSectionWidth = Math.min(100 - thumbOffsetPercent, 100 - originPercent);\n var bottomSectionWidth = ranged ? lowerThumbOffsetPercent : Math.min(thumbOffsetPercent, originPercent);\n var lengthString = vertical ? 'height' : 'width';\n var onMouseDownProp = disabled ? {} : { onMouseDown: this._onMouseDownOrTouchStart };\n var onTouchStartProp = disabled ? {} : { onTouchStart: this._onMouseDownOrTouchStart };\n var onKeyDownProp = disabled ? {} : { onKeyDown: this._onKeyDown };\n var onFocusProp = disabled ? {} : { onFocus: this._onThumbFocus };\n var classNames = getClassNames(styles, {\n className: className,\n ranged: ranged,\n disabled: disabled,\n vertical: vertical,\n showTransitions: renderedValue === value || (ranged && renderedLowerValue === this.lowerValue),\n showValue: showValue,\n theme: theme,\n });\n var divButtonProps = buttonProps\n ? getNativeProps(buttonProps, divProperties)\n : undefined;\n var sliderProps = {\n 'aria-disabled': disabled,\n role: 'slider',\n tabIndex: disabled ? undefined : 0,\n 'data-is-focusable': !disabled,\n };\n var sliderBoxProps = __assign(__assign(__assign(__assign(__assign({ id: this._id, className: css(classNames.slideBox, buttonProps.className) }, onMouseDownProp), onTouchStartProp), onKeyDownProp), divButtonProps), (!ranged && __assign(__assign({}, sliderProps), { 'aria-valuemin': min, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-valuetext': this._getAriaValueText(value), 'aria-label': ariaLabel || label })));\n var thumbProps = ranged\n ? __assign(__assign(__assign({}, sliderProps), onFocusProp), { id: \"max-\" + this._id, 'aria-valuemin': this.lowerValue, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-valuetext': this._getAriaValueText(value), 'aria-label': \"max \" + (ariaLabel || label) }) : undefined;\n var lowerValueThumbProps = ranged\n ? __assign(__assign(__assign({}, sliderProps), onFocusProp), { id: \"min-\" + this._id, 'aria-valuemin': min, 'aria-valuemax': value, 'aria-valuenow': this.lowerValue, 'aria-valuetext': this._getAriaValueText(this.lowerValue), 'aria-label': \"min \" + (ariaLabel || label) }) : undefined;\n return (React.createElement(\"div\", { className: classNames.root },\n label && (React.createElement(Label, __assign({ className: classNames.titleLabel }, (ariaLabel ? {} : { htmlFor: this._id }), { disabled: disabled }), label)),\n React.createElement(\"div\", { className: classNames.container },\n ranged && showValue && (React.createElement(Label, { className: classNames.valueLabel, disabled: disabled }, this._getValueLabel(vertical ? this.value : this.lowerValue))),\n React.createElement(\"div\", __assign({}, sliderBoxProps),\n React.createElement(\"div\", { ref: this._sliderLine, className: classNames.line },\n originFromZero && (React.createElement(\"span\", { className: css(classNames.zeroTick), style: this._getStyleUsingOffsetPercent(vertical, originPercent) })),\n ranged && (React.createElement(\"span\", __assign({ ref: this._lowerValueThumb, className: classNames.thumb, style: this._getStyleUsingOffsetPercent(vertical, lowerThumbOffsetPercent) }, lowerValueThumbProps))),\n React.createElement(\"span\", __assign({ ref: this._thumb, className: classNames.thumb, style: this._getStyleUsingOffsetPercent(vertical, thumbOffsetPercent) }, thumbProps)),\n (ranged || originFromZero) && (React.createElement(\"span\", { className: css(classNames.lineContainer, classNames.inactiveSection), style: (_a = {}, _a[lengthString] = bottomSectionWidth + '%', _a) })),\n React.createElement(\"span\", { className: css(classNames.lineContainer, classNames.activeSection), style: (_b = {}, _b[lengthString] = activeSectionWidth + '%', _b) }),\n React.createElement(\"span\", { className: css(classNames.lineContainer, classNames.inactiveSection), style: (_c = {}, _c[lengthString] = topSectionWidth + '%', _c) }))),\n showValue && (React.createElement(Label, { className: classNames.valueLabel, disabled: disabled }, this._getValueLabel(ranged && vertical ? this.lowerValue : this.value)))),\n React.createElement(FocusRects, null)));\n };\n SliderBase.prototype.focus = function () {\n if (this._thumb.current) {\n this._thumb.current.focus();\n }\n };\n Object.defineProperty(SliderBase.prototype, \"range\", {\n get: function () {\n if (this.props.ranged) {\n return [this.lowerValue, this.value];\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SliderBase.prototype, \"value\", {\n get: function () {\n var _a = this.props.value, value = _a === void 0 ? this.state.value : _a;\n if (this.props.min === undefined || this.props.max === undefined || value === undefined) {\n return undefined;\n }\n else {\n return Math.max(this.props.min, Math.min(this.props.max, value));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SliderBase.prototype, \"renderedValue\", {\n get: function () {\n // renderedValue is expected to be defined while user is interacting with control, otherwise `undefined`.\n // Fall back to `value`.\n var _a = this.state.renderedValue, renderedValue = _a === void 0 ? this.value : _a;\n return renderedValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SliderBase.prototype, \"lowerValue\", {\n get: function () {\n var _a = this.props, _b = _a.lowerValue, lowerValue = _b === void 0 ? this.state.lowerValue : _b, ranged = _a.ranged;\n if (!ranged || this.props.min === undefined || this.props.max === undefined || lowerValue === undefined) {\n return undefined;\n }\n else {\n return Math.max(this.props.min, Math.min(this.props.max, lowerValue));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SliderBase.prototype, \"renderedLowerValue\", {\n get: function () {\n // renderedLowerValue is expected to be defined while user is interacting with control, otherwise `undefined`.\n // Fall back to `lowerValue`.\n var _a = this.state.renderedLowerValue, renderedLowerValue = _a === void 0 ? this.lowerValue : _a;\n return renderedLowerValue;\n },\n enumerable: true,\n configurable: true\n });\n SliderBase.prototype._getPercent = function (value) {\n var _a = this.props, min = _a.min, max = _a.max;\n return max === min ? 0 : ((value - min) / (max - min)) * 100;\n };\n SliderBase.prototype._getValueLabel = function (value) {\n var valueFormat = this.props.valueFormat;\n return valueFormat ? valueFormat(value) : value;\n };\n SliderBase.prototype._getStyleUsingOffsetPercent = function (vertical, thumbOffsetPercent) {\n var _a;\n var direction = vertical ? 'bottom' : getRTL(this.props.theme) ? 'right' : 'left';\n return _a = {},\n _a[direction] = thumbOffsetPercent + '%',\n _a;\n };\n SliderBase.prototype._getPosition = function (event, vertical) {\n var currentPosition;\n switch (event.type) {\n case 'mousedown':\n case 'mousemove':\n currentPosition = !vertical ? event.clientX : event.clientY;\n break;\n case 'touchstart':\n case 'touchmove':\n currentPosition = !vertical\n ? event.touches[0].clientX\n : event.touches[0].clientY;\n break;\n }\n return currentPosition;\n };\n SliderBase.prototype._setValueState = function (roundedValue, renderedValue) {\n var _a;\n var _this = this;\n var isAdjustingLowerValue = this._isAdjustingLowerValue;\n var valueChanged = roundedValue !== (isAdjustingLowerValue ? this.state.lowerValue : this.state.value);\n this.setState((_a = {},\n _a[isAdjustingLowerValue ? 'lowerValue' : 'value'] = roundedValue,\n _a[isAdjustingLowerValue ? 'renderedLowerValue' : 'renderedValue'] = renderedValue,\n _a), function () {\n var _a = _this.state, lowerValue = _a.lowerValue, value = _a.value;\n if (valueChanged && _this.props.onChange) {\n _this.props.onChange(isAdjustingLowerValue ? lowerValue : value, _this.props.ranged ? [lowerValue, value] : undefined);\n }\n });\n };\n SliderBase.prototype._updateValue = function (value, renderedValue) {\n var _a = this.props, step = _a.step, snapToStep = _a.snapToStep, ranged = _a.ranged, originFromZero = _a.originFromZero;\n var numDec = 0;\n if (isFinite(step)) {\n while (Math.round(step * Math.pow(10, numDec)) / Math.pow(10, numDec) !== step) {\n numDec++;\n }\n }\n // Make sure value has correct number of decimal places based on number of decimals in step\n var roundedValue = parseFloat(value.toFixed(numDec));\n if (snapToStep) {\n renderedValue = roundedValue;\n }\n var shouldAdjustLowerThumb = this._isAdjustingLowerValue && (originFromZero ? roundedValue <= 0 : roundedValue <= this.renderedValue);\n var shouldAdjustUpperThumb = !this._isAdjustingLowerValue && (originFromZero ? roundedValue >= 0 : roundedValue >= this.renderedLowerValue);\n if (!ranged || shouldAdjustLowerThumb || shouldAdjustUpperThumb) {\n this._setValueState(roundedValue, renderedValue);\n }\n };\n SliderBase.defaultProps = {\n step: 1,\n min: 0,\n max: 10,\n showValue: true,\n disabled: false,\n vertical: false,\n buttonProps: {},\n originFromZero: false,\n };\n return SliderBase;\n}(React.Component));\nexport { SliderBase };\n//# sourceMappingURL=Slider.base.js.map","import { __spreadArrays } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, AnimationVariables, getFocusStyle } from '../../Styling';\nimport { getRTL } from '@uifabric/utilities';\nvar GlobalClassNames = {\n root: 'ms-Slider',\n enabled: 'ms-Slider-enabled',\n disabled: 'ms-Slider-disabled',\n row: 'ms-Slider-row',\n column: 'ms-Slider-column',\n container: 'ms-Slider-container',\n slideBox: 'ms-Slider-slideBox',\n line: 'ms-Slider-line',\n thumb: 'ms-Slider-thumb',\n activeSection: 'ms-Slider-active',\n inactiveSection: 'ms-Slider-inactive',\n valueLabel: 'ms-Slider-value',\n showValue: 'ms-Slider-showValue',\n showTransitions: 'ms-Slider-showTransitions',\n zeroTick: 'ms-Slider-zeroTick',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var className = props.className, titleLabelClassName = props.titleLabelClassName, theme = props.theme, vertical = props.vertical, disabled = props.disabled, showTransitions = props.showTransitions, showValue = props.showValue, ranged = props.ranged;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n /** Tokens:\n * The word \"active\" in the token refers to the selected section of the slider\n * The word \"inactive\" in the token refers to the unselected section of the slider */\n var pressedActiveSectionColor = semanticColors.inputBackgroundCheckedHovered;\n var hoveredActiveSectionColor = semanticColors.inputBackgroundChecked;\n var hoveredPressedinactiveSectionColor = semanticColors.inputPlaceholderBackgroundChecked;\n var restActiveSectionColor = semanticColors.smallInputBorder;\n var restInactiveSectionColor = semanticColors.disabledBorder;\n var disabledActiveSectionColor = semanticColors.disabledText;\n var disabledInactiveSectionColor = semanticColors.disabledBackground;\n var thumbBackgroundColor = semanticColors.inputBackground;\n var thumbBorderColor = semanticColors.smallInputBorder;\n var thumbDisabledBorderColor = semanticColors.disabledBorder;\n var slideBoxActiveSectionStyles = !disabled && {\n backgroundColor: pressedActiveSectionColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _a),\n };\n var slideBoxInactiveSectionStyles = !disabled && {\n backgroundColor: hoveredPressedinactiveSectionColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n };\n var slideHoverSectionStyles = !disabled && {\n backgroundColor: hoveredActiveSectionColor,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _c),\n };\n var slideBoxActiveThumbStyles = !disabled && {\n border: \"2px solid \" + pressedActiveSectionColor,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _d),\n };\n var slideBoxActiveZeroTickStyles = !props.disabled && {\n backgroundColor: semanticColors.inputPlaceholderBackgroundChecked,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _e),\n };\n return {\n root: __spreadArrays([\n classNames.root,\n theme.fonts.medium,\n {\n userSelect: 'none',\n },\n vertical && {\n marginRight: 8,\n }\n ], [!disabled ? classNames.enabled : undefined], [disabled ? classNames.disabled : undefined], [!vertical ? classNames.row : undefined], [vertical ? classNames.column : undefined], [\n className,\n ]),\n titleLabel: [\n {\n padding: 0,\n },\n titleLabelClassName,\n ],\n container: [\n classNames.container,\n {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n vertical && {\n flexDirection: 'column',\n height: '100%',\n textAlign: 'center',\n margin: '8px 0',\n },\n ],\n slideBox: __spreadArrays([\n classNames.slideBox,\n !ranged && getFocusStyle(theme),\n {\n background: 'transparent',\n border: 'none',\n flexGrow: 1,\n lineHeight: 28,\n display: 'flex',\n alignItems: 'center',\n selectors: (_f = {},\n _f[\":active .\" + classNames.activeSection] = slideBoxActiveSectionStyles,\n _f[\":hover .\" + classNames.activeSection] = slideHoverSectionStyles,\n _f[\":active .\" + classNames.inactiveSection] = slideBoxInactiveSectionStyles,\n _f[\":hover .\" + classNames.inactiveSection] = slideBoxInactiveSectionStyles,\n _f[\":active .\" + classNames.thumb] = slideBoxActiveThumbStyles,\n _f[\":hover .\" + classNames.thumb] = slideBoxActiveThumbStyles,\n _f[\":active .\" + classNames.zeroTick] = slideBoxActiveZeroTickStyles,\n _f[\":hover .\" + classNames.zeroTick] = slideBoxActiveZeroTickStyles,\n _f[HighContrastSelector] = {\n forcedColorAdjust: 'none',\n },\n _f),\n },\n vertical\n ? {\n height: '100%',\n width: 28,\n padding: '8px 0',\n }\n : {\n height: 28,\n width: 'auto',\n padding: '0 8px',\n }\n ], [showValue ? classNames.showValue : undefined], [showTransitions ? classNames.showTransitions : undefined]),\n thumb: [\n classNames.thumb,\n ranged && getFocusStyle(theme, { inset: -4 }),\n {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: thumbBorderColor,\n borderRadius: 10,\n boxSizing: 'border-box',\n background: thumbBackgroundColor,\n display: 'block',\n width: 16,\n height: 16,\n position: 'absolute',\n },\n vertical\n ? {\n left: -6,\n margin: '0 auto',\n transform: 'translateY(8px)',\n }\n : {\n top: -6,\n transform: getRTL(theme) ? 'translateX(50%)' : 'translateX(-50%)',\n },\n showTransitions && {\n transition: \"left \" + AnimationVariables.durationValue3 + \" \" + AnimationVariables.easeFunction1,\n },\n disabled && {\n borderColor: thumbDisabledBorderColor,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _g),\n },\n ],\n line: [\n classNames.line,\n {\n display: 'flex',\n position: 'relative',\n },\n vertical\n ? {\n height: '100%',\n width: 4,\n margin: '0 auto',\n flexDirection: 'column-reverse',\n }\n : {\n width: '100%',\n },\n ],\n lineContainer: [\n {\n borderRadius: 4,\n boxSizing: 'border-box',\n },\n vertical\n ? {\n width: 4,\n height: '100%',\n }\n : {\n height: 4,\n width: '100%',\n },\n ],\n activeSection: [\n classNames.activeSection,\n {\n background: restActiveSectionColor,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h),\n },\n showTransitions && {\n transition: \"width \" + AnimationVariables.durationValue3 + \" \" + AnimationVariables.easeFunction1,\n },\n disabled && {\n background: disabledActiveSectionColor,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n borderColor: 'GrayText',\n },\n _j),\n },\n ],\n inactiveSection: [\n classNames.inactiveSection,\n {\n background: restInactiveSectionColor,\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n border: '1px solid WindowText',\n },\n _k),\n },\n showTransitions && {\n transition: \"width \" + AnimationVariables.durationValue3 + \" \" + AnimationVariables.easeFunction1,\n },\n disabled && {\n background: disabledInactiveSectionColor,\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _l),\n },\n ],\n zeroTick: [\n classNames.zeroTick,\n {\n position: 'absolute',\n background: semanticColors.disabledBorder,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _m),\n },\n props.disabled && {\n background: semanticColors.disabledBackground,\n selectors: (_o = {},\n _o[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _o),\n },\n props.vertical\n ? {\n width: '16px',\n height: '1px',\n transform: getRTL(theme) ? 'translateX(6px)' : 'translateX(-6px)',\n }\n : {\n width: '1px',\n height: '16px',\n transform: 'translateY(-6px)',\n },\n ],\n valueLabel: [\n classNames.valueLabel,\n {\n flexShrink: 1,\n width: 30,\n lineHeight: '1',\n },\n vertical\n ? {\n margin: '0 auto',\n whiteSpace: 'nowrap',\n width: 40,\n }\n : {\n margin: '0 8px',\n whiteSpace: 'nowrap',\n width: 40,\n },\n ],\n };\n};\n//# sourceMappingURL=Slider.styles.js.map","import { styled } from '../../Utilities';\nimport { SliderBase } from './Slider.base';\nimport { getStyles } from './Slider.styles';\nexport var Slider = styled(SliderBase, getStyles, undefined, {\n scope: 'Slider',\n});\n//# sourceMappingURL=Slider.js.map","import { concatStyleSets, HighContrastSelector, IconFontSizes, getInputFocusStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar ARROW_BUTTON_WIDTH = 23;\nvar ARROW_BUTTON_ICON_SIZE = 8;\nvar DEFAULT_HEIGHT = 32;\nvar DEFAULT_MIN_WIDTH = 86;\nvar LABEL_MARGIN = 10;\nvar _getDisabledStyles = memoizeFunction(function (theme) {\n var _a;\n var semanticColors = theme.semanticColors;\n var SpinButtonTextColorDisabled = semanticColors.disabledText;\n var SpinButtonBackgroundColorDisabled = semanticColors.disabledBackground;\n return {\n backgroundColor: SpinButtonBackgroundColorDisabled,\n pointerEvents: 'none',\n cursor: 'default',\n color: SpinButtonTextColorDisabled,\n selectors: (_a = {\n ':after': {\n borderColor: SpinButtonBackgroundColorDisabled,\n }\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n };\n});\nexport var getArrowButtonStyles = memoizeFunction(function (theme, isUpArrow, customSpecificArrowStyles) {\n var _a, _b, _c;\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects;\n // TODO: after updating the semanticColor slots all this need to be reevaluated.\n var ArrowButtonTextColor = palette.neutralSecondary;\n var ArrowButtonTextColorHovered = semanticColors.buttonText;\n var ArrowButtonTextColorPressed = semanticColors.buttonText;\n var ArrowButtonBackgroundHovered = semanticColors.buttonBackgroundHovered;\n var ArrowButtonBackgroundPressed = semanticColors.buttonBackgroundPressed;\n var defaultArrowButtonStyles = {\n root: {\n outline: 'none',\n display: 'block',\n height: '50%',\n width: ARROW_BUTTON_WIDTH,\n padding: 0,\n backgroundColor: 'transparent',\n textAlign: 'center',\n cursor: 'default',\n color: ArrowButtonTextColor,\n selectors: {\n '&.ms-DownButton': {\n borderRadius: \"0 0 \" + effects.roundedCorner2 + \" 0\",\n },\n '&.ms-UpButton': {\n borderRadius: \"0 \" + effects.roundedCorner2 + \" 0 0\",\n },\n },\n },\n rootHovered: {\n backgroundColor: ArrowButtonBackgroundHovered,\n color: ArrowButtonTextColorHovered,\n },\n rootChecked: {\n backgroundColor: ArrowButtonBackgroundPressed,\n color: ArrowButtonTextColorPressed,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'HighlightText',\n },\n _a),\n },\n rootPressed: {\n backgroundColor: ArrowButtonBackgroundPressed,\n color: ArrowButtonTextColorPressed,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'HighlightText',\n },\n _b),\n },\n rootDisabled: {\n opacity: 0.5,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n opacity: 1,\n },\n _c),\n },\n icon: {\n fontSize: ARROW_BUTTON_ICON_SIZE,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n },\n };\n // No specific styles needed as of now.\n var defaultUpArrowButtonStyles = {};\n var defaultDownArrowButtonStyles = {};\n return concatStyleSets(defaultArrowButtonStyles, isUpArrow ? defaultUpArrowButtonStyles : defaultDownArrowButtonStyles, customSpecificArrowStyles);\n});\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b;\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var SpinButtonRootBorderColor = semanticColors.inputBorder;\n var SpinButtonRootBackgroundColor = semanticColors.inputBackground;\n var SpinButtonRootBorderColorHovered = semanticColors.inputBorderHovered;\n var SpinButtonRootBorderColorFocused = semanticColors.inputFocusBorderAlt;\n var SpinButtonInputTextColor = semanticColors.inputText;\n var SpinButtonInputTextColorSelected = palette.white;\n var SpinButtonInputBackgroundColorSelected = semanticColors.inputBackgroundChecked;\n var SpinButtonIconDisabledColor = semanticColors.disabledText;\n var defaultStyles = {\n root: [\n fonts.medium,\n {\n outline: 'none',\n width: '100%',\n minWidth: DEFAULT_MIN_WIDTH,\n },\n ],\n labelWrapper: {\n display: 'inline-flex',\n alignItems: 'center',\n },\n labelWrapperStart: {\n height: DEFAULT_HEIGHT,\n float: 'left',\n marginRight: LABEL_MARGIN,\n },\n labelWrapperEnd: {\n height: DEFAULT_HEIGHT,\n float: 'right',\n marginLeft: LABEL_MARGIN,\n },\n labelWrapperTop: {\n // Due to the lineHeight set on the label (below), the height of the wrapper (contains icon+label)\n // ends up 1px taller than a standard label height, causing the vertical alignment to be off when\n // the SpinButton is displayed with the label on top next to other form fields.\n // Decrease the wrapper's effective height slightly to compensate.\n marginBottom: -1,\n },\n labelWrapperBottom: {},\n icon: {\n padding: '0 5px',\n fontSize: IconFontSizes.large,\n },\n iconDisabled: {\n color: SpinButtonIconDisabledColor,\n },\n label: {\n pointerEvents: 'none',\n // centering the label with the icon by forcing the exact same height as the icon.\n lineHeight: IconFontSizes.large,\n },\n labelDisabled: {},\n spinButtonWrapper: {\n display: 'flex',\n position: 'relative',\n boxSizing: 'border-box',\n height: DEFAULT_HEIGHT,\n minWidth: DEFAULT_MIN_WIDTH,\n selectors: {\n // setting border using pseudo-element here in order to prevent:\n // input and chevron buttons to overlap border under certain resolutions\n ':after': {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: SpinButtonRootBorderColor,\n borderRadius: effects.roundedCorner2,\n },\n },\n },\n spinButtonWrapperTopBottom: {\n width: '100%',\n },\n spinButtonWrapperHovered: {\n selectors: (_a = {\n ':after': {\n borderColor: SpinButtonRootBorderColorHovered,\n }\n },\n _a[HighContrastSelector] = {\n selectors: {\n ':after': {\n borderColor: 'Highlight',\n },\n },\n },\n _a),\n },\n spinButtonWrapperFocused: getInputFocusStyle(SpinButtonRootBorderColorFocused, effects.roundedCorner2),\n spinButtonWrapperDisabled: _getDisabledStyles(theme),\n input: {\n boxSizing: 'border-box',\n boxShadow: 'none',\n borderStyle: 'none',\n flex: 1,\n margin: 0,\n fontSize: fonts.medium.fontSize,\n fontFamily: 'inherit',\n color: SpinButtonInputTextColor,\n backgroundColor: SpinButtonRootBackgroundColor,\n height: '100%',\n padding: '0 8px 0 9px',\n outline: 0,\n display: 'block',\n minWidth: DEFAULT_MIN_WIDTH - ARROW_BUTTON_WIDTH - 2,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n cursor: 'text',\n userSelect: 'text',\n borderRadius: effects.roundedCorner2 + \" 0 0 \" + effects.roundedCorner2,\n },\n inputTextSelected: {\n backgroundColor: SpinButtonInputBackgroundColorSelected,\n color: SpinButtonInputTextColorSelected,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n },\n _b),\n },\n inputDisabled: _getDisabledStyles(theme),\n arrowButtonsContainer: {\n display: 'block',\n height: '100%',\n cursor: 'default',\n },\n arrowButtonsContainerDisabled: _getDisabledStyles(theme),\n };\n return concatStyleSets(defaultStyles, customStyles);\n});\n//# sourceMappingURL=SpinButton.styles.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nimport { Position } from '../../utilities/positioning';\nexport var getClassNames = memoizeFunction(function (styles, disabled, isFocused, keyboardSpinDirection, labelPosition, className) {\n if (labelPosition === void 0) { labelPosition = Position.start; }\n if (className === void 0) { className = undefined; }\n return {\n root: mergeStyles(styles.root, className),\n labelWrapper: mergeStyles(styles.labelWrapper, _getStyleForLabelBasedOnPosition(labelPosition, styles)),\n icon: mergeStyles(styles.icon, disabled && styles.iconDisabled),\n label: mergeStyles(styles.label),\n spinButtonWrapper: mergeStyles(styles.spinButtonWrapper, _getStyleForRootBasedOnPosition(labelPosition, styles), !disabled && [\n {\n selectors: {\n ':hover': styles.spinButtonWrapperHovered,\n },\n },\n isFocused && {\n // This is to increase the specificity of the focus styles\n // and make it equal to that of the hover styles.\n selectors: {\n '&&': styles.spinButtonWrapperFocused,\n },\n },\n ], disabled && styles.spinButtonWrapperDisabled),\n input: mergeStyles('ms-spinButton-input', styles.input, !disabled && {\n selectors: {\n '::selection': styles.inputTextSelected,\n },\n }, disabled && styles.inputDisabled),\n arrowBox: mergeStyles(styles.arrowButtonsContainer, disabled && styles.arrowButtonsContainerDisabled),\n };\n});\n/**\n * Returns the Style corresponding to the label position\n */\nfunction _getStyleForLabelBasedOnPosition(labelPosition, styles) {\n switch (labelPosition) {\n case Position.start:\n return styles.labelWrapperStart;\n case Position.end:\n return styles.labelWrapperEnd;\n case Position.top:\n return styles.labelWrapperTop;\n case Position.bottom:\n return styles.labelWrapperBottom;\n }\n}\n/**\n * Returns the Style corresponding to the label position\n */\nfunction _getStyleForRootBasedOnPosition(labelPosition, styles) {\n switch (labelPosition) {\n case Position.top:\n case Position.bottom:\n return styles.spinButtonWrapperTopBottom;\n default:\n return {};\n }\n}\n//# sourceMappingURL=SpinButton.classNames.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { initializeComponentRef, warnMutuallyExclusive, Async, getId, KeyCodes, customizable, calculatePrecision, precisionRound, mergeAriaAttributeValues, getNativeProps, divProperties, } from '../../Utilities';\nimport { Position } from '../../utilities/positioning';\nimport { getStyles, getArrowButtonStyles } from './SpinButton.styles';\nimport { getClassNames } from './SpinButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nexport var KeyboardSpinDirection;\n(function (KeyboardSpinDirection) {\n KeyboardSpinDirection[KeyboardSpinDirection[\"down\"] = -1] = \"down\";\n KeyboardSpinDirection[KeyboardSpinDirection[\"notSpinning\"] = 0] = \"notSpinning\";\n KeyboardSpinDirection[KeyboardSpinDirection[\"up\"] = 1] = \"up\";\n})(KeyboardSpinDirection || (KeyboardSpinDirection = {}));\nvar SpinButton = /** @class */ (function (_super) {\n __extends(SpinButton, _super);\n function SpinButton(props) {\n var _this = _super.call(this, props) || this;\n _this._input = React.createRef();\n _this._initialStepDelay = 400;\n _this._stepDelay = 75;\n _this._onFocus = function (ev) {\n // We can't set focus on a non-existing element\n if (!_this._input.current) {\n return;\n }\n if (_this._spinningByMouse || _this.state.keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {\n _this._stop();\n }\n _this._input.current.select();\n _this.setState({ isFocused: true });\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n };\n _this._onBlur = function (ev) {\n _this._validate(ev);\n _this.setState({ isFocused: false });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n };\n _this._onValidate = function (value, event) {\n if (_this.props.onValidate) {\n return _this.props.onValidate(value, event);\n }\n else {\n return _this._defaultOnValidate(value);\n }\n };\n _this._calculatePrecision = function (props) {\n var _a = props.precision, precision = _a === void 0 ? Math.max(calculatePrecision(props.step), 0) : _a;\n return precision;\n };\n /**\n * Validate function to use if one is not passed in\n */\n _this._defaultOnValidate = function (value) {\n if (value === null || value.trim().length === 0 || isNaN(Number(value))) {\n return _this._lastValidValue;\n }\n var newValue = Math.min(_this.props.max, Math.max(_this.props.min, Number(value)));\n return String(newValue);\n };\n _this._onIncrement = function (value, event) {\n if (_this.props.onIncrement) {\n return _this.props.onIncrement(value, event);\n }\n else {\n return _this._defaultOnIncrement(value);\n }\n };\n /**\n * Increment function to use if one is not passed in\n */\n _this._defaultOnIncrement = function (value) {\n var _a = _this.props, max = _a.max, step = _a.step;\n var newValue = Math.min(Number(value) + Number(step), max);\n newValue = precisionRound(newValue, _this._precision);\n return String(newValue);\n };\n _this._onDecrement = function (value, event) {\n if (_this.props.onDecrement) {\n return _this.props.onDecrement(value, event);\n }\n else {\n return _this._defaultOnDecrement(value);\n }\n };\n /**\n * Increment function to use if one is not passed in\n */\n _this._defaultOnDecrement = function (value) {\n var _a = _this.props, min = _a.min, step = _a.step;\n var newValue = Math.max(Number(value) - Number(step), min);\n newValue = precisionRound(newValue, _this._precision);\n return String(newValue);\n };\n /**\n * This is used when validating text entry in the input on blur or when enter key is pressed\n * (not when changed via the buttons).\n * @param event - the event that fired\n */\n _this._validate = function (event) {\n if (_this.value !== undefined &&\n _this._valueToValidate !== undefined &&\n _this._valueToValidate !== _this._lastValidValue) {\n var newValue = _this._onValidate(_this._valueToValidate, event);\n // Done validating this value, so clear it\n _this._valueToValidate = undefined;\n if (newValue !== undefined) {\n _this._lastValidValue = newValue;\n _this.setState({ value: newValue });\n }\n else {\n // Value was invalid. Reset state to last valid value.\n _this.setState({ value: _this._lastValidValue });\n }\n }\n };\n /**\n * The method is needed to ensure we are updating the actual input value.\n * without this our value will never change (and validation will not have the correct number)\n * @param event - the event that was fired\n */\n _this._onInputChange = function (event) {\n var element = event.target;\n var value = element.value;\n _this._valueToValidate = value;\n _this.setState({\n value: value,\n });\n };\n /**\n * Update the value with the given stepFunction\n * @param shouldSpin - should we fire off another updateValue when we are done here? This should be true\n * when spinning in response to a mouseDown\n * @param stepFunction - function to use to step by\n * @param event - The event that triggered the updateValue\n */\n _this._updateValue = function (shouldSpin, stepDelay, stepFunction, event) {\n var newValue = stepFunction(_this.value || '', event);\n if (newValue !== undefined) {\n _this._lastValidValue = newValue;\n _this.setState({ value: newValue });\n }\n if (_this._spinningByMouse !== shouldSpin) {\n _this._spinningByMouse = shouldSpin;\n }\n if (shouldSpin) {\n _this._currentStepFunctionHandle = _this._async.setTimeout(function () {\n _this._updateValue(shouldSpin, _this._stepDelay, stepFunction, event);\n }, stepDelay);\n }\n };\n /**\n * Stop spinning (clear any currently pending update and set spinning to false)\n */\n _this._stop = function () {\n if (_this._currentStepFunctionHandle >= 0) {\n _this._async.clearTimeout(_this._currentStepFunctionHandle);\n _this._currentStepFunctionHandle = -1;\n }\n if (_this._spinningByMouse || _this.state.keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {\n _this._spinningByMouse = false;\n _this.setState({ keyboardSpinDirection: KeyboardSpinDirection.notSpinning });\n }\n };\n /**\n * Handle keydown on the text field. We need to update\n * the value when up or down arrow are depressed\n * @param event - the keyboardEvent that was fired\n */\n _this._handleKeyDown = function (event) {\n // eat the up and down arrow keys to keep focus in the spinButton\n // (especially when a spinButton is inside of a FocusZone)\n if (event.which === KeyCodes.up || event.which === KeyCodes.down || event.which === KeyCodes.enter) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (_this.props.disabled) {\n _this._stop();\n return;\n }\n var spinDirection = KeyboardSpinDirection.notSpinning;\n switch (event.which) {\n case KeyCodes.up:\n spinDirection = KeyboardSpinDirection.up;\n _this._updateValue(false /* shouldSpin */, _this._initialStepDelay, _this._onIncrement, event);\n break;\n case KeyCodes.down:\n spinDirection = KeyboardSpinDirection.down;\n _this._updateValue(false /* shouldSpin */, _this._initialStepDelay, _this._onDecrement, event);\n break;\n case KeyCodes.enter:\n _this._validate(event);\n break;\n case KeyCodes.escape:\n if (_this.value !== _this._lastValidValue) {\n _this.setState({ value: _this._lastValidValue });\n }\n break;\n default:\n break;\n }\n // style the increment/decrement button to look active\n // when the corresponding up/down arrow keys trigger a step\n if (_this.state.keyboardSpinDirection !== spinDirection) {\n _this.setState({ keyboardSpinDirection: spinDirection });\n }\n };\n /**\n * Make sure that we have stopped spinning on keyUp\n * if the up or down arrow fired this event\n * @param event - keyboard event\n */\n _this._handleKeyUp = function (event) {\n if (_this.props.disabled || event.which === KeyCodes.up || event.which === KeyCodes.down) {\n _this._stop();\n return;\n }\n };\n _this._onIncrementMouseDown = function (event) {\n _this._updateValue(true /* shouldSpin */, _this._initialStepDelay, _this._onIncrement, event);\n };\n _this._onDecrementMouseDown = function (event) {\n _this._updateValue(true /* shouldSpin */, _this._initialStepDelay, _this._onDecrement, event);\n };\n initializeComponentRef(_this);\n warnMutuallyExclusive('SpinButton', props, {\n value: 'defaultValue',\n });\n // Don't use || here because it won't handle empty strings properly\n var _a = props.value, value = _a === void 0 ? props.defaultValue : _a;\n if (value === undefined) {\n value = typeof props.min === 'number' ? String(props.min) : '0';\n }\n _this._lastValidValue = value;\n // Ensure that the autocalculated precision is not negative.\n _this._precision = _this._calculatePrecision(props);\n _this.state = {\n isFocused: false,\n value: value,\n keyboardSpinDirection: KeyboardSpinDirection.notSpinning,\n };\n _this._async = new Async(_this);\n _this._currentStepFunctionHandle = -1;\n _this._labelId = getId('Label');\n _this._inputId = getId('input');\n _this._spinningByMouse = false;\n _this._valueToValidate = undefined;\n return _this;\n }\n SpinButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n /**\n * Invoked when a component is receiving new props. This method is not called for the initial render.\n */\n SpinButton.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n if (newProps.value !== undefined) {\n // Value from props is considered pre-validated\n this._lastValidValue = newProps.value;\n this.setState({ value: newProps.value });\n }\n this._precision = this._calculatePrecision(newProps);\n };\n SpinButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, label = _a.label, min = _a.min, max = _a.max, labelPosition = _a.labelPosition, iconProps = _a.iconProps, incrementButtonIcon = _a.incrementButtonIcon, incrementButtonAriaLabel = _a.incrementButtonAriaLabel, decrementButtonIcon = _a.decrementButtonIcon, decrementButtonAriaLabel = _a.decrementButtonAriaLabel, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, customStyles = _a.styles, customUpArrowButtonStyles = _a.upArrowButtonStyles, customDownArrowButtonStyles = _a.downArrowButtonStyles, theme = _a.theme, ariaPositionInSet = _a.ariaPositionInSet, ariaSetSize = _a.ariaSetSize, ariaValueNow = _a.ariaValueNow, ariaValueText = _a.ariaValueText, keytipProps = _a.keytipProps, className = _a.className, inputProps = _a.inputProps, iconButtonProps = _a.iconButtonProps;\n var _b = this.state, isFocused = _b.isFocused, keyboardSpinDirection = _b.keyboardSpinDirection;\n var value = this.value;\n var classNames = this.props.getClassNames\n ? this.props.getClassNames(theme, disabled, isFocused, keyboardSpinDirection, labelPosition, className)\n : getClassNames(getStyles(theme, customStyles), disabled, isFocused, keyboardSpinDirection, labelPosition, className);\n var nativeProps = getNativeProps(this.props, divProperties, [\n 'onBlur',\n 'onFocus',\n 'className',\n ]);\n return (React.createElement(\"div\", { className: classNames.root },\n labelPosition !== Position.bottom && (iconProps || label) && (React.createElement(\"div\", { className: classNames.labelWrapper },\n iconProps && React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon, \"aria-hidden\": \"true\" })),\n label && (React.createElement(Label, { id: this._labelId, htmlFor: this._inputId, className: classNames.label, disabled: disabled }, label)))),\n React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.spinButtonWrapper, \"aria-label\": ariaLabel && ariaLabel, \"aria-posinset\": ariaPositionInSet, \"aria-setsize\": ariaSetSize, \"data-ktp-target\": keytipAttributes['data-ktp-target'] }),\n React.createElement(\"input\", __assign({ value: value, id: _this._inputId, onChange: _this._onChange, onInput: _this._onInputChange, className: classNames.input, type: \"text\", autoComplete: \"off\", role: \"spinbutton\", \"aria-labelledby\": label && _this._labelId, \"aria-valuenow\": typeof ariaValueNow === 'number'\n ? ariaValueNow\n : value && !isNaN(Number(value)) // Number('') is 0 which may not be desirable\n ? Number(value)\n : undefined, \"aria-valuetext\": typeof ariaValueText === 'string'\n ? ariaValueText\n : !value || isNaN(Number(value)) // Number('') is 0 which may not be desirable\n ? value\n : undefined, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-describedby\": mergeAriaAttributeValues(ariaDescribedBy, keytipAttributes['aria-describedby']), onBlur: _this._onBlur, ref: _this._input, onFocus: _this._onFocus, onKeyDown: _this._handleKeyDown, onKeyUp: _this._handleKeyUp, disabled: disabled, \"aria-disabled\": disabled, \"data-lpignore\": true, \"data-ktp-execute-target\": keytipAttributes['data-ktp-execute-target'] }, inputProps)),\n React.createElement(\"span\", { className: classNames.arrowBox },\n React.createElement(IconButton, __assign({ styles: getArrowButtonStyles(theme, true, customUpArrowButtonStyles), className: 'ms-UpButton', checked: keyboardSpinDirection === KeyboardSpinDirection.up, disabled: disabled, iconProps: incrementButtonIcon, onMouseDown: _this._onIncrementMouseDown, onMouseLeave: _this._stop, onMouseUp: _this._stop, tabIndex: -1, ariaLabel: incrementButtonAriaLabel, \"data-is-focusable\": false }, iconButtonProps)),\n React.createElement(IconButton, __assign({ styles: getArrowButtonStyles(theme, false, customDownArrowButtonStyles), className: 'ms-DownButton', checked: keyboardSpinDirection === KeyboardSpinDirection.down, disabled: disabled, iconProps: decrementButtonIcon, onMouseDown: _this._onDecrementMouseDown, onMouseLeave: _this._stop, onMouseUp: _this._stop, tabIndex: -1, ariaLabel: decrementButtonAriaLabel, \"data-is-focusable\": false }, iconButtonProps))))); }),\n labelPosition === Position.bottom && (iconProps || label) && (React.createElement(\"div\", { className: classNames.labelWrapper },\n iconProps && React.createElement(Icon, { iconName: iconProps.iconName, className: classNames.icon, \"aria-hidden\": \"true\" }),\n label && (React.createElement(Label, { id: this._labelId, htmlFor: this._inputId, className: classNames.label, disabled: disabled }, label))))));\n };\n SpinButton.prototype.focus = function () {\n if (this._input.current) {\n this._input.current.focus();\n }\n };\n Object.defineProperty(SpinButton.prototype, \"value\", {\n /**\n * Gets the value of the spin button.\n */\n get: function () {\n // TODO (version 8): value from props should ALWAYS override value from state.\n // In a class component the code should be:\n // const { value = this.state.value } = this.props;\n // return value;\n return this.state.value;\n },\n enumerable: true,\n configurable: true\n });\n SpinButton.prototype._onChange = function () {\n /**\n * A noop input change handler. Using onInput instead of onChange was meant to address an issue\n * which apparently has been resolved in React 16 (https://github.com/facebook/react/issues/7027).\n * The no-op onChange handler was still needed because React gives console errors if an input\n * doesn't have onChange.\n *\n * TODO (Fabric 8?) - switch to just calling onChange (this is a breaking change for any tests,\n * ours or 3rd-party, which simulate entering text in a SpinButton)\n */\n };\n SpinButton.defaultProps = {\n step: 1,\n min: 0,\n max: 100,\n disabled: false,\n labelPosition: Position.start,\n label: '',\n incrementButtonIcon: { iconName: 'ChevronUpSmall' },\n decrementButtonIcon: { iconName: 'ChevronDownSmall' },\n };\n SpinButton = __decorate([\n customizable('SpinButton', ['theme', 'styles'], true)\n ], SpinButton);\n return SpinButton;\n}(React.Component));\nexport { SpinButton };\n//# sourceMappingURL=SpinButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { SpinnerType, SpinnerSize } from './Spinner.types';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar SpinnerBase = /** @class */ (function (_super) {\n __extends(SpinnerBase, _super);\n function SpinnerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SpinnerBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;\n var statusMessage = ariaLabel;\n var nativeProps = getNativeProps(this.props, divProperties, ['size']);\n // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the\n // ISpinnerStyleProps, we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType\n // finally goes away we should delete this.\n var styleSize = size;\n if (styleSize === undefined && type !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: styleSize,\n className: className,\n labelPosition: labelPosition,\n });\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n React.createElement(\"div\", { className: classNames.circle }),\n label && React.createElement(\"div\", { className: classNames.label }, label),\n statusMessage && (React.createElement(\"div\", { role: \"status\", \"aria-live\": ariaLive },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, statusMessage))))));\n };\n SpinnerBase.defaultProps = {\n size: SpinnerSize.medium,\n ariaLive: 'polite',\n labelPosition: 'bottom',\n };\n return SpinnerBase;\n}(React.Component));\nexport { SpinnerBase };\n//# sourceMappingURL=Spinner.base.js.map","import { __assign } from \"tslib\";\nimport { SpinnerSize } from './Spinner.types';\nimport { hiddenContentStyle, keyframes, HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Spinner',\n circle: 'ms-Spinner-circle',\n label: 'ms-Spinner-label',\n};\nvar spinAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n labelPosition === 'top' && {\n flexDirection: 'column-reverse',\n },\n labelPosition === 'right' && {\n flexDirection: 'row',\n },\n labelPosition === 'left' && {\n flexDirection: 'row-reverse',\n },\n className,\n ],\n circle: [\n classNames.circle,\n {\n boxSizing: 'border-box',\n borderRadius: '50%',\n border: '1.5px solid ' + palette.themeLight,\n borderTopColor: palette.themePrimary,\n animationName: spinAnimation(),\n animationDuration: '1.3s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderTopColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n size === SpinnerSize.xSmall && [\n 'ms-Spinner--xSmall',\n {\n width: 12,\n height: 12,\n },\n ],\n size === SpinnerSize.small && [\n 'ms-Spinner--small',\n {\n width: 16,\n height: 16,\n },\n ],\n size === SpinnerSize.medium && [\n 'ms-Spinner--medium',\n {\n width: 20,\n height: 20,\n },\n ],\n size === SpinnerSize.large && [\n 'ms-Spinner--large',\n {\n width: 28,\n height: 28,\n },\n ],\n ],\n label: [\n classNames.label,\n theme.fonts.small,\n {\n color: palette.themePrimary,\n margin: '8px 0 0',\n textAlign: 'center',\n },\n labelPosition === 'top' && {\n margin: '0 0 8px',\n },\n labelPosition === 'right' && {\n margin: '0 0 0 8px',\n },\n labelPosition === 'left' && {\n margin: '0 8px 0 0',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Spinner.styles.js.map","import { styled } from '../../Utilities';\nimport { SpinnerBase } from './Spinner.base';\nimport { getStyles } from './Spinner.styles';\nexport var Spinner = styled(SpinnerBase, getStyles, undefined, { scope: 'Spinner' });\n//# sourceMappingURL=Spinner.js.map","/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport var SpinnerSize;\n(function (SpinnerSize) {\n /**\n * 12px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"xSmall\"] = 0] = \"xSmall\";\n /**\n * 16px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"small\"] = 1] = \"small\";\n /**\n * 20px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"medium\"] = 2] = \"medium\";\n /**\n * 28px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"large\"] = 3] = \"large\";\n})(SpinnerSize || (SpinnerSize = {}));\n/**\n * Deprecated at v2.0.0, use `SpinnerSize` instead.\n * @deprecated Use `SpinnerSize` instead.\n * {@docCategory Spinner}\n */\nexport var SpinnerType;\n(function (SpinnerType) {\n /**\n * Deprecated and will be removed at \\>= 2.0.0. Use `SpinnerSize.medium` instead.\n * @deprecated Use `SpinnerSize.medium` instead.\n */\n SpinnerType[SpinnerType[\"normal\"] = 0] = \"normal\";\n /**\n * Deprecated and will be removed at \\>= 2.0.0. Use `SpinnerSize.large` instead.\n * @deprecated Use `SpinnerSize.large` instead.\n */\n SpinnerType[SpinnerType[\"large\"] = 1] = \"large\";\n})(SpinnerType || (SpinnerType = {}));\n//# sourceMappingURL=Spinner.types.js.map","import { __assign } from \"tslib\";\nimport { parseGap, parsePadding } from './StackUtils';\nimport { getGlobalClassNames } from '../../Styling';\nvar nameMap = {\n start: 'flex-start',\n end: 'flex-end',\n};\nvar GlobalClassNames = {\n root: 'ms-Stack',\n inner: 'ms-Stack-inner',\n};\nexport var styles = function (props, theme, tokens) {\n var _a, _b, _c, _d, _e, _f, _g;\n var verticalFill = props.verticalFill, horizontal = props.horizontal, reversed = props.reversed, grow = props.grow, wrap = props.wrap, horizontalAlign = props.horizontalAlign, verticalAlign = props.verticalAlign, disableShrink = props.disableShrink, className = props.className;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n /* eslint-disable deprecation/deprecation */\n var childrenGap = tokens && tokens.childrenGap ? tokens.childrenGap : props.gap;\n var maxHeight = tokens && tokens.maxHeight ? tokens.maxHeight : props.maxHeight;\n var maxWidth = tokens && tokens.maxWidth ? tokens.maxWidth : props.maxWidth;\n var padding = tokens && tokens.padding ? tokens.padding : props.padding;\n /* eslint-enable deprecation/deprecation */\n var _h = parseGap(childrenGap, theme), rowGap = _h.rowGap, columnGap = _h.columnGap;\n var horizontalMargin = \"\" + -0.5 * columnGap.value + columnGap.unit;\n var verticalMargin = \"\" + -0.5 * rowGap.value + rowGap.unit;\n // styles to be applied to all direct children regardless of wrap or direction\n var childStyles = {\n textOverflow: 'ellipsis',\n };\n // selectors to be applied regardless of wrap or direction\n var commonSelectors = {\n // flexShrink styles are applied by the StackItem\n '> *:not(.ms-StackItem)': {\n flexShrink: disableShrink ? 0 : 1,\n },\n };\n if (wrap) {\n return {\n root: [\n classNames.root,\n {\n flexWrap: 'wrap',\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n width: 'auto',\n overflow: 'visible',\n height: '100%',\n },\n horizontalAlign && (_a = {},\n _a[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n _a),\n verticalAlign && (_b = {},\n _b[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n _b),\n className,\n {\n // not allowed to be overridden by className\n // since this is necessary in order to prevent collapsing margins\n display: 'flex',\n },\n horizontal && {\n height: verticalFill ? '100%' : 'auto',\n },\n ],\n inner: [\n classNames.inner,\n {\n display: 'flex',\n flexWrap: 'wrap',\n marginLeft: horizontalMargin,\n marginRight: horizontalMargin,\n marginTop: verticalMargin,\n marginBottom: verticalMargin,\n overflow: 'visible',\n boxSizing: 'border-box',\n padding: parsePadding(padding, theme),\n // avoid unnecessary calc() calls if horizontal gap is 0\n width: columnGap.value === 0 ? '100%' : \"calc(100% + \" + columnGap.value + columnGap.unit + \")\",\n maxWidth: '100vw',\n selectors: __assign({ '> *': __assign({ margin: \"\" + 0.5 * rowGap.value + rowGap.unit + \" \" + 0.5 * columnGap.value + columnGap.unit }, childStyles) }, commonSelectors),\n },\n horizontalAlign && (_c = {},\n _c[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n _c),\n verticalAlign && (_d = {},\n _d[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n _d),\n horizontal && {\n flexDirection: reversed ? 'row-reverse' : 'row',\n // avoid unnecessary calc() calls if vertical gap is 0\n height: rowGap.value === 0 ? '100%' : \"calc(100% + \" + rowGap.value + rowGap.unit + \")\",\n selectors: {\n '> *': {\n maxWidth: columnGap.value === 0 ? '100%' : \"calc(100% - \" + columnGap.value + columnGap.unit + \")\",\n },\n },\n },\n !horizontal && {\n flexDirection: reversed ? 'column-reverse' : 'column',\n height: \"calc(100% + \" + rowGap.value + rowGap.unit + \")\",\n selectors: {\n '> *': {\n maxHeight: rowGap.value === 0 ? '100%' : \"calc(100% - \" + rowGap.value + rowGap.unit + \")\",\n },\n },\n },\n ],\n };\n }\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: horizontal ? (reversed ? 'row-reverse' : 'row') : reversed ? 'column-reverse' : 'column',\n flexWrap: 'nowrap',\n width: 'auto',\n height: verticalFill ? '100%' : 'auto',\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n padding: parsePadding(padding, theme),\n boxSizing: 'border-box',\n selectors: __assign((_e = { '> *': childStyles }, _e[reversed ? '> *:not(:last-child)' : '> *:not(:first-child)'] = [\n horizontal && {\n marginLeft: \"\" + columnGap.value + columnGap.unit,\n },\n !horizontal && {\n marginTop: \"\" + rowGap.value + rowGap.unit,\n },\n ], _e), commonSelectors),\n },\n grow && {\n flexGrow: grow === true ? 1 : grow,\n },\n horizontalAlign && (_f = {},\n _f[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n _f),\n verticalAlign && (_g = {},\n _g[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n _g),\n className,\n ],\n };\n};\n//# sourceMappingURL=Stack.styles.js.map","import { __assign, __rest } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport * as React from 'react';\nimport { withSlots, createComponent, getSlots } from '../../Foundation';\nimport { getNativeProps, htmlElementProperties, warnDeprecations } from '../../Utilities';\nimport { styles } from './Stack.styles';\nimport { StackItem } from './StackItem/StackItem';\nvar StackView = function (props) {\n var _a = props.as, RootType = _a === void 0 ? 'div' : _a, disableShrink = props.disableShrink, wrap = props.wrap, rest = __rest(props, [\"as\", \"disableShrink\", \"wrap\"]);\n warnDeprecations('Stack', props, {\n gap: 'tokens.childrenGap',\n maxHeight: 'tokens.maxHeight',\n maxWidth: 'tokens.maxWidth',\n padding: 'tokens.padding',\n });\n var stackChildren = React.Children.map(props.children, function (child, index) {\n if (!child) {\n return null;\n }\n if (_isStackItem(child)) {\n var defaultItemProps = {\n shrink: !disableShrink,\n };\n return React.cloneElement(child, __assign(__assign({}, defaultItemProps), child.props));\n }\n return child;\n });\n var nativeProps = getNativeProps(rest, htmlElementProperties);\n var Slots = getSlots(props, {\n root: RootType,\n inner: 'div',\n });\n if (wrap) {\n return (withSlots(Slots.root, __assign({}, nativeProps),\n withSlots(Slots.inner, null, stackChildren)));\n }\n return withSlots(Slots.root, __assign({}, nativeProps), stackChildren);\n};\nfunction _isStackItem(item) {\n // In theory, we should be able to just check item.type === StackItem.\n // However, under certain unclear circumstances (see https://github.com/microsoft/fluentui/issues/10785),\n // the object identity is different despite the function implementation being the same.\n return (!!item &&\n typeof item === 'object' &&\n !!item.type &&\n // StackItem is generated by createComponent, so we need to check its displayName instead of name\n item.type.displayName === StackItem.displayName);\n}\nvar StackStatics = {\n Item: StackItem,\n};\nexport var Stack = createComponent(StackView, {\n displayName: 'Stack',\n styles: styles,\n statics: StackStatics,\n});\nexport default Stack;\n//# sourceMappingURL=Stack.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-StackItem',\n};\nvar alignMap = {\n start: 'flex-start',\n end: 'flex-end',\n};\nexport var StackItemStyles = function (props, theme, tokens) {\n var grow = props.grow, shrink = props.shrink, disableShrink = props.disableShrink, align = props.align, verticalFill = props.verticalFill, order = props.order, className = props.className;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n {\n margin: tokens.margin,\n padding: tokens.padding,\n height: verticalFill ? '100%' : 'auto',\n width: 'auto',\n },\n grow && { flexGrow: grow === true ? 1 : grow },\n (disableShrink || (!grow && !shrink)) && {\n flexShrink: 0,\n },\n shrink &&\n !disableShrink && {\n flexShrink: 1,\n },\n align && {\n alignSelf: alignMap[align] || align,\n },\n order && {\n order: order,\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=StackItem.styles.js.map","import { __assign } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport * as React from 'react';\nimport { withSlots, createComponent, getSlots } from '../../../Foundation';\nimport { getNativeProps, htmlElementProperties } from '../../../Utilities';\nimport { StackItemStyles as styles } from './StackItem.styles';\nvar StackItemView = function (props) {\n var children = props.children;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n if (React.Children.count(children) < 1) {\n return null;\n }\n var Slots = getSlots(props, {\n root: 'div',\n });\n return withSlots(Slots.root, __assign({}, nativeProps), children);\n};\nexport var StackItem = createComponent(StackItemView, {\n displayName: 'StackItem',\n styles: styles,\n});\nexport default StackItem;\n//# sourceMappingURL=StackItem.js.map","/**\n * Functions used by Stack components to simplify style-related computations\n */\n// Helper function that converts a themed spacing key (if given) to the corresponding themed spacing value.\nvar _getThemedSpacing = function (space, theme) {\n if (theme.spacing.hasOwnProperty(space)) {\n return theme.spacing[space];\n }\n return space;\n};\n// Helper function that takes a gap as a string and converts it into a { value, unit } representation.\nvar _getValueUnitGap = function (gap) {\n var numericalPart = parseFloat(gap);\n var numericalValue = isNaN(numericalPart) ? 0 : numericalPart;\n var numericalString = isNaN(numericalPart) ? '' : numericalPart.toString();\n var unitPart = gap.substring(numericalString.toString().length);\n return {\n value: numericalValue,\n unit: unitPart || 'px',\n };\n};\n/**\n * Takes in a gap size in either a CSS-style format (e.g. 10 or \"10px\")\n * or a key of a themed spacing value (e.g. \"s1\").\n * Returns the separate numerical value of the padding (e.g. 10)\n * and the CSS unit (e.g. \"px\").\n */\nexport var parseGap = function (gap, theme) {\n if (gap === undefined || gap === '') {\n return {\n rowGap: {\n value: 0,\n unit: 'px',\n },\n columnGap: {\n value: 0,\n unit: 'px',\n },\n };\n }\n if (typeof gap === 'number') {\n return {\n rowGap: {\n value: gap,\n unit: 'px',\n },\n columnGap: {\n value: gap,\n unit: 'px',\n },\n };\n }\n var splitGap = gap.split(' ');\n // If the array has more than two values, then return 0px.\n if (splitGap.length > 2) {\n return {\n rowGap: {\n value: 0,\n unit: 'px',\n },\n columnGap: {\n value: 0,\n unit: 'px',\n },\n };\n }\n // If the array has two values, then parse each one.\n if (splitGap.length === 2) {\n return {\n rowGap: _getValueUnitGap(_getThemedSpacing(splitGap[0], theme)),\n columnGap: _getValueUnitGap(_getThemedSpacing(splitGap[1], theme)),\n };\n }\n // Else, parse the numerical value and pass it as both the vertical and horizontal gap.\n var calculatedGap = _getValueUnitGap(_getThemedSpacing(gap, theme));\n return {\n rowGap: calculatedGap,\n columnGap: calculatedGap,\n };\n};\n/**\n * Takes in a padding in a CSS-style format (e.g. 10, \"10px\", \"10px 10px\", etc.)\n * where the separate padding values can also be the key of a themed spacing value\n * (e.g. \"s1 m\", \"10px l1 20px l2\", etc.).\n * Returns a CSS-style padding.\n */\nexport var parsePadding = function (padding, theme) {\n if (padding === undefined || typeof padding === 'number' || padding === '') {\n return padding;\n }\n var paddingValues = padding.split(' ');\n if (paddingValues.length < 2) {\n return _getThemedSpacing(padding, theme);\n }\n return paddingValues.reduce(function (padding1, padding2) {\n return _getThemedSpacing(padding1, theme) + ' ' + _getThemedSpacing(padding2, theme);\n });\n};\n//# sourceMappingURL=StackUtils.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef } from '../../Utilities';\nimport { hiddenContentStyle } from '../../Styling';\nimport { ScrollablePaneContext } from '../ScrollablePane/ScrollablePane.types';\nimport { StickyPositionType } from './Sticky.types';\nvar Sticky = /** @class */ (function (_super) {\n __extends(Sticky, _super);\n function Sticky(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._stickyContentTop = React.createRef();\n _this._stickyContentBottom = React.createRef();\n _this._nonStickyContent = React.createRef();\n _this._placeHolder = React.createRef();\n _this.syncScroll = function (container) {\n var nonStickyContent = _this.nonStickyContent;\n if (nonStickyContent && _this.props.isScrollSynced) {\n nonStickyContent.scrollLeft = container.scrollLeft;\n }\n };\n // eslint-disable-next-line deprecation/deprecation\n _this._getContext = function () { return _this.context; };\n _this._onScrollEvent = function (container, footerStickyContainer) {\n if (_this.root && _this.nonStickyContent) {\n var distanceFromTop = _this._getNonStickyDistanceFromTop(container);\n var isStickyTop = false;\n var isStickyBottom = false;\n if (_this.canStickyTop) {\n var distanceToStickTop = distanceFromTop - _this._getStickyDistanceFromTop();\n isStickyTop = distanceToStickTop < container.scrollTop;\n }\n // Can sticky bottom if the scrollablePane - total sticky footer height is smaller than the sticky's distance\n // from the top of the pane\n if (_this.canStickyBottom && container.clientHeight - footerStickyContainer.offsetHeight <= distanceFromTop) {\n isStickyBottom =\n distanceFromTop - Math.floor(container.scrollTop) >=\n _this._getStickyDistanceFromTopForFooter(container, footerStickyContainer);\n }\n if (document.activeElement &&\n _this.nonStickyContent.contains(document.activeElement) &&\n (_this.state.isStickyTop !== isStickyTop || _this.state.isStickyBottom !== isStickyBottom)) {\n _this._activeElement = document.activeElement;\n }\n else {\n _this._activeElement = undefined;\n }\n _this.setState({\n isStickyTop: _this.canStickyTop && isStickyTop,\n isStickyBottom: isStickyBottom,\n distanceFromTop: distanceFromTop,\n });\n }\n };\n _this._getStickyDistanceFromTop = function () {\n var distance = 0;\n if (_this.stickyContentTop) {\n distance = _this.stickyContentTop.offsetTop;\n }\n return distance;\n };\n _this._getStickyDistanceFromTopForFooter = function (container, footerStickyVisibleContainer) {\n var distance = 0;\n if (_this.stickyContentBottom) {\n distance =\n container.clientHeight - footerStickyVisibleContainer.offsetHeight + _this.stickyContentBottom.offsetTop;\n }\n return distance;\n };\n _this._getNonStickyDistanceFromTop = function (container) {\n var distance = 0;\n var currElem = _this.root;\n if (currElem) {\n while (currElem && currElem.offsetParent !== container) {\n distance += currElem.offsetTop;\n currElem = currElem.offsetParent;\n }\n if (currElem && currElem.offsetParent === container) {\n distance += currElem.offsetTop;\n }\n }\n return distance;\n };\n initializeComponentRef(_this);\n _this.state = {\n isStickyTop: false,\n isStickyBottom: false,\n distanceFromTop: undefined,\n };\n _this._activeElement = undefined;\n return _this;\n }\n Object.defineProperty(Sticky.prototype, \"root\", {\n get: function () {\n return this._root.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"placeholder\", {\n get: function () {\n return this._placeHolder.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"stickyContentTop\", {\n get: function () {\n return this._stickyContentTop.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"stickyContentBottom\", {\n get: function () {\n return this._stickyContentBottom.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"nonStickyContent\", {\n get: function () {\n return this._nonStickyContent.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"canStickyTop\", {\n get: function () {\n return (this.props.stickyPosition === StickyPositionType.Both || this.props.stickyPosition === StickyPositionType.Header);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"canStickyBottom\", {\n get: function () {\n return (this.props.stickyPosition === StickyPositionType.Both || this.props.stickyPosition === StickyPositionType.Footer);\n },\n enumerable: true,\n configurable: true\n });\n Sticky.prototype.componentDidMount = function () {\n var scrollablePane = this._getContext().scrollablePane;\n if (!scrollablePane) {\n return;\n }\n scrollablePane.subscribe(this._onScrollEvent);\n scrollablePane.addSticky(this);\n };\n Sticky.prototype.componentWillUnmount = function () {\n var scrollablePane = this._getContext().scrollablePane;\n if (!scrollablePane) {\n return;\n }\n scrollablePane.unsubscribe(this._onScrollEvent);\n scrollablePane.removeSticky(this);\n };\n Sticky.prototype.componentDidUpdate = function (prevProps, prevState) {\n var scrollablePane = this._getContext().scrollablePane;\n if (!scrollablePane) {\n return;\n }\n var _a = this.state, isStickyBottom = _a.isStickyBottom, isStickyTop = _a.isStickyTop, distanceFromTop = _a.distanceFromTop;\n var syncScroll = false;\n if (prevState.distanceFromTop !== distanceFromTop) {\n scrollablePane.sortSticky(this, true /*sortAgain*/);\n syncScroll = true;\n }\n if (prevState.isStickyTop !== isStickyTop || prevState.isStickyBottom !== isStickyBottom) {\n if (this._activeElement) {\n this._activeElement.focus();\n }\n scrollablePane.updateStickyRefHeights();\n syncScroll = true;\n }\n if (syncScroll) {\n // Sync Sticky scroll position with content container on each update\n scrollablePane.syncScrollSticky(this);\n }\n };\n Sticky.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.context.scrollablePane) {\n return true;\n }\n var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom, distanceFromTop = _a.distanceFromTop;\n return (isStickyTop !== nextState.isStickyTop ||\n isStickyBottom !== nextState.isStickyBottom ||\n this.props.stickyPosition !== nextProps.stickyPosition ||\n this.props.children !== nextProps.children ||\n distanceFromTop !== nextState.distanceFromTop ||\n _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentTop) ||\n _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentBottom) ||\n _isOffsetHeightDifferent(this._nonStickyContent, this._placeHolder));\n };\n Sticky.prototype.render = function () {\n var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n var _b = this.props, stickyClassName = _b.stickyClassName, children = _b.children;\n // eslint-disable-next-line deprecation/deprecation\n if (!this.context.scrollablePane) {\n return React.createElement(\"div\", null, this.props.children);\n }\n return (React.createElement(\"div\", { ref: this._root },\n this.canStickyTop && (React.createElement(\"div\", { ref: this._stickyContentTop, style: { pointerEvents: isStickyTop ? 'auto' : 'none' } },\n React.createElement(\"div\", { style: this._getStickyPlaceholderHeight(isStickyTop) }))),\n this.canStickyBottom && (React.createElement(\"div\", { ref: this._stickyContentBottom, style: { pointerEvents: isStickyBottom ? 'auto' : 'none' } },\n React.createElement(\"div\", { style: this._getStickyPlaceholderHeight(isStickyBottom) }))),\n React.createElement(\"div\", { style: this._getNonStickyPlaceholderHeightAndWidth(), ref: this._placeHolder },\n (isStickyTop || isStickyBottom) && React.createElement(\"span\", { style: hiddenContentStyle }, children),\n React.createElement(\"div\", { ref: this._nonStickyContent, className: isStickyTop || isStickyBottom ? stickyClassName : undefined, style: this._getContentStyles(isStickyTop || isStickyBottom) }, children))));\n };\n Sticky.prototype.addSticky = function (stickyContent) {\n if (this.nonStickyContent) {\n stickyContent.appendChild(this.nonStickyContent);\n }\n };\n Sticky.prototype.resetSticky = function () {\n if (this.nonStickyContent && this.placeholder) {\n this.placeholder.appendChild(this.nonStickyContent);\n }\n };\n Sticky.prototype.setDistanceFromTop = function (container) {\n var distanceFromTop = this._getNonStickyDistanceFromTop(container);\n this.setState({ distanceFromTop: distanceFromTop });\n };\n Sticky.prototype._getContentStyles = function (isSticky) {\n return {\n backgroundColor: this.props.stickyBackgroundColor || this._getBackground(),\n overflow: isSticky ? 'hidden' : '',\n };\n };\n Sticky.prototype._getStickyPlaceholderHeight = function (isSticky) {\n var height = this.nonStickyContent ? this.nonStickyContent.offsetHeight : 0;\n return {\n visibility: isSticky ? 'hidden' : 'visible',\n height: isSticky ? 0 : height,\n };\n };\n Sticky.prototype._getNonStickyPlaceholderHeightAndWidth = function () {\n var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n if (isStickyTop || isStickyBottom) {\n var height = 0;\n var width = 0;\n // Why is placeholder width needed?\n // ScrollablePane's content container is reponsible for providing scrollbars depending on content overflow.\n // - If the overflow is caused by content of sticky component when it is in non-sticky state, the container will\n // provide horizontal scrollbar.\n // - If the component becomes sticky, i.e., when state.isStickyTop || state.isStickyBottom becomes true,\n // its actual content is no longer inside the container, so the container will see no need for horizontal\n // scrollbar (assuming no other content is causing overflow). The complete content of sticky component will\n // not be viewable. So it is necessary to provide a placeholder of a certain width (height is already being set)\n // in the container, to get a horizontal scrollbar & be able to view the complete content of sticky component.\n if (this.nonStickyContent && this.nonStickyContent.firstElementChild) {\n height = this.nonStickyContent.offsetHeight;\n // What value should be substituted for placeholder width?\n // Assumptions:\n // 1. Content inside <Sticky> should always be wrapped in a single div.\n // <Sticky><div id={'firstElementChild'}>{intended_content}</div><Sticky/>\n // 2. -ve padding, margin, etc. are not be used.\n // 3. scrollWidth of a parent is greater than or equal to max of scrollWidths of its children, and same holds\n // for children.\n // placeholder width should be computed in the best possible way to prevent overscroll/underscroll.\n width =\n this.nonStickyContent.firstElementChild.scrollWidth +\n (this.nonStickyContent.firstElementChild.offsetWidth -\n this.nonStickyContent.firstElementChild.clientWidth);\n }\n return {\n height: height,\n width: width,\n };\n }\n else {\n return {};\n }\n };\n // Gets background of nearest parent element that has a declared background-color attribute\n Sticky.prototype._getBackground = function () {\n if (!this.root) {\n return undefined;\n }\n var curr = this.root;\n while (window.getComputedStyle(curr).getPropertyValue('background-color') === 'rgba(0, 0, 0, 0)' ||\n window.getComputedStyle(curr).getPropertyValue('background-color') === 'transparent') {\n if (curr.tagName === 'HTML') {\n // Fallback color if no element has a declared background-color attribute\n return undefined;\n }\n if (curr.parentElement) {\n curr = curr.parentElement;\n }\n }\n return window.getComputedStyle(curr).getPropertyValue('background-color');\n };\n Sticky.defaultProps = {\n stickyPosition: StickyPositionType.Both,\n isScrollSynced: true,\n };\n Sticky.contextType = ScrollablePaneContext;\n return Sticky;\n}(React.Component));\nexport { Sticky };\nfunction _isOffsetHeightDifferent(a, b) {\n return (a && b && a.current && b.current && a.current.offsetHeight !== b.current.offsetHeight);\n}\n//# sourceMappingURL=Sticky.js.map","export var StickyPositionType;\n(function (StickyPositionType) {\n StickyPositionType[StickyPositionType[\"Both\"] = 0] = \"Both\";\n StickyPositionType[StickyPositionType[\"Header\"] = 1] = \"Header\";\n StickyPositionType[StickyPositionType[\"Footer\"] = 2] = \"Footer\";\n})(StickyPositionType || (StickyPositionType = {}));\n//# sourceMappingURL=Sticky.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { mergeStyleSets } from '../../Styling';\nimport { classNamesFunction, memoizeFunction } from '../../Utilities';\nimport { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { ButtonGridCell } from '../../utilities/ButtonGrid/ButtonGridCell';\nimport { getStyles as getActionButtonStyles } from '../Button/ActionButton/ActionButton.styles';\nvar getColorPickerGridCellButtonClassNames = memoizeFunction(function (theme, className, variantClassName, iconClassName, menuIconClassName, disabled, checked, expanded, isSplit) {\n var styles = getActionButtonStyles(theme);\n return mergeStyleSets({\n root: [\n 'ms-Button',\n styles.root,\n variantClassName,\n className,\n checked && ['is-checked', styles.rootChecked],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !checked && {\n selectors: {\n ':hover': styles.rootHovered,\n ':focus': styles.rootFocused,\n ':active': styles.rootPressed,\n },\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n ],\n flexContainer: ['ms-Button-flexContainer', styles.flexContainer],\n });\n});\nvar getClassNames = classNamesFunction();\nvar ColorCell = /** @class */ (function (_super) {\n __extends(ColorCell, _super);\n function ColorCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ColorCell;\n}(ButtonGridCell));\nvar ColorPickerGridCellBase = /** @class */ (function (_super) {\n __extends(ColorPickerGridCellBase, _super);\n function ColorPickerGridCellBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Render the core of a color cell\n * @returns - Element representing the core of the item\n */\n _this._onRenderColorOption = function (colorOption) {\n // Build an SVG for the cell with the given shape and color properties\n return (React.createElement(\"svg\", { className: _this._classNames.svg, viewBox: \"0 0 20 20\", fill: getColorFromString(colorOption.color).str }, _this.props.circle ? React.createElement(\"circle\", { cx: \"50%\", cy: \"50%\", r: \"50%\" }) : React.createElement(\"rect\", { width: \"100%\", height: \"100%\" })));\n };\n return _this;\n }\n ColorPickerGridCellBase.prototype.render = function () {\n var _a = this.props, item = _a.item, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.idPrefix, \n // eslint-disable-next-line deprecation/deprecation\n idPrefix = _b === void 0 ? this.props.id : _b, selected = _a.selected, disabled = _a.disabled, styles = _a.styles, theme = _a.theme, circle = _a.circle, color = _a.color, onClick = _a.onClick, onHover = _a.onHover, onFocus = _a.onFocus, onMouseEnter = _a.onMouseEnter, onMouseMove = _a.onMouseMove, onMouseLeave = _a.onMouseLeave, onWheel = _a.onWheel, onKeyDown = _a.onKeyDown, height = _a.height, width = _a.width, borderWidth = _a.borderWidth;\n this._classNames = getClassNames(styles, {\n theme: theme,\n disabled: disabled,\n selected: selected,\n circle: circle,\n isWhite: this._isWhiteCell(color),\n height: height,\n width: width,\n borderWidth: borderWidth,\n });\n return (React.createElement(ColorCell, { item: item, id: idPrefix + \"-\" + item.id + \"-\" + item.index, key: item.id, disabled: disabled, role: 'gridcell', onRenderItem: this._onRenderColorOption, selected: selected, onClick: onClick, onHover: onHover, onFocus: onFocus, label: item.label, className: this._classNames.colorCell, getClassNames: getColorPickerGridCellButtonClassNames, index: item.index, onMouseEnter: onMouseEnter, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onWheel: onWheel, onKeyDown: onKeyDown }));\n };\n /**\n * Validate if the cell's color is white or not to apply whiteCell style\n * @param inputColor - The color of the current cell\n * @returns - Whether the cell's color is white or not.\n */\n ColorPickerGridCellBase.prototype._isWhiteCell = function (inputColor) {\n var color = getColorFromString(inputColor);\n return color.hex === 'ffffff';\n };\n ColorPickerGridCellBase.defaultProps = {\n circle: true,\n disabled: false,\n selected: false,\n };\n return ColorPickerGridCellBase;\n}(React.PureComponent));\nexport { ColorPickerGridCellBase };\n//# sourceMappingURL=ColorPickerGridCell.base.js.map","import { IsFocusVisibleClassName } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle } from '../../Styling';\n// Size breakpoint when the default border width changes from 2px to 4px.\nvar CELL_BORDER_BREAKPOINT = 24;\nvar LARGE_BORDER = 4;\nvar SMALL_BORDER = 2;\nvar DIVIDING_PADDING = 2;\nvar DEFAULT_CELL_SIZE = 20;\nvar cellHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n outlineColor: 'ButtonText',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, disabled = props.disabled, selected = props.selected, circle = props.circle, isWhite = props.isWhite, _f = props.height, height = _f === void 0 ? DEFAULT_CELL_SIZE : _f, _g = props.width, width = _g === void 0 ? DEFAULT_CELL_SIZE : _g, borderWidth = props.borderWidth;\n var semanticColors = theme.semanticColors, palette = theme.palette;\n var buttonBorderHovered = palette.neutralLighter;\n var buttonBorderChecked = palette.neutralLight;\n var buttonBorderCheckedHovered = palette.neutralSecondary;\n var buttonBorderIsWhite = palette.neutralTertiary;\n // If user provided a value, use it. If not, then we decide depending on the 24px size breakpoint.\n var calculatedBorderWidth = borderWidth\n ? borderWidth\n : width < CELL_BORDER_BREAKPOINT\n ? SMALL_BORDER\n : LARGE_BORDER;\n return {\n // this is a button that wraps the color\n colorCell: [\n getFocusStyle(theme, { inset: -1, position: 'relative', highContrastStyle: cellHighContrastFocus }),\n {\n backgroundColor: semanticColors.bodyBackground,\n padding: 0,\n position: 'relative',\n boxSizing: 'border-box',\n display: 'inline-block',\n cursor: 'pointer',\n userSelect: 'none',\n borderRadius: 0,\n border: 'none',\n height: height,\n width: width,\n },\n !circle && {\n selectors: (_a = {},\n _a[\".\" + IsFocusVisibleClassName + \" &:focus::after\"] = {\n // -1px so that we don't increase visually the size of the cell.\n outlineOffset: calculatedBorderWidth - 1 + \"px\",\n },\n _a),\n },\n // In focus state for circle we want a round border which is not possible with outline.\n circle && {\n borderRadius: '50%',\n selectors: (_b = {},\n _b[\".\" + IsFocusVisibleClassName + \" &:focus::after\"] = {\n outline: 'none',\n borderColor: semanticColors.focusBorder,\n borderRadius: '50%',\n left: -calculatedBorderWidth,\n right: -calculatedBorderWidth,\n top: -calculatedBorderWidth,\n bottom: -calculatedBorderWidth,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n outline: \"1px solid ButtonText\",\n },\n _c),\n },\n _b),\n },\n selected && {\n padding: DIVIDING_PADDING,\n border: calculatedBorderWidth + \"px solid \" + buttonBorderChecked,\n selectors: (_d = {},\n _d['&:hover::before'] = {\n content: '\"\"',\n height: height,\n width: width,\n position: 'absolute',\n top: -calculatedBorderWidth,\n left: -calculatedBorderWidth,\n borderRadius: circle ? '50%' : 'default',\n boxShadow: \"inset 0 0 0 1px \" + buttonBorderCheckedHovered,\n },\n _d),\n },\n !selected && {\n selectors: (_e = {},\n _e['&:hover, &:active, &:focus'] = {\n backgroundColor: semanticColors.bodyBackground,\n padding: DIVIDING_PADDING,\n border: calculatedBorderWidth + \"px solid \" + buttonBorderHovered,\n },\n _e['&:focus'] = {\n borderColor: semanticColors.bodyBackground,\n padding: 0,\n selectors: {\n ':hover': {\n borderColor: theme.palette.neutralLight,\n padding: DIVIDING_PADDING,\n },\n },\n },\n _e),\n },\n disabled && {\n color: semanticColors.disabledBodyText,\n pointerEvents: 'none',\n opacity: 0.3,\n },\n isWhite &&\n !selected && {\n // fake a border for white\n backgroundColor: buttonBorderIsWhite,\n padding: 1,\n },\n ],\n // the <svg> that holds the color\n svg: [\n {\n width: '100%',\n height: '100%',\n },\n circle && {\n borderRadius: '50%',\n },\n ],\n };\n};\n//# sourceMappingURL=ColorPickerGridCell.styles.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerGridCellBase } from './ColorPickerGridCell.base';\nimport { getStyles } from './ColorPickerGridCell.styles';\nexport var ColorPickerGridCell = styled(ColorPickerGridCellBase, getStyles, undefined, { scope: 'ColorPickerGridCell' }, true);\n//# sourceMappingURL=ColorPickerGridCell.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, classNamesFunction, findIndex, KeyCodes, getId, warnMutuallyExclusive, warnConditionallyRequiredProps, } from '../../Utilities';\nimport { ButtonGrid } from '../../utilities/ButtonGrid/ButtonGrid';\nimport { ColorPickerGridCell } from './ColorPickerGridCell';\nimport { memoizeFunction, warnDeprecations } from '@uifabric/utilities';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SwatchColorPicker';\nvar SwatchColorPickerBase = /** @class */ (function (_super) {\n __extends(SwatchColorPickerBase, _super);\n function SwatchColorPickerBase(props) {\n var _this = _super.call(this, props) || this;\n _this.navigationIdleDelay = 250 /* ms */;\n // Add an index to each color cells. Memoizes this so that color cells do not re-render on every update.\n _this._getItemsWithIndex = memoizeFunction(function (items) {\n return items.map(function (item, index) {\n return __assign(__assign({}, item), { index: index });\n });\n });\n _this._onRenderItem = function (item, index) {\n var _a = _this.props.onRenderColorCell, onRenderColorCell = _a === void 0 ? _this._renderOption : _a;\n return onRenderColorCell(item, _this._renderOption);\n };\n /**\n * When the whole swatchColorPicker is blurred,\n * make sure to clear the pending focused stated\n */\n _this._onSwatchColorPickerBlur = function () {\n if (_this.props.onCellFocused) {\n _this._cellFocused = false;\n _this.props.onCellFocused();\n }\n };\n /**\n * Render a color cell\n * @param item - The item to render\n * @returns - Element representing the item\n */\n _this._renderOption = function (item) {\n var props = _this.props;\n var id = _this._id;\n return (React.createElement(ColorPickerGridCell, { item: item, idPrefix: id, color: item.color, styles: props.getColorGridCellStyles, disabled: props.disabled, onClick: _this._onCellClick, onHover: _this._onGridCellHovered, onFocus: _this._onGridCellFocused, selected: _this.state.selectedIndex !== undefined && _this.state.selectedIndex === item.index, circle: props.cellShape === 'circle', label: item.label, onMouseEnter: _this._onMouseEnter, onMouseMove: _this._onMouseMove, onMouseLeave: _this._onMouseLeave, onWheel: _this._onWheel, onKeyDown: _this._onKeyDown, height: props.cellHeight, width: props.cellWidth, borderWidth: props.cellBorderWidth }));\n };\n /**\n * Callback passed to the GridCell that will manage triggering the onCellHovered callback for mouseEnter\n */\n _this._onMouseEnter = function (ev) {\n if (!_this.props.focusOnHover) {\n return !_this.isNavigationIdle || !!_this.props.disabled;\n }\n if (_this.isNavigationIdle && !_this.props.disabled) {\n ev.currentTarget.focus();\n }\n return true;\n };\n /**\n * Callback passed to the GridCell that will manage Hover/Focus updates\n */\n _this._onMouseMove = function (ev) {\n if (!_this.props.focusOnHover) {\n return !_this.isNavigationIdle || !!_this.props.disabled;\n }\n var targetElement = ev.currentTarget;\n // If navigation is idle and the targetElement is the focused element bail out\n // if (!this.isNavigationIdle || (document && targetElement === (document.activeElement as HTMLElement))) {\n if (_this.isNavigationIdle && !(document && targetElement === document.activeElement)) {\n targetElement.focus();\n }\n return true;\n };\n /**\n * Callback passed to the GridCell that will manage Hover/Focus updates\n */\n _this._onMouseLeave = function (ev) {\n var parentSelector = _this.props.mouseLeaveParentSelector;\n if (!_this.props.focusOnHover || !parentSelector || !_this.isNavigationIdle || _this.props.disabled) {\n return;\n }\n // Get the elements that math the given selector\n var elements = document.querySelectorAll(parentSelector);\n // iterate over the elements return to make sure it is a parent of the target and focus it\n for (var index = 0; index < elements.length; index += 1) {\n if (elements[index].contains(ev.currentTarget)) {\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (elements[index].setActive) {\n try {\n elements[index].setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n elements[index].focus();\n }\n break;\n }\n }\n };\n /**\n * Callback to make sure we don't update the hovered element during mouse wheel\n */\n _this._onWheel = function () {\n _this._setNavigationTimeout();\n };\n /**\n * Callback that\n */\n _this._onKeyDown = function (ev) {\n if (ev.which === KeyCodes.up ||\n ev.which === KeyCodes.down ||\n ev.which === KeyCodes.left ||\n ev.which === KeyCodes.right) {\n _this._setNavigationTimeout();\n }\n };\n /**\n * Sets a timeout so we won't process any mouse \"hover\" events\n * while navigating (via mouseWheel or arrowKeys)\n */\n _this._setNavigationTimeout = function () {\n if (!_this.isNavigationIdle && _this.navigationIdleTimeoutId !== undefined) {\n _this.async.clearTimeout(_this.navigationIdleTimeoutId);\n _this.navigationIdleTimeoutId = undefined;\n }\n else {\n _this.isNavigationIdle = false;\n }\n _this.navigationIdleTimeoutId = _this.async.setTimeout(function () {\n _this.isNavigationIdle = true;\n }, _this.navigationIdleDelay);\n };\n /**\n * Callback passed to the GridCell class that will trigger the onCellHovered callback of the SwatchColorPicker\n * NOTE: This will not be triggered if shouldFocusOnHover === true\n */\n _this._onGridCellHovered = function (item) {\n var onCellHovered = _this.props.onCellHovered;\n if (onCellHovered) {\n return item ? onCellHovered(item.id, item.color) : onCellHovered();\n }\n };\n /**\n * Callback passed to the GridCell class that will trigger the onCellFocus callback of the SwatchColorPicker\n */\n _this._onGridCellFocused = function (item) {\n var onCellFocused = _this.props.onCellFocused;\n if (onCellFocused) {\n if (item) {\n _this._cellFocused = true;\n return onCellFocused(item.id, item.color);\n }\n else {\n _this._cellFocused = false;\n return onCellFocused();\n }\n }\n };\n /**\n * Handle the click on a cell\n * @param item - The cell that the click was fired against\n */\n _this._onCellClick = function (item) {\n if (_this.props.disabled) {\n return;\n }\n var index = item.index;\n // If we have a valid index and it is not already\n // selected, select it\n if (index >= 0 && index !== _this.state.selectedIndex) {\n if (_this.props.onCellFocused && _this._cellFocused) {\n _this._cellFocused = false;\n _this.props.onCellFocused();\n }\n if (_this.props.onColorChanged) {\n _this.props.onColorChanged(item.id, item.color);\n }\n // Update internal state only if the component is uncontrolled\n if (_this.props.isControlled !== true) {\n _this.setState({\n selectedIndex: index,\n });\n }\n }\n };\n _this._id = props.id || getId('swatchColorPicker');\n if (process.env.NODE_ENV !== 'production') {\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n focusOnHover: 'onHover',\n });\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['focusOnHover'], 'mouseLeaveParentSelector', !!props.mouseLeaveParentSelector);\n warnDeprecations(COMPONENT_NAME, props, {\n positionInSet: 'ariaPosInSet',\n setSize: 'ariaSetSize',\n });\n }\n _this.isNavigationIdle = true;\n _this.async = new Async(_this);\n var selectedIndex;\n if (props.selectedId) {\n selectedIndex = _getSelectedIndex(props.colorCells, props.selectedId);\n }\n _this.state = {\n selectedIndex: selectedIndex,\n };\n return _this;\n }\n SwatchColorPickerBase.getDerivedStateFromProps = function (newProps, state) {\n var newSelectedIndex = newProps.selectedId\n ? _getSelectedIndex(newProps.colorCells, newProps.selectedId)\n : undefined;\n // If not controlled, we do not want to allow updates to selectedIndex to be undefined\n if (!newProps.isControlled && newSelectedIndex === undefined) {\n return null;\n }\n if (newSelectedIndex !== state.selectedIndex) {\n return {\n selectedIndex: newSelectedIndex,\n };\n }\n return null;\n };\n SwatchColorPickerBase.prototype.componentWillUnmount = function () {\n if (this.props.onCellFocused && this._cellFocused) {\n this._cellFocused = false;\n this.props.onCellFocused();\n }\n this.async.dispose();\n };\n SwatchColorPickerBase.prototype.render = function () {\n var _a = this.props, colorCells = _a.colorCells, columnCount = _a.columnCount, \n /* eslint-disable deprecation/deprecation */\n _b = _a.ariaPosInSet, \n /* eslint-disable deprecation/deprecation */\n ariaPosInSet = _b === void 0 ? this.props.positionInSet : _b, _c = _a.ariaSetSize, ariaSetSize = _c === void 0 ? this.props.setSize : _c, \n /* eslint-enable deprecation/deprecation */\n shouldFocusCircularNavigate = _a.shouldFocusCircularNavigate, className = _a.className, doNotContainWithinFocusZone = _a.doNotContainWithinFocusZone, styles = _a.styles, cellMargin = _a.cellMargin;\n var classNames = getClassNames(styles, {\n theme: this.props.theme,\n className: className,\n cellMargin: cellMargin,\n });\n if (colorCells.length < 1 || columnCount < 1) {\n return null;\n }\n return (React.createElement(ButtonGrid, __assign({}, this.props, { id: this._id, items: this._getItemsWithIndex(colorCells), columnCount: columnCount, onRenderItem: this._onRenderItem, ariaPosInSet: ariaPosInSet, ariaSetSize: ariaSetSize, shouldFocusCircularNavigate: shouldFocusCircularNavigate, doNotContainWithinFocusZone: doNotContainWithinFocusZone, onBlur: this._onSwatchColorPickerBlur, theme: this.props.theme, styles: {\n root: classNames.root,\n tableCell: classNames.tableCell,\n focusedContainer: classNames.focusedContainer,\n } })));\n };\n SwatchColorPickerBase.defaultProps = {\n cellShape: 'circle',\n disabled: false,\n shouldFocusCircularNavigate: true,\n cellMargin: 10,\n };\n return SwatchColorPickerBase;\n}(React.Component));\nexport { SwatchColorPickerBase };\n/**\n * Get the selected item's index\n * @param items - The items to search\n * @param selectedId - The selected item's id to find\n * @returns - The index of the selected item's id, -1 if there was no match\n */\nfunction _getSelectedIndex(items, selectedId) {\n var selectedIndex = findIndex(items, function (item) { return item.id === selectedId; });\n return selectedIndex >= 0 ? selectedIndex : undefined;\n}\n//# sourceMappingURL=SwatchColorPicker.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n focusedContainer: 'ms-swatchColorPickerBodyContainer',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme, cellMargin = props.cellMargin;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: {\n margin: '8px 0',\n borderCollapse: 'collapse',\n },\n tableCell: {\n padding: cellMargin / 2,\n },\n focusedContainer: [\n classNames.focusedContainer,\n {\n clear: 'both',\n display: 'block',\n minWidth: '180px',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=SwatchColorPicker.styles.js.map","import { styled } from '../../Utilities';\nimport { SwatchColorPickerBase } from './SwatchColorPicker.base';\nimport { getStyles } from './SwatchColorPicker.styles';\nexport var SwatchColorPicker = styled(SwatchColorPickerBase, getStyles, undefined, { scope: 'SwatchColorPicker' });\n//# sourceMappingURL=SwatchColorPicker.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction } from '../../Utilities';\nimport { TeachingBubbleContent } from './TeachingBubbleContent';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TeachingBubbleBase = /** @class */ (function (_super) {\n __extends(TeachingBubbleBase, _super);\n // Constructor\n function TeachingBubbleBase(props) {\n var _this = _super.call(this, props) || this;\n _this.rootElement = React.createRef();\n initializeComponentRef(_this);\n _this.state = {};\n _this._defaultCalloutProps = {\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n directionalHint: DirectionalHint.rightCenter,\n };\n return _this;\n }\n TeachingBubbleBase.prototype.focus = function () {\n if (this.rootElement.current) {\n this.rootElement.current.focus();\n }\n };\n TeachingBubbleBase.prototype.render = function () {\n var _a = this.props, setCalloutProps = _a.calloutProps, \n // eslint-disable-next-line deprecation/deprecation\n targetElement = _a.targetElement, onDismiss = _a.onDismiss, \n // Default to deprecated value if provided.\n // eslint-disable-next-line deprecation/deprecation\n _b = _a.hasCloseButton, \n // Default to deprecated value if provided.\n // eslint-disable-next-line deprecation/deprecation\n hasCloseButton = _b === void 0 ? this.props.hasCloseIcon : _b, isWide = _a.isWide, styles = _a.styles, theme = _a.theme, target = _a.target;\n var calloutProps = __assign(__assign({}, this._defaultCalloutProps), setCalloutProps);\n var stylesProps = {\n theme: theme,\n isWide: isWide,\n calloutProps: __assign(__assign({}, calloutProps), { theme: calloutProps.theme }),\n hasCloseButton: hasCloseButton,\n };\n var classNames = getClassNames(styles, stylesProps);\n var calloutStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(Callout, __assign({ target: target || targetElement, onDismiss: onDismiss }, calloutProps, { className: classNames.root, styles: calloutStyles, hideOverflow: true }),\n React.createElement(\"div\", { ref: this.rootElement },\n React.createElement(TeachingBubbleContent, __assign({}, this.props)))));\n };\n TeachingBubbleBase.defaultProps = {\n /**\n * Default calloutProps is deprecated in favor of private `_defaultCalloutProps`.\n * Remove in next release.\n * @deprecated In favor of private `_defaultCalloutProps`.\n */\n // eslint-disable-next-line deprecation/deprecation\n calloutProps: {\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n directionalHint: DirectionalHint.rightCenter,\n },\n };\n return TeachingBubbleBase;\n}(React.Component));\nexport { TeachingBubbleBase };\n//# sourceMappingURL=TeachingBubble.base.js.map","import { styled } from '../../Utilities';\nimport { TeachingBubbleBase } from './TeachingBubble.base';\nimport { getStyles } from './TeachingBubble.styles';\nexport var TeachingBubble = styled(TeachingBubbleBase, getStyles, undefined, { scope: 'TeachingBubble' });\n//# sourceMappingURL=TeachingBubble.js.map","import { __spreadArrays } from \"tslib\";\nimport { AnimationVariables, FontWeights, getFocusStyle, getGlobalClassNames, keyframes, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar globalClassNames = {\n root: 'ms-TeachingBubble',\n body: 'ms-TeachingBubble-body',\n bodyContent: 'ms-TeachingBubble-bodycontent',\n closeButton: 'ms-TeachingBubble-closebutton',\n content: 'ms-TeachingBubble-content',\n footer: 'ms-TeachingBubble-footer',\n header: 'ms-TeachingBubble-header',\n headerIsCondensed: 'ms-TeachingBubble-header--condensed',\n headerIsSmall: 'ms-TeachingBubble-header--small',\n headerIsLarge: 'ms-TeachingBubble-header--large',\n headline: 'ms-TeachingBubble-headline',\n image: 'ms-TeachingBubble-image',\n primaryButton: 'ms-TeachingBubble-primaryButton',\n secondaryButton: 'ms-TeachingBubble-secondaryButton',\n subText: 'ms-TeachingBubble-subText',\n // TODO: Button global class name usage should be converted to a styles function once\n // Button supports JS styling, which means these button names can be removed.\n button: 'ms-Button',\n buttonLabel: 'ms-Button-label',\n};\nvar opacityFadeIn = memoizeFunction(function () {\n return keyframes({\n '0%': {\n opacity: 0,\n animationTimingFunction: AnimationVariables.easeFunction1,\n transform: 'scale3d(.90,.90,.90)',\n },\n '100%': {\n opacity: 1,\n transform: 'scale3d(1,1,1)',\n },\n });\n});\nvar rootStyle = function (isWide, calloutProps) {\n var _a = calloutProps || {}, calloutWidth = _a.calloutWidth, calloutMaxWidth = _a.calloutMaxWidth;\n return [\n {\n display: 'block',\n maxWidth: 364,\n border: 0,\n outline: 'transparent',\n width: calloutWidth || 'calc(100% + 1px)',\n animationName: \"\" + opacityFadeIn(),\n animationDuration: '300ms',\n animationTimingFunction: 'linear',\n animationFillMode: 'both',\n },\n isWide && {\n maxWidth: calloutMaxWidth || 456,\n },\n ];\n};\nvar headerStyle = function (classNames, hasCondensedHeadline, hasSmallHeadline) {\n if (hasCondensedHeadline) {\n return [\n classNames.headerIsCondensed,\n {\n marginBottom: 14,\n },\n ];\n }\n return [\n hasSmallHeadline && classNames.headerIsSmall,\n !hasSmallHeadline && classNames.headerIsLarge,\n {\n selectors: {\n ':not(:last-child)': {\n marginBottom: 14,\n },\n },\n },\n ];\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var hasCondensedHeadline = props.hasCondensedHeadline, hasSmallHeadline = props.hasSmallHeadline, hasCloseButton = props.hasCloseButton, hasHeadline = props.hasHeadline, isWide = props.isWide, primaryButtonClassName = props.primaryButtonClassName, secondaryButtonClassName = props.secondaryButtonClassName, theme = props.theme, _d = props.calloutProps, calloutProps = _d === void 0 ? { className: undefined, theme: theme } : _d;\n var hasLargeHeadline = !hasCondensedHeadline && !hasSmallHeadline;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var hideDefaultFocusRing = getFocusStyle(theme, {\n outlineColor: 'transparent',\n borderColor: 'transparent',\n });\n return {\n root: [classNames.root, fonts.medium, calloutProps.className],\n body: [\n classNames.body,\n hasCloseButton && !hasHeadline && { marginRight: 24 },\n {\n selectors: {\n ':not(:last-child)': {\n marginBottom: 20,\n },\n },\n },\n ],\n bodyContent: [\n classNames.bodyContent,\n {\n padding: '20px 24px 20px 24px',\n },\n ],\n closeButton: [\n classNames.closeButton,\n {\n position: 'absolute',\n right: 0,\n top: 0,\n margin: '15px 15px 0 0',\n borderRadius: 0,\n color: palette.white,\n fontSize: fonts.small.fontSize,\n selectors: {\n ':hover': {\n background: palette.themeDarkAlt,\n color: palette.white,\n },\n ':active': {\n background: palette.themeDark,\n color: palette.white,\n },\n ':focus': {\n border: \"1px solid \" + semanticColors.variantBorder,\n },\n },\n },\n ],\n content: __spreadArrays([\n classNames.content\n ], rootStyle(isWide), [\n isWide && {\n display: 'flex',\n },\n ]),\n footer: [\n classNames.footer,\n {\n display: 'flex',\n flex: 'auto',\n alignItems: 'center',\n color: palette.white,\n selectors: (_a = {},\n // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n _a[\".\" + classNames.button + \":not(:first-child)\"] = {\n marginLeft: 10,\n },\n _a),\n },\n ],\n header: __spreadArrays([\n classNames.header\n ], headerStyle(classNames, hasCondensedHeadline, hasSmallHeadline), [\n hasCloseButton && { marginRight: 24 },\n (hasCondensedHeadline || hasSmallHeadline) && [\n fonts.medium,\n {\n fontWeight: FontWeights.semibold,\n },\n ],\n ]),\n headline: [\n classNames.headline,\n {\n margin: 0,\n color: palette.white,\n fontWeight: FontWeights.semibold,\n },\n hasLargeHeadline && [\n {\n fontSize: fonts.xLarge.fontSize,\n },\n ],\n ],\n imageContent: [\n classNames.header,\n classNames.image,\n isWide && {\n display: 'flex',\n alignItems: 'center',\n maxWidth: 154,\n },\n ],\n primaryButton: [\n classNames.primaryButton,\n primaryButtonClassName,\n hideDefaultFocusRing,\n {\n backgroundColor: palette.white,\n borderColor: palette.white,\n color: palette.themePrimary,\n whiteSpace: 'nowrap',\n selectors: (_b = {},\n // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n _b[\".\" + classNames.buttonLabel] = fonts.medium,\n _b[':hover'] = {\n backgroundColor: palette.themeLighter,\n borderColor: palette.themeLighter,\n color: palette.themePrimary,\n },\n _b[':focus'] = {\n backgroundColor: palette.themeLighter,\n border: \"1px solid \" + palette.black,\n outline: \"1px solid \" + palette.white,\n outlineOffset: '-2px',\n },\n _b[':active'] = {\n backgroundColor: palette.white,\n borderColor: palette.white,\n color: palette.themePrimary,\n },\n _b),\n },\n ],\n secondaryButton: [\n classNames.secondaryButton,\n secondaryButtonClassName,\n {\n backgroundColor: palette.themePrimary,\n borderColor: palette.white,\n whiteSpace: 'nowrap',\n selectors: (_c = {},\n // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n _c[\".\" + classNames.buttonLabel] = [\n fonts.medium,\n {\n color: palette.white,\n },\n ],\n _c[':hover'] = {\n backgroundColor: palette.themeDarkAlt,\n borderColor: palette.white,\n },\n _c[':focus'] = {\n backgroundColor: palette.themeDark,\n border: \"1px solid \" + palette.black,\n outline: \"1px solid \" + palette.white,\n outlineOffset: '-2px',\n },\n _c[':active'] = {\n backgroundColor: palette.themePrimary,\n borderColor: palette.white,\n },\n _c),\n },\n ],\n subText: [\n classNames.subText,\n {\n margin: 0,\n fontSize: fonts.medium.fontSize,\n color: palette.white,\n fontWeight: FontWeights.regular,\n },\n ],\n subComponentStyles: {\n callout: {\n root: __spreadArrays(rootStyle(isWide, calloutProps), [fonts.medium]),\n beak: [\n {\n background: palette.themePrimary,\n },\n ],\n calloutMain: [\n {\n background: palette.themePrimary,\n },\n ],\n },\n },\n };\n};\n//# sourceMappingURL=TeachingBubble.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction, KeyCodes } from '../../Utilities';\nimport { PrimaryButton, DefaultButton, IconButton } from '../../Button';\nimport { Image } from '../../Image';\nimport { Stack } from '../../Stack';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nvar getClassNames = classNamesFunction();\nvar TeachingBubbleContentBase = /** @class */ (function (_super) {\n __extends(TeachingBubbleContentBase, _super);\n function TeachingBubbleContentBase(props) {\n var _this = _super.call(this, props) || this;\n _this.rootElement = React.createRef();\n _this._onKeyDown = function (e) {\n if (_this.props.onDismiss) {\n if (e.which === KeyCodes.escape) {\n _this.props.onDismiss();\n }\n }\n };\n initializeComponentRef(_this);\n _this.state = {};\n return _this;\n }\n TeachingBubbleContentBase.prototype.componentDidMount = function () {\n if (this.props.onDismiss) {\n document.addEventListener('keydown', this._onKeyDown, false);\n }\n };\n TeachingBubbleContentBase.prototype.componentWillUnmount = function () {\n if (this.props.onDismiss) {\n document.removeEventListener('keydown', this._onKeyDown);\n }\n };\n TeachingBubbleContentBase.prototype.focus = function () {\n if (this.rootElement.current) {\n this.rootElement.current.focus();\n }\n };\n TeachingBubbleContentBase.prototype.render = function () {\n var _a = this.props, children = _a.children, illustrationImage = _a.illustrationImage, primaryButtonProps = _a.primaryButtonProps, secondaryButtonProps = _a.secondaryButtonProps, headline = _a.headline, hasCondensedHeadline = _a.hasCondensedHeadline, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.hasCloseButton, \n // eslint-disable-next-line deprecation/deprecation\n hasCloseButton = _b === void 0 ? this.props.hasCloseIcon : _b, onDismiss = _a.onDismiss, closeButtonAriaLabel = _a.closeButtonAriaLabel, hasSmallHeadline = _a.hasSmallHeadline, isWide = _a.isWide, styles = _a.styles, theme = _a.theme, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, customFooterContent = _a.footerContent, focusTrapZoneProps = _a.focusTrapZoneProps;\n var imageContent;\n var headerContent;\n var bodyContent;\n var footerContent;\n var closeButton;\n var classNames = getClassNames(styles, {\n theme: theme,\n hasCondensedHeadline: hasCondensedHeadline,\n hasSmallHeadline: hasSmallHeadline,\n hasCloseButton: hasCloseButton,\n hasHeadline: !!headline,\n isWide: isWide,\n primaryButtonClassName: primaryButtonProps ? primaryButtonProps.className : undefined,\n secondaryButtonClassName: secondaryButtonProps ? secondaryButtonProps.className : undefined,\n });\n if (illustrationImage && illustrationImage.src) {\n imageContent = (React.createElement(\"div\", { className: classNames.imageContent },\n React.createElement(Image, __assign({}, illustrationImage))));\n }\n if (headline) {\n var HeaderWrapperAs = typeof headline === 'string' ? 'p' : 'div';\n headerContent = (React.createElement(\"div\", { className: classNames.header },\n React.createElement(HeaderWrapperAs, { role: \"heading\", \"aria-level\": 3, className: classNames.headline, id: ariaLabelledBy }, headline)));\n }\n if (children) {\n var BodyContentWrapperAs = typeof children === 'string' ? 'p' : 'div';\n bodyContent = (React.createElement(\"div\", { className: classNames.body },\n React.createElement(BodyContentWrapperAs, { className: classNames.subText, id: ariaDescribedBy }, children)));\n }\n if (primaryButtonProps || secondaryButtonProps || customFooterContent) {\n footerContent = (React.createElement(Stack, { className: classNames.footer, horizontal: true, horizontalAlign: customFooterContent ? 'space-between' : 'end' },\n React.createElement(Stack.Item, { align: \"center\" }, React.createElement(\"span\", null, customFooterContent)),\n React.createElement(Stack.Item, null,\n secondaryButtonProps && React.createElement(DefaultButton, __assign({}, secondaryButtonProps, { className: classNames.secondaryButton })),\n primaryButtonProps && React.createElement(PrimaryButton, __assign({}, primaryButtonProps, { className: classNames.primaryButton })))));\n }\n if (hasCloseButton) {\n closeButton = (React.createElement(IconButton, { className: classNames.closeButton, iconProps: { iconName: 'Cancel' }, title: closeButtonAriaLabel, ariaLabel: closeButtonAriaLabel, onClick: onDismiss }));\n }\n return (React.createElement(\"div\", { className: classNames.content, ref: this.rootElement, role: 'dialog', tabIndex: -1, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, \"data-is-focusable\": true },\n imageContent,\n React.createElement(FocusTrapZone, __assign({ isClickableOutsideFocusTrap: true }, focusTrapZoneProps),\n React.createElement(\"div\", { className: classNames.bodyContent },\n headerContent,\n bodyContent,\n footerContent,\n closeButton))));\n };\n return TeachingBubbleContentBase;\n}(React.Component));\nexport { TeachingBubbleContentBase };\n//# sourceMappingURL=TeachingBubbleContent.base.js.map","import { styled } from '../../Utilities';\nimport { TeachingBubbleContentBase } from './TeachingBubbleContent.base';\nimport { getStyles } from './TeachingBubble.styles';\nexport var TeachingBubbleContent = styled(TeachingBubbleContentBase, getStyles, undefined, { scope: 'TeachingBubbleContent' });\n//# sourceMappingURL=TeachingBubbleContent.js.map","export var DEFAULT_MASK_FORMAT_CHARS = {\n '9': /[0-9]/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n/**\n * Takes in the mask string and the formatCharacters and returns an array of MaskValues\n * Example:\n * mask = 'Phone Number: (999) - 9999'\n * return = [\n * { value: undefined, displayIndex: 16, format: /[0-9]/ },\n * { value: undefined, displayIndex: 17, format: /[0-9]/ },\n * { value: undefined, displayIndex: 18, format: /[0-9]/ },\n * { value: undefined, displayIndex: 22, format: /[0-9]/ },\n * ]\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param formatChars An object defining how certain characters in the mask should accept input.\n */\nexport function parseMask(mask, formatChars) {\n if (formatChars === void 0) { formatChars = DEFAULT_MASK_FORMAT_CHARS; }\n if (!mask) {\n return [];\n }\n var maskCharData = [];\n // Count the escape characters in the mask string.\n var escapedChars = 0;\n for (var i = 0; i + escapedChars < mask.length; i++) {\n var maskChar = mask.charAt(i + escapedChars);\n if (maskChar === '\\\\') {\n escapedChars++;\n }\n else {\n // Check if the maskChar is a format character.\n var maskFormat = formatChars[maskChar];\n if (maskFormat) {\n maskCharData.push({\n /**\n * Do not add escapedChars to the displayIndex.\n * The index refers to a position in the mask's displayValue.\n * Since the backslashes don't appear in the displayValue,\n * we do not add them to the charData displayIndex.\n */\n displayIndex: i,\n format: maskFormat,\n });\n }\n }\n }\n return maskCharData;\n}\n/**\n * Takes in the mask string, an array of MaskValues, and the maskCharacter\n * returns the mask string formatted with the input values and maskCharacter.\n * If the maskChar is undefined, the maskDisplay is truncated to the last filled format character.\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * maskCharData = '12345'\n * maskChar = '_'\n * return = 'Phone Number: (123) 45_ - ___'\n *\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * value = '12345'\n * maskChar = undefined\n * return = 'Phone Number: (123) 45'\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param maskCharData The input values to insert into the mask string for displaying.\n * @param maskChar? A character to display in place of unfilled mask format characters.\n */\nexport function getMaskDisplay(mask, maskCharData, maskChar) {\n var maskDisplay = mask;\n if (!maskDisplay) {\n return '';\n }\n // Remove all backslashes\n maskDisplay = maskDisplay.replace(/\\\\/g, '');\n // lastDisplayIndex is is used to truncate the string if necessary.\n var lastDisplayIndex = 0;\n if (maskCharData.length > 0) {\n lastDisplayIndex = maskCharData[0].displayIndex - 1;\n }\n /**\n * For each input value, replace the character in the maskDisplay with the value.\n * If there is no value set for the format character, use the maskChar.\n */\n for (var _i = 0, maskCharData_1 = maskCharData; _i < maskCharData_1.length; _i++) {\n var charData = maskCharData_1[_i];\n var nextChar = ' ';\n if (charData.value) {\n nextChar = charData.value;\n if (charData.displayIndex > lastDisplayIndex) {\n lastDisplayIndex = charData.displayIndex;\n }\n }\n else {\n if (maskChar) {\n nextChar = maskChar;\n }\n }\n // Insert the character into the maskdisplay at its corresponding index\n maskDisplay = maskDisplay.slice(0, charData.displayIndex) + nextChar + maskDisplay.slice(charData.displayIndex + 1);\n }\n // Cut off all mask characters after the last filled format value\n if (!maskChar) {\n maskDisplay = maskDisplay.slice(0, lastDisplayIndex + 1);\n }\n return maskDisplay;\n}\n/**\n * Get the next format index right of or at a specified index.\n * If no index exists, returns the rightmost index.\n * @param maskCharData\n * @param index\n */\nexport function getRightFormatIndex(maskCharData, index) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= index) {\n return maskCharData[i].displayIndex;\n }\n }\n return maskCharData[maskCharData.length - 1].displayIndex;\n}\n/**\n * Get the next format index left of a specified index.\n * If no index exists, returns the leftmost index.\n * @param maskCharData\n * @param index\n */\nexport function getLeftFormatIndex(maskCharData, index) {\n for (var i = maskCharData.length - 1; i >= 0; i--) {\n if (maskCharData[i].displayIndex < index) {\n return maskCharData[i].displayIndex;\n }\n }\n return maskCharData[0].displayIndex;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n */\nexport function clearRange(maskCharData, selectionStart, selectionCount) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n if (maskCharData[i].displayIndex >= selectionStart + selectionCount) {\n break;\n }\n maskCharData[i].value = undefined;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes the input character at or after a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearNext(maskCharData, selectionStart) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n maskCharData[i].value = undefined;\n break;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes the input character before a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearPrev(maskCharData, selectionStart) {\n for (var i = maskCharData.length - 1; i >= 0; i--) {\n if (maskCharData[i].displayIndex < selectionStart) {\n maskCharData[i].value = undefined;\n break;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * Modifies the maskCharData inplace with the passed string and returns the display index of the\n * next format character after the inserted string.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n * @return The displayIndex of the next format character\n */\nexport function insertString(maskCharData, selectionStart, newString) {\n var stringIndex = 0;\n var nextIndex = 0;\n var isStringInserted = false;\n // Iterate through _maskCharData finding values with a displayIndex after the specified range start\n for (var i = 0; i < maskCharData.length && stringIndex < newString.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n isStringInserted = true;\n nextIndex = maskCharData[i].displayIndex;\n // Find the next character in the newString that matches the format\n while (stringIndex < newString.length) {\n // If the character matches the format regexp, set the maskCharData to the new character\n if (maskCharData[i].format.test(newString.charAt(stringIndex))) {\n maskCharData[i].value = newString.charAt(stringIndex++);\n // Set the nextIndex to the display index of the next mask format character.\n if (i + 1 < maskCharData.length) {\n nextIndex = maskCharData[i + 1].displayIndex;\n }\n else {\n nextIndex++;\n }\n break;\n }\n stringIndex++;\n }\n }\n }\n return isStringInserted ? nextIndex : selectionStart;\n}\n//# sourceMappingURL=inputMask.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { TextField } from '../TextField';\nimport { initializeComponentRef, KeyCodes } from '../../../Utilities';\nimport { clearNext, clearPrev, clearRange, DEFAULT_MASK_FORMAT_CHARS, getLeftFormatIndex, getMaskDisplay, getRightFormatIndex, insertString, parseMask, } from './inputMask';\nexport var DEFAULT_MASK_CHAR = '_';\nvar MaskedTextField = /** @class */ (function (_super) {\n __extends(MaskedTextField, _super);\n function MaskedTextField(props) {\n var _this = _super.call(this, props) || this;\n _this._textField = React.createRef();\n _this._onFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n _this._isFocused = true;\n // Move the cursor position to the leftmost unfilled position\n for (var i = 0; i < _this._maskCharData.length; i++) {\n if (!_this._maskCharData[i].value) {\n _this.setState({\n maskCursorPosition: _this._maskCharData[i].displayIndex,\n });\n break;\n }\n }\n };\n _this._onBlur = function (event) {\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n _this._isFocused = false;\n _this._moveCursorOnMouseUp = true;\n };\n _this._onMouseDown = function (event) {\n if (_this.props.onMouseDown) {\n _this.props.onMouseDown(event);\n }\n if (!_this._isFocused) {\n _this._moveCursorOnMouseUp = true;\n }\n };\n _this._onMouseUp = function (event) {\n if (_this.props.onMouseUp) {\n _this.props.onMouseUp(event);\n }\n // Move the cursor on mouseUp after focusing the textField\n if (_this._moveCursorOnMouseUp) {\n _this._moveCursorOnMouseUp = false;\n // Move the cursor position to the rightmost unfilled position\n for (var i = 0; i < _this._maskCharData.length; i++) {\n if (!_this._maskCharData[i].value) {\n _this.setState({\n maskCursorPosition: _this._maskCharData[i].displayIndex,\n });\n break;\n }\n }\n }\n };\n _this._onInputChange = function (ev, value) {\n var textField = _this._textField.current;\n if (_this._changeSelectionData === null && textField) {\n _this._changeSelectionData = {\n changeType: 'default',\n selectionStart: textField.selectionStart !== null ? textField.selectionStart : -1,\n selectionEnd: textField.selectionEnd !== null ? textField.selectionEnd : -1,\n };\n }\n if (!_this._changeSelectionData) {\n return;\n }\n var displayValue = _this.state.displayValue;\n // The initial value of cursorPos does not matter\n var cursorPos = 0;\n var _a = _this._changeSelectionData, changeType = _a.changeType, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n if (changeType === 'textPasted') {\n var charsSelected = selectionEnd - selectionStart;\n var charCount = value.length + charsSelected - displayValue.length;\n var startPos = selectionStart;\n var pastedString = value.substr(startPos, charCount);\n // Clear any selected characters\n if (charsSelected) {\n _this._maskCharData = clearRange(_this._maskCharData, selectionStart, charsSelected);\n }\n cursorPos = insertString(_this._maskCharData, startPos, pastedString);\n }\n else if (changeType === 'delete' || changeType === 'backspace') {\n // isDel is true If the characters are removed LTR, otherwise RTL\n var isDel = changeType === 'delete';\n var charCount = selectionEnd - selectionStart;\n if (charCount) {\n // charCount is > 0 if range was deleted\n _this._maskCharData = clearRange(_this._maskCharData, selectionStart, charCount);\n cursorPos = getRightFormatIndex(_this._maskCharData, selectionStart);\n }\n else {\n // If charCount === 0, there was no selection and a single character was deleted\n if (isDel) {\n _this._maskCharData = clearNext(_this._maskCharData, selectionStart);\n cursorPos = getRightFormatIndex(_this._maskCharData, selectionStart);\n }\n else {\n _this._maskCharData = clearPrev(_this._maskCharData, selectionStart);\n cursorPos = getLeftFormatIndex(_this._maskCharData, selectionStart);\n }\n }\n }\n else if (value.length > displayValue.length) {\n // This case is if the user added characters\n var charCount = value.length - displayValue.length;\n var startPos = selectionEnd - charCount;\n var enteredString = value.substr(startPos, charCount);\n cursorPos = insertString(_this._maskCharData, startPos, enteredString);\n }\n else if (value.length <= displayValue.length) {\n /**\n * This case is reached only if the user has selected a block of 1 or more\n * characters and input a character replacing the characters they've selected.\n */\n var charCount = 1;\n var selectCount = displayValue.length + charCount - value.length;\n var startPos = selectionEnd - charCount;\n var enteredString = value.substr(startPos, charCount);\n // Clear the selected range\n _this._maskCharData = clearRange(_this._maskCharData, startPos, selectCount);\n // Insert the printed character\n cursorPos = insertString(_this._maskCharData, startPos, enteredString);\n }\n _this._changeSelectionData = null;\n var newValue = getMaskDisplay(_this.props.mask, _this._maskCharData, _this.props.maskChar);\n _this.setState({\n displayValue: newValue,\n maskCursorPosition: cursorPos,\n });\n // Perform onChange after input has been processed. Return value is expected to be the displayed text\n if (_this.props.onChange) {\n _this.props.onChange(ev, newValue);\n }\n };\n _this._onKeyDown = function (event) {\n var current = _this._textField.current;\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(event);\n }\n _this._changeSelectionData = null;\n if (current && current.value) {\n var keyCode = event.keyCode, ctrlKey = event.ctrlKey, metaKey = event.metaKey;\n // Ignore ctrl and meta keydown\n if (ctrlKey || metaKey) {\n return;\n }\n // On backspace or delete, store the selection and the keyCode\n if (keyCode === KeyCodes.backspace || keyCode === KeyCodes.del) {\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n // Check if backspace or delete press is valid.\n if (!(keyCode === KeyCodes.backspace && selectionEnd && selectionEnd > 0) &&\n !(keyCode === KeyCodes.del && selectionStart !== null && selectionStart < current.value.length)) {\n return;\n }\n _this._changeSelectionData = {\n changeType: keyCode === KeyCodes.backspace ? 'backspace' : 'delete',\n selectionStart: selectionStart !== null ? selectionStart : -1,\n selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n };\n }\n }\n };\n _this._onPaste = function (event) {\n if (_this.props.onPaste) {\n _this.props.onPaste(event);\n }\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n // Store the paste selection range\n _this._changeSelectionData = {\n changeType: 'textPasted',\n selectionStart: selectionStart !== null ? selectionStart : -1,\n selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n };\n };\n initializeComponentRef(_this);\n // Translate mask into charData\n _this._maskCharData = parseMask(props.mask, props.maskFormat);\n // If an initial value is provided, use it to populate the format chars\n props.value !== undefined && _this.setValue(props.value);\n _this._isFocused = false;\n _this._moveCursorOnMouseUp = false;\n _this.state = {\n displayValue: getMaskDisplay(props.mask, _this._maskCharData, props.maskChar),\n };\n return _this;\n }\n MaskedTextField.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {\n if (newProps.mask !== this.props.mask || newProps.value !== this.props.value) {\n this._maskCharData = parseMask(newProps.mask, newProps.maskFormat);\n newProps.value !== undefined && this.setValue(newProps.value);\n this.setState({\n displayValue: getMaskDisplay(newProps.mask, this._maskCharData, newProps.maskChar),\n });\n }\n };\n MaskedTextField.prototype.componentDidUpdate = function () {\n // Move the cursor to the start of the mask format on update\n if (this._isFocused && this.state.maskCursorPosition !== undefined && this._textField.current) {\n this._textField.current.setSelectionRange(this.state.maskCursorPosition, this.state.maskCursorPosition);\n }\n };\n MaskedTextField.prototype.render = function () {\n return (React.createElement(TextField, __assign({}, this.props, { onFocus: this._onFocus, onBlur: this._onBlur, onMouseDown: this._onMouseDown, onMouseUp: this._onMouseUp, onChange: this._onInputChange, onKeyDown: this._onKeyDown, onPaste: this._onPaste, value: this.state.displayValue || '', componentRef: this._textField })));\n };\n Object.defineProperty(MaskedTextField.prototype, \"value\", {\n /**\n * @returns The value of all filled format characters or undefined if not all format characters are filled\n */\n get: function () {\n var value = '';\n for (var i = 0; i < this._maskCharData.length; i++) {\n if (!this._maskCharData[i].value) {\n return undefined;\n }\n value += this._maskCharData[i].value;\n }\n return value;\n },\n enumerable: true,\n configurable: true\n });\n MaskedTextField.prototype.setValue = function (newValue) {\n var valueIndex = 0;\n var charDataIndex = 0;\n while (valueIndex < newValue.length && charDataIndex < this._maskCharData.length) {\n // Test if the next character in the new value fits the next format character\n var testVal = newValue[valueIndex];\n if (this._maskCharData[charDataIndex].format.test(testVal)) {\n this._maskCharData[charDataIndex].value = testVal;\n charDataIndex++;\n }\n valueIndex++;\n }\n };\n MaskedTextField.prototype.focus = function () {\n var current = this._textField.current;\n current && current.focus();\n };\n MaskedTextField.prototype.blur = function () {\n var current = this._textField.current;\n current && current.blur();\n };\n MaskedTextField.prototype.select = function () {\n var current = this._textField.current;\n current && current.select();\n };\n MaskedTextField.prototype.setSelectionStart = function (value) {\n var current = this._textField.current;\n current && current.setSelectionStart(value);\n };\n MaskedTextField.prototype.setSelectionEnd = function (value) {\n var current = this._textField.current;\n current && current.setSelectionEnd(value);\n };\n MaskedTextField.prototype.setSelectionRange = function (start, end) {\n var current = this._textField.current;\n current && current.setSelectionRange(start, end);\n };\n Object.defineProperty(MaskedTextField.prototype, \"selectionStart\", {\n get: function () {\n var current = this._textField.current;\n return current && current.selectionStart !== null ? current.selectionStart : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextField.prototype, \"selectionEnd\", {\n get: function () {\n var current = this._textField.current;\n return current && current.selectionEnd ? current.selectionEnd : -1;\n },\n enumerable: true,\n configurable: true\n });\n MaskedTextField.defaultProps = {\n maskChar: DEFAULT_MASK_CHAR,\n maskFormat: DEFAULT_MASK_FORMAT_CHARS,\n };\n return MaskedTextField;\n}(React.Component));\nexport { MaskedTextField };\n//# sourceMappingURL=MaskedTextField.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { Async, DelayedRender, classNamesFunction, getId, getNativeProps, getWindow, initializeComponentRef, inputProperties, isControlled, isIE11, textAreaProperties, warn, warnControlledUsage, warnMutuallyExclusive, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_STATE_VALUE = '';\nvar COMPONENT_NAME = 'TextField';\nvar REVEAL_ICON_NAME = 'RedEye';\nvar HIDE_ICON_NAME = 'Hide';\nvar TextFieldBase = /** @class */ (function (_super) {\n __extends(TextFieldBase, _super);\n function TextFieldBase(props) {\n var _this = _super.call(this, props) || this;\n _this._textElement = React.createRef();\n _this._onFocus = function (ev) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n _this.setState({ isFocused: true }, function () {\n if (_this.props.validateOnFocusIn) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onBlur = function (ev) {\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n _this.setState({ isFocused: false }, function () {\n if (_this.props.validateOnFocusOut) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required;\n // IProcessedStyleSet definition requires casting for what Label expects as its styles prop\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n if (label) {\n return (React.createElement(Label, { required: required, htmlFor: _this._id, styles: labelStyles, disabled: props.disabled, id: _this._labelId }, props.label));\n }\n return null;\n };\n _this._onRenderDescription = function (props) {\n if (props.description) {\n return React.createElement(\"span\", { className: _this._classNames.description }, props.description);\n }\n return null;\n };\n _this._onRevealButtonClick = function (event) {\n _this.setState(function (prevState) { return ({ isRevealingPassword: !prevState.isRevealingPassword }); });\n };\n _this._onInputChange = function (event) {\n // Previously, we needed to call both onInput and onChange due to some weird IE/React issues,\n // which have *probably* been fixed now:\n // - https://github.com/microsoft/fluentui/issues/744 (likely fixed)\n // - https://github.com/microsoft/fluentui/issues/824 (confirmed fixed)\n // TODO (Fabric 8?) - Switch to calling only onChange. This switch is pretty disruptive for\n // tests (ours and maybe consumers' too), so it seemed best to do the switch in a major bump.\n var element = event.target;\n var value = element.value;\n // Ignore this event if the value is undefined (in case one of the IE bugs comes back)\n if (value === undefined || value === _this._lastChangeValue) {\n return;\n }\n _this._lastChangeValue = value;\n // This is so developers can access the event properties in asynchronous callbacks\n // https://reactjs.org/docs/events.html#event-pooling\n event.persist();\n var isSameValue;\n _this.setState(function (prevState, props) {\n var prevValue = _getValue(props, prevState) || '';\n isSameValue = value === prevValue;\n // Avoid doing unnecessary work when the value has not changed.\n if (isSameValue) {\n return null;\n }\n // ONLY if this is an uncontrolled component, update the displayed value.\n // (Controlled components must update the `value` prop from `onChange`.)\n return _this._isControlled ? null : { uncontrolledValue: value };\n }, function () {\n // If the value actually changed, call onChange (for either controlled or uncontrolled)\n var onChange = _this.props.onChange;\n if (!isSameValue && onChange) {\n onChange(event, value);\n }\n });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n errorMessage: 'onGetErrorMessage',\n });\n }\n _this._fallbackId = getId(COMPONENT_NAME);\n _this._descriptionId = getId(COMPONENT_NAME + 'Description');\n _this._labelId = getId(COMPONENT_NAME + 'Label');\n _this._warnControlledUsage();\n var _a = props.defaultValue, defaultValue = _a === void 0 ? DEFAULT_STATE_VALUE : _a;\n if (typeof defaultValue === 'number') {\n // This isn't allowed per the props, but happens anyway.\n defaultValue = String(defaultValue);\n }\n _this.state = {\n uncontrolledValue: _this._isControlled ? undefined : defaultValue,\n isFocused: false,\n errorMessage: '',\n };\n _this._delayedValidate = _this._async.debounce(_this._validate, _this.props.deferredValidationTime);\n _this._lastValidation = 0;\n return _this;\n }\n Object.defineProperty(TextFieldBase.prototype, \"value\", {\n /**\n * Gets the current value of the text field.\n */\n get: function () {\n return _getValue(this.props, this.state);\n },\n enumerable: true,\n configurable: true\n });\n TextFieldBase.prototype.componentDidMount = function () {\n this._adjustInputHeight();\n if (this.props.validateOnLoad) {\n this._validate(this.value);\n }\n };\n TextFieldBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n TextFieldBase.prototype.getSnapshotBeforeUpdate = function (prevProps, prevState) {\n return {\n selection: [this.selectionStart, this.selectionEnd],\n };\n };\n TextFieldBase.prototype.componentDidUpdate = function (prevProps, prevState, snapshot) {\n var props = this.props;\n var _a = (snapshot || {}).selection, selection = _a === void 0 ? [null, null] : _a;\n var start = selection[0], end = selection[1];\n if (!!prevProps.multiline !== !!props.multiline && prevState.isFocused) {\n // The text field has just changed between single- and multi-line, so we need to reset focus\n // and selection/cursor.\n this.focus();\n if (start !== null && end !== null && start >= 0 && end >= 0) {\n this.setSelectionRange(start, end);\n }\n }\n var prevValue = _getValue(prevProps, prevState);\n var value = this.value;\n if (prevValue !== value) {\n // Handle controlled/uncontrolled warnings and status\n this._warnControlledUsage(prevProps);\n // Clear error message if needed\n // TODO: is there any way to do this without an extra render?\n if (this.state.errorMessage && !props.errorMessage) {\n this.setState({ errorMessage: '' });\n }\n // Adjust height if needed based on new value\n this._adjustInputHeight();\n // Reset the record of the last value seen by a change/input event\n this._lastChangeValue = undefined;\n // TODO: #5875 added logic to trigger validation in componentWillReceiveProps and other places.\n // This seems a bit odd and hard to integrate with the new approach.\n // (Starting to think we should just put the validation logic in a separate wrapper component...?)\n if (_shouldValidateAllChanges(props)) {\n this._delayedValidate(value);\n }\n }\n };\n TextFieldBase.prototype.render = function () {\n var _a = this.props, borderless = _a.borderless, className = _a.className, disabled = _a.disabled, iconProps = _a.iconProps, inputClassName = _a.inputClassName, label = _a.label, multiline = _a.multiline, required = _a.required, underlined = _a.underlined, prefix = _a.prefix, resizable = _a.resizable, suffix = _a.suffix, theme = _a.theme, styles = _a.styles, autoAdjustHeight = _a.autoAdjustHeight, canRevealPassword = _a.canRevealPassword, type = _a.type, _b = _a.onRenderPrefix, onRenderPrefix = _b === void 0 ? this._onRenderPrefix : _b, _c = _a.onRenderSuffix, onRenderSuffix = _c === void 0 ? this._onRenderSuffix : _c, _d = _a.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = _a.onRenderDescription, onRenderDescription = _e === void 0 ? this._onRenderDescription : _e;\n var _f = this.state, isFocused = _f.isFocused, isRevealingPassword = _f.isRevealingPassword;\n var errorMessage = this._errorMessage;\n var hasRevealButton = !!canRevealPassword && type === 'password' && _browserNeedsRevealButton();\n var classNames = (this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n focused: isFocused,\n required: required,\n multiline: multiline,\n hasLabel: !!label,\n hasErrorMessage: !!errorMessage,\n borderless: borderless,\n resizable: resizable,\n hasIcon: !!iconProps,\n underlined: underlined,\n inputClassName: inputClassName,\n autoAdjustHeight: autoAdjustHeight,\n hasRevealButton: hasRevealButton,\n }));\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.wrapper },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(\"div\", { className: classNames.fieldGroup },\n (prefix !== undefined || this.props.onRenderPrefix) && (React.createElement(\"div\", { className: classNames.prefix }, onRenderPrefix(this.props, this._onRenderPrefix))),\n multiline ? this._renderTextArea() : this._renderInput(),\n iconProps && React.createElement(Icon, __assign({ className: classNames.icon }, iconProps)),\n hasRevealButton && (\n // Explicitly set type=\"button\" since the default button type within a form is \"submit\"\n React.createElement(\"button\", { className: classNames.revealButton, onClick: this._onRevealButtonClick, type: \"button\" },\n React.createElement(\"span\", { className: classNames.revealSpan },\n React.createElement(Icon, { className: classNames.revealIcon, iconName: isRevealingPassword ? HIDE_ICON_NAME : REVEAL_ICON_NAME })))),\n (suffix !== undefined || this.props.onRenderSuffix) && (React.createElement(\"div\", { className: classNames.suffix }, onRenderSuffix(this.props, this._onRenderSuffix))))),\n this._isDescriptionAvailable && (React.createElement(\"span\", { id: this._descriptionId },\n onRenderDescription(this.props, this._onRenderDescription),\n errorMessage && (React.createElement(\"div\", { role: \"alert\" },\n React.createElement(DelayedRender, null,\n React.createElement(\"p\", { className: classNames.errorMessage },\n React.createElement(\"span\", { \"data-automation-id\": \"error-message\" }, errorMessage)))))))));\n };\n /**\n * Sets focus on the text field\n */\n TextFieldBase.prototype.focus = function () {\n if (this._textElement.current) {\n this._textElement.current.focus();\n }\n };\n /**\n * Blurs the text field.\n */\n TextFieldBase.prototype.blur = function () {\n if (this._textElement.current) {\n this._textElement.current.blur();\n }\n };\n /**\n * Selects the text field\n */\n TextFieldBase.prototype.select = function () {\n if (this._textElement.current) {\n this._textElement.current.select();\n }\n };\n /**\n * Sets the selection start of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionStart = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionStart = value;\n }\n };\n /**\n * Sets the selection end of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionEnd = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionEnd = value;\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"selectionStart\", {\n /**\n * Gets the selection start of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionStart : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"selectionEnd\", {\n /**\n * Gets the selection end of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionEnd : -1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start - Index of the start of the selection.\n * @param end - Index of the end of the selection.\n */\n TextFieldBase.prototype.setSelectionRange = function (start, end) {\n if (this._textElement.current) {\n this._textElement.current.setSelectionRange(start, end);\n }\n };\n TextFieldBase.prototype._warnControlledUsage = function (prevProps) {\n // Show warnings if props are being used in an invalid way\n warnControlledUsage({\n componentId: this._id,\n componentName: COMPONENT_NAME,\n props: this.props,\n oldProps: prevProps,\n valueProp: 'value',\n defaultValueProp: 'defaultValue',\n onChangeProp: 'onChange',\n readOnlyProp: 'readOnly',\n });\n if (this.props.value === null && !this._hasWarnedNullValue) {\n this._hasWarnedNullValue = true;\n warn(\"Warning: 'value' prop on '\" + COMPONENT_NAME + \"' should not be null. Consider using an \" +\n 'empty string to clear the component or undefined to indicate an uncontrolled component.');\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"_id\", {\n /** Returns `props.id` if available, or a fallback if not. */\n get: function () {\n return this.props.id || this._fallbackId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"_isControlled\", {\n get: function () {\n return isControlled(this.props, 'value');\n },\n enumerable: true,\n configurable: true\n });\n TextFieldBase.prototype._onRenderPrefix = function (props) {\n var prefix = props.prefix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, prefix);\n };\n TextFieldBase.prototype._onRenderSuffix = function (props) {\n var suffix = props.suffix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, suffix);\n };\n Object.defineProperty(TextFieldBase.prototype, \"_errorMessage\", {\n /**\n * Current error message from either `props.errorMessage` or the result of `props.onGetErrorMessage`.\n *\n * - If there is no validation error or we have not validated the input value, errorMessage is an empty string.\n * - If we have done the validation and there is validation error, errorMessage is the validation error message.\n */\n get: function () {\n var _a = this.props.errorMessage, errorMessage = _a === void 0 ? this.state.errorMessage : _a;\n return errorMessage || '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"_isDescriptionAvailable\", {\n /**\n * If a custom description render function is supplied then treat description as always available.\n * Otherwise defer to the presence of description or error message text.\n */\n get: function () {\n var props = this.props;\n return !!(props.onRenderDescription || props.description || this._errorMessage);\n },\n enumerable: true,\n configurable: true\n });\n TextFieldBase.prototype._renderTextArea = function () {\n var textAreaProps = getNativeProps(this.props, textAreaProperties, ['defaultValue']);\n var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);\n return (React.createElement(\"textarea\", __assign({ id: this._id }, textAreaProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], \"aria-invalid\": !!this._errorMessage, \"aria-label\": this.props.ariaLabel, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));\n };\n TextFieldBase.prototype._renderInput = function () {\n var inputProps = __assign(__assign({ type: this.state.isRevealingPassword ? 'text' : this.props.type || 'text', id: this._id }, getNativeProps(this.props, inputProperties, ['defaultValue', 'type'])), { 'aria-labelledby': this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined), ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, 'aria-label': this.props.ariaLabel, 'aria-describedby': this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], 'aria-invalid': !!this._errorMessage, onFocus: this._onFocus, onBlur: this._onBlur });\n var defaultRender = function (updatedInputProps) {\n return React.createElement(\"input\", __assign({}, updatedInputProps));\n };\n var onRenderInput = this.props.onRenderInput || defaultRender;\n return onRenderInput(inputProps, defaultRender);\n };\n TextFieldBase.prototype._validate = function (value) {\n var _this = this;\n // In case _validate is called again while validation promise is executing\n if (this._latestValidateValue === value && _shouldValidateAllChanges(this.props)) {\n return;\n }\n this._latestValidateValue = value;\n var onGetErrorMessage = this.props.onGetErrorMessage;\n var result = onGetErrorMessage && onGetErrorMessage(value || '');\n if (result !== undefined) {\n if (typeof result === 'string' || !('then' in result)) {\n this.setState({ errorMessage: result });\n this._notifyAfterValidate(value, result);\n }\n else {\n var currentValidation_1 = ++this._lastValidation;\n result.then(function (errorMessage) {\n if (currentValidation_1 === _this._lastValidation) {\n _this.setState({ errorMessage: errorMessage });\n }\n _this._notifyAfterValidate(value, errorMessage);\n });\n }\n }\n else {\n this._notifyAfterValidate(value, '');\n }\n };\n TextFieldBase.prototype._notifyAfterValidate = function (value, errorMessage) {\n if (value === this.value && this.props.onNotifyValidationResult) {\n this.props.onNotifyValidationResult(errorMessage, value);\n }\n };\n TextFieldBase.prototype._adjustInputHeight = function () {\n if (this._textElement.current && this.props.autoAdjustHeight && this.props.multiline) {\n var textField = this._textElement.current;\n textField.style.height = '';\n textField.style.height = textField.scrollHeight + 'px';\n }\n };\n TextFieldBase.defaultProps = {\n resizable: true,\n deferredValidationTime: 200,\n validateOnLoad: true,\n canRevealPassword: false,\n };\n return TextFieldBase;\n}(React.Component));\nexport { TextFieldBase };\n/** Get the value from the given state and props (converting from number to string if needed) */\nfunction _getValue(props, state) {\n var _a = props.value, value = _a === void 0 ? state.uncontrolledValue : _a;\n if (typeof value === 'number') {\n // not allowed per typings, but happens anyway\n return String(value);\n }\n return value;\n}\n/**\n * If `validateOnFocusIn` or `validateOnFocusOut` is true, validation should run **only** on that event.\n * Otherwise, validation should run on every change.\n */\nfunction _shouldValidateAllChanges(props) {\n return !(props.validateOnFocusIn || props.validateOnFocusOut);\n}\n// Only calculate this once across all TextFields, since will stay the same\nvar __browserNeedsRevealButton;\nfunction _browserNeedsRevealButton() {\n var _a;\n if (typeof __browserNeedsRevealButton !== 'boolean') {\n var win = getWindow();\n if ((_a = win) === null || _a === void 0 ? void 0 : _a.navigator) {\n // Edge, Chromium Edge\n var isEdge = /Edg/.test(win.navigator.userAgent || '');\n __browserNeedsRevealButton = !(isIE11() || isEdge);\n }\n else {\n __browserNeedsRevealButton = true;\n }\n }\n return __browserNeedsRevealButton;\n}\n//# sourceMappingURL=TextField.base.js.map","import { styled } from '../../Utilities';\nimport { TextFieldBase } from './TextField.base';\nimport { getStyles } from './TextField.styles';\nexport var TextField = styled(TextFieldBase, getStyles, undefined, {\n scope: 'TextField',\n});\n//# sourceMappingURL=TextField.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, getGlobalClassNames, getInputFocusStyle, HighContrastSelector, normalize, getPlaceholderStyles, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar globalClassNames = {\n root: 'ms-TextField',\n description: 'ms-TextField-description',\n errorMessage: 'ms-TextField-errorMessage',\n field: 'ms-TextField-field',\n fieldGroup: 'ms-TextField-fieldGroup',\n prefix: 'ms-TextField-prefix',\n suffix: 'ms-TextField-suffix',\n wrapper: 'ms-TextField-wrapper',\n revealButton: 'ms-TextField-reveal',\n multiline: 'ms-TextField--multiline',\n borderless: 'ms-TextField--borderless',\n underlined: 'ms-TextField--underlined',\n unresizable: 'ms-TextField--unresizable',\n required: 'is-required',\n disabled: 'is-disabled',\n active: 'is-active',\n};\nfunction getLabelStyles(props) {\n var underlined = props.underlined, disabled = props.disabled, focused = props.focused, theme = props.theme;\n var palette = theme.palette, fonts = theme.fonts;\n return function () {\n var _a;\n return ({\n root: [\n underlined &&\n disabled && {\n color: palette.neutralTertiary,\n },\n underlined && {\n fontSize: fonts.medium.fontSize,\n marginRight: 8,\n paddingLeft: 12,\n paddingRight: 0,\n lineHeight: '22px',\n height: 32,\n },\n underlined &&\n focused && {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n height: 31,\n },\n _a),\n },\n ],\n });\n };\n}\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, className = props.className, disabled = props.disabled, focused = props.focused, required = props.required, multiline = props.multiline, hasLabel = props.hasLabel, borderless = props.borderless, underlined = props.underlined, hasIcon = props.hasIcon, resizable = props.resizable, hasErrorMessage = props.hasErrorMessage, inputClassName = props.inputClassName, autoAdjustHeight = props.autoAdjustHeight, hasRevealButton = props.hasRevealButton;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var fieldPrefixSuffix = {\n // Suffix/Prefix are not editable so the disabled slot perfectly fits.\n background: semanticColors.disabledBackground,\n color: !disabled ? semanticColors.inputPlaceholderText : semanticColors.disabledText,\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n lineHeight: 1,\n whiteSpace: 'nowrap',\n flexShrink: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _a),\n };\n // placeholder style constants\n var placeholderStyles = [\n fonts.medium,\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n required && classNames.required,\n disabled && classNames.disabled,\n focused && classNames.active,\n multiline && classNames.multiline,\n borderless && classNames.borderless,\n underlined && classNames.underlined,\n normalize,\n {\n position: 'relative',\n },\n className,\n ],\n wrapper: [\n classNames.wrapper,\n underlined && [\n {\n display: 'flex',\n borderBottom: \"1px solid \" + (!hasErrorMessage ? semanticColors.inputBorder : semanticColors.errorText),\n width: '100%',\n },\n disabled && {\n borderBottomColor: semanticColors.disabledBackground,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n !disabled && {\n selectors: {\n ':hover': {\n borderBottomColor: !hasErrorMessage ? semanticColors.inputBorderHovered : semanticColors.errorText,\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ borderBottomColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n focused && [\n {\n position: 'relative',\n },\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, 0, 'borderBottom'),\n ],\n ],\n ],\n fieldGroup: [\n classNames.fieldGroup,\n normalize,\n {\n border: \"1px solid \" + semanticColors.inputBorder,\n borderRadius: effects.roundedCorner2,\n background: semanticColors.inputBackground,\n cursor: 'text',\n height: 32,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n position: 'relative',\n },\n multiline && {\n minHeight: '60px',\n height: 'auto',\n display: 'flex',\n },\n !focused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: semanticColors.inputBorderHovered,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n focused &&\n !underlined &&\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, effects.roundedCorner2),\n disabled && {\n borderColor: semanticColors.disabledBackground,\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _g),\n cursor: 'default',\n },\n borderless && {\n border: 'none',\n },\n borderless &&\n focused && {\n border: 'none',\n selectors: {\n ':after': {\n border: 'none',\n },\n },\n },\n underlined && {\n flex: '1 1 0px',\n border: 'none',\n textAlign: 'left',\n },\n underlined &&\n disabled && {\n backgroundColor: 'transparent',\n },\n hasErrorMessage &&\n !underlined && {\n borderColor: semanticColors.errorText,\n selectors: {\n '&:hover': {\n borderColor: semanticColors.errorText,\n },\n },\n },\n !hasLabel &&\n required && {\n selectors: (_h = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _h[HighContrastSelector] = {\n selectors: {\n ':before': {\n color: 'WindowText',\n right: -14,\n },\n },\n },\n _h),\n },\n ],\n field: [\n fonts.medium,\n classNames.field,\n normalize,\n {\n borderRadius: 0,\n border: 'none',\n background: 'none',\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n padding: '0 8px',\n width: '100%',\n minWidth: 0,\n textOverflow: 'ellipsis',\n outline: 0,\n selectors: (_j = {\n '&:active, &:focus, &:hover': { outline: 0 },\n '::-ms-clear': {\n display: 'none',\n }\n },\n _j[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _j),\n },\n getPlaceholderStyles(placeholderStyles),\n multiline &&\n !resizable && [\n classNames.unresizable,\n {\n resize: 'none',\n },\n ],\n multiline && {\n minHeight: 'inherit',\n lineHeight: 17,\n flexGrow: 1,\n paddingTop: 6,\n paddingBottom: 6,\n overflow: 'auto',\n width: '100%',\n },\n multiline &&\n autoAdjustHeight && {\n overflow: 'hidden',\n },\n hasIcon &&\n !hasRevealButton && {\n paddingRight: 24,\n },\n multiline &&\n hasIcon && {\n paddingRight: 40,\n },\n disabled && [\n {\n backgroundColor: semanticColors.disabledBackground,\n color: semanticColors.disabledText,\n borderColor: semanticColors.disabledBackground,\n },\n getPlaceholderStyles(disabledPlaceholderStyles),\n ],\n underlined && {\n textAlign: 'left',\n },\n focused &&\n !borderless && {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n paddingLeft: 11,\n paddingRight: 11,\n },\n _k),\n },\n focused &&\n multiline &&\n !borderless && {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n paddingTop: 4,\n },\n _l),\n },\n inputClassName,\n ],\n icon: [\n multiline && {\n paddingRight: 24,\n alignItems: 'flex-end',\n },\n {\n pointerEvents: 'none',\n position: 'absolute',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n disabled && {\n color: semanticColors.disabledText,\n },\n ],\n description: [\n classNames.description,\n {\n color: semanticColors.bodySubtext,\n fontSize: fonts.xSmall.fontSize,\n },\n ],\n errorMessage: [\n classNames.errorMessage,\n AnimationClassNames.slideDownIn20,\n fonts.small,\n {\n color: semanticColors.errorText,\n margin: 0,\n paddingTop: 5,\n display: 'flex',\n alignItems: 'center',\n },\n ],\n prefix: [classNames.prefix, fieldPrefixSuffix],\n suffix: [classNames.suffix, fieldPrefixSuffix],\n revealButton: [\n classNames.revealButton,\n 'ms-Button',\n 'ms-Button--icon',\n {\n height: 30,\n width: 32,\n border: 'none',\n padding: '0px 4px',\n backgroundColor: 'transparent',\n color: semanticColors.link,\n selectors: {\n ':hover': {\n outline: 0,\n color: semanticColors.primaryButtonBackgroundHovered,\n backgroundColor: semanticColors.buttonBackgroundHovered,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _m),\n },\n ':focus': { outline: 0 },\n },\n },\n hasIcon && {\n marginRight: 28,\n },\n ],\n revealSpan: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n revealIcon: {\n margin: '0px 4px',\n pointerEvents: 'none',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n subComponentStyles: {\n label: getLabelStyles(props),\n },\n };\n}\n//# sourceMappingURL=TextField.styles.js.map","import { createComponent } from '../../Foundation';\nimport { TextView } from './Text.view';\nimport { TextStyles as styles } from './Text.styles';\nexport var Text = createComponent(TextView, {\n displayName: 'Text',\n styles: styles,\n});\nexport default Text;\n//# sourceMappingURL=Text.js.map","export var TextStyles = function (props, theme) {\n var as = props.as, className = props.className, block = props.block, nowrap = props.nowrap, variant = props.variant;\n var fonts = theme.fonts;\n var variantObject = fonts[variant || 'medium'];\n return {\n root: [\n theme.fonts.medium,\n {\n display: block ? (as === 'td' ? 'table-cell' : 'block') : 'inline',\n fontFamily: variantObject.fontFamily,\n fontSize: variantObject.fontSize,\n fontWeight: variantObject.fontWeight,\n color: variantObject.color,\n mozOsxFontSmoothing: variantObject.MozOsxFontSmoothing,\n webkitFontSmoothing: variantObject.WebkitFontSmoothing,\n },\n nowrap && {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Text.styles.js.map","import { __assign, __rest } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport * as React from 'react';\nimport { withSlots, getSlots } from '../../Foundation';\nimport { getNativeProps, htmlElementProperties } from '../../Utilities';\nexport var TextView = function (props) {\n if (React.Children.count(props.children) === 0) {\n return null;\n }\n var block = props.block, className = props.className, _a = props.as, RootType = _a === void 0 ? 'span' : _a, variant = props.variant, nowrap = props.nowrap, rest = __rest(props, [\"block\", \"className\", \"as\", \"variant\", \"nowrap\"]);\n var Slots = getSlots(props, {\n root: RootType,\n });\n return withSlots(Slots.root, __assign({}, getNativeProps(rest, htmlElementProperties)));\n};\n//# sourceMappingURL=Text.view.js.map","import { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { isValidShade, getShade, getBackgroundShade } from '../../utilities/color/shades';\nimport { format } from '../../Utilities';\nvar ThemeGenerator = /** @class */ (function () {\n function ThemeGenerator() {\n }\n /**\n * Sets an IThemeSlotRule to the given color and cascades it to the rest of the theme, updating other IThemeSlotRules\n * in the theme that inherit from that color.\n * @param isInverted - whether it's a dark theme or not, which affects the algorithm used to generate shades\n * @param isCustomization - should be true only if it's a user action, and indicates overwriting the slot's\n * inheritance (if any)\n * @param overwriteCustomColor - A slot could have a generated color based on its inheritance rules (isCustomized\n * is false), or a custom color based on user input (isCustomized is true). This bool tells us whether to override\n * existing customized colors.\n */\n ThemeGenerator.setSlot = function (rule, color, isInverted, isCustomization, overwriteCustomColor) {\n if (isInverted === void 0) { isInverted = false; }\n if (isCustomization === void 0) { isCustomization = false; }\n if (overwriteCustomColor === void 0) { overwriteCustomColor = true; }\n if (!rule.color && rule.value) {\n // not a color rule\n return;\n }\n if (overwriteCustomColor) {\n var colorAsIColor = void 0;\n if (typeof color === 'string') {\n colorAsIColor = getColorFromString(color); // the ! is a lie here but we'll verify it in the next line\n if (!colorAsIColor) {\n throw new Error('color is invalid in setSlot(): ' + color);\n }\n }\n else {\n colorAsIColor = color;\n }\n ThemeGenerator._setSlot(rule, colorAsIColor, isInverted, isCustomization, overwriteCustomColor);\n }\n else if (rule.color) {\n ThemeGenerator._setSlot(rule, rule.color, isInverted, isCustomization, overwriteCustomColor);\n }\n };\n /**\n * Sets the color of each slot based on its rule. Slots that don't inherit must have a color already.\n * If this completes without error, then the theme is ready to use. (All slots will have a color.)\n * setSlot() can be called before this, but this must be called before getThemeAs*().\n * Does not override colors of rules where isCustomized is true (i.e. doesn't override existing customizations).\n */\n ThemeGenerator.insureSlots = function (slotRules, isInverted) {\n // Get all the \"root\" rules, the ones which don't inherit. Then \"set\" them to trigger updating dependent slots.\n for (var ruleName in slotRules) {\n if (slotRules.hasOwnProperty(ruleName)) {\n var rule = slotRules[ruleName];\n if (!rule.inherits && !rule.value) {\n if (!rule.color) {\n throw new Error('A color slot rule that does not inherit must provide its own color.');\n }\n ThemeGenerator._setSlot(rule, rule.color, isInverted, false, false);\n }\n }\n }\n };\n /**\n * Gets the JSON-formatted blob that describes the theme, usable with the REST request endpoints:\n * ```\n * { [theme slot name as string] : [color as string],\n * \"tokenName\": \"#f00f00\",\n * \"tokenName2\": \"#ba2ba2\",\n * ... }\n * ```\n */\n ThemeGenerator.getThemeAsJson = function (slotRules) {\n var theme = {};\n for (var ruleName in slotRules) {\n if (slotRules.hasOwnProperty(ruleName)) {\n var rule = slotRules[ruleName];\n theme[rule.name] = rule.color ? rule.color.str : rule.value || '';\n }\n }\n return theme;\n };\n /**\n * Gets code-formatted load theme blob that can be copy and pasted.\n * Only used for the old theme designer, where loadTheme usage is acceptable,\n * unlike in the new theme designer.\n */\n ThemeGenerator.getThemeAsCode = function (slotRules) {\n var output = 'loadTheme({\\n palette: {\\n';\n return ThemeGenerator._makeRemainingCode(output, slotRules);\n };\n /**\n * Gets code-formatted load theme blob, specifically for the new theme designer,\n * aka.ms/themedesigner. Shouldn't use loadTheme like the old theme designer since it's deprecated.\n * We want to use the theme object from createTheme and use the Customizations.applySettings API instead.\n */\n ThemeGenerator.getThemeAsCodeWithCreateTheme = function (slotRules) {\n var output = 'const myTheme = createTheme({\\n palette: {\\n';\n return ThemeGenerator._makeRemainingCode(output, slotRules);\n };\n /**\n * Gets the theme as a list of SASS variables that can be used in code\n * ```\n * $tokenName: \"[theme:tokenName, default:#f00f00]\";\n * $tokenName2: \"[theme:tokenName2, default:#ba2ba2]\";\n * ...\n * ```\n */\n ThemeGenerator.getThemeAsSass = function (slotRules) {\n var sassVarTemplate = '${0}Color: \"[theme: {1}, default: {2}]\";\\n';\n var output = '';\n for (var ruleName in slotRules) {\n if (slotRules.hasOwnProperty(ruleName)) {\n var rule = slotRules[ruleName];\n var camelCasedName = rule.name.charAt(0).toLowerCase() + rule.name.slice(1);\n output += format(sassVarTemplate, camelCasedName, camelCasedName, rule.color ? rule.color.str : rule.value || '');\n }\n }\n return output;\n };\n /**\n * Gets the theme formatted for PowerShell scripts\n * ```\n * @{\n * \"tokenName\" = \"#f00f00\";\n * \"tokenName2\" = \"#ba2ba2\";\n * ...\n * }\n * ```\n */\n ThemeGenerator.getThemeForPowerShell = function (slotRules) {\n var psVarTemplate = '\"{0}\" = \"{1}\";\\n';\n var output = '';\n for (var ruleName in slotRules) {\n if (slotRules.hasOwnProperty(ruleName)) {\n var rule = slotRules[ruleName];\n if (rule.value) {\n // skip this one, it's not a color\n continue;\n }\n var camelCasedName = rule.name.charAt(0).toLowerCase() + rule.name.slice(1);\n var outputColor = rule.color ? '#' + rule.color.hex : rule.value || '';\n // powershell endpoint uses the RGBA format\n if (rule.color && rule.color.a && rule.color.a !== 100) {\n outputColor += String(rule.color.a.toString(16));\n }\n output += format(psVarTemplate, camelCasedName, outputColor);\n }\n }\n return '@{\\n' + output + '}';\n };\n /**\n * Sets the given slot's color to the appropriate color, shading it if necessary.\n * Then, iterates through all other rules (that are this rule's dependents) to update them accordingly.\n * @param isCustomization - If true, it's a user-provided color, which should be to that raw color.\n * If false, the rule it's inheriting from changed, so updated using asShade.\n */\n ThemeGenerator._setSlot = function (rule, color, isInverted, isCustomization, overwriteCustomColor) {\n if (overwriteCustomColor === void 0) { overwriteCustomColor = true; }\n if (!rule.color && rule.value) {\n // not a color rule\n return;\n }\n if (overwriteCustomColor || !rule.color || !rule.isCustomized || !rule.inherits) {\n // set the rule's color under these conditions\n if ((overwriteCustomColor || !rule.isCustomized) &&\n !isCustomization &&\n rule.inherits &&\n isValidShade(rule.asShade)) {\n // it's inheriting by shade\n if (rule.isBackgroundShade) {\n rule.color = getBackgroundShade(color, rule.asShade, isInverted);\n }\n else {\n rule.color = getShade(color, rule.asShade, isInverted);\n }\n rule.isCustomized = false;\n }\n else {\n rule.color = color;\n rule.isCustomized = true;\n }\n // then update dependent colors\n for (var _i = 0, _a = rule.dependentRules; _i < _a.length; _i++) {\n var ruleToUpdate = _a[_i];\n ThemeGenerator._setSlot(ruleToUpdate, rule.color, isInverted, false, overwriteCustomColor);\n }\n }\n };\n /**\n * Makes the rest of the code that's used for the load theme blob in the exported codepens of\n * both the older sharepoint-specific theme designer and the new theme designer. Takes in\n * theme rules and converts them to format fitting a list of palette colors and their values.\n * Resulting output looks like:\n * ```\n * const _theme = createTheme({\n * palette: {\n * themePrimary: '#0078d4',\n * themeLighterAlt: '#f3f9fd',\n * ...\n * }});\n * ```\n * The first line is loadTheme instead of createTheme for the old sharepoint theme designer.\n */\n ThemeGenerator._makeRemainingCode = function (output, slotRules) {\n var attributeTemplate = \" {0}: '{1}',\\n\";\n for (var ruleName in slotRules) {\n if (slotRules.hasOwnProperty(ruleName)) {\n var rule = slotRules[ruleName];\n var camelCasedName = rule.name.charAt(0).toLowerCase() + rule.name.slice(1);\n var outputColor = rule.color ? '#' + rule.color.hex : rule.value || '';\n output += format(attributeTemplate, camelCasedName, outputColor);\n }\n }\n output += ' }});';\n return output;\n };\n return ThemeGenerator;\n}());\nexport { ThemeGenerator };\n//# sourceMappingURL=ThemeGenerator.js.map","import { Shade } from '../../utilities/color/shades';\nimport { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { mapEnumByName } from '../../Utilities';\n/* This is the set of rules for our default theme.\n We start with three base slots, defining the background, foreground (text), and\n primary color (sometimes called theme color). Each Fabric slot is generated from\n shades (or tints) of one of those three, creating the Fabric palette.\n Then, we have semantic slots, the new thing intended to eventually replace the\n Fabric palette. The semantic slots inherit from the Fabric palette. */\n/* The most minimal set of slots we start with. All other ones can be generated based on rules.\n * This is not so much an enum as it is a list. The enum is used to insure \"type\"-safety.\n * For now, we are only dealing with color. */\nexport var BaseSlots;\n(function (BaseSlots) {\n BaseSlots[BaseSlots[\"primaryColor\"] = 0] = \"primaryColor\";\n BaseSlots[BaseSlots[\"backgroundColor\"] = 1] = \"backgroundColor\";\n BaseSlots[BaseSlots[\"foregroundColor\"] = 2] = \"foregroundColor\";\n})(BaseSlots || (BaseSlots = {}));\n/* The original Fabric palette, only for back-compat. */\nexport var FabricSlots;\n(function (FabricSlots) {\n FabricSlots[FabricSlots[\"themePrimary\"] = 0] = \"themePrimary\";\n FabricSlots[FabricSlots[\"themeLighterAlt\"] = 1] = \"themeLighterAlt\";\n FabricSlots[FabricSlots[\"themeLighter\"] = 2] = \"themeLighter\";\n FabricSlots[FabricSlots[\"themeLight\"] = 3] = \"themeLight\";\n FabricSlots[FabricSlots[\"themeTertiary\"] = 4] = \"themeTertiary\";\n FabricSlots[FabricSlots[\"themeSecondary\"] = 5] = \"themeSecondary\";\n FabricSlots[FabricSlots[\"themeDarkAlt\"] = 6] = \"themeDarkAlt\";\n FabricSlots[FabricSlots[\"themeDark\"] = 7] = \"themeDark\";\n FabricSlots[FabricSlots[\"themeDarker\"] = 8] = \"themeDarker\";\n FabricSlots[FabricSlots[\"neutralLighterAlt\"] = 9] = \"neutralLighterAlt\";\n FabricSlots[FabricSlots[\"neutralLighter\"] = 10] = \"neutralLighter\";\n FabricSlots[FabricSlots[\"neutralLight\"] = 11] = \"neutralLight\";\n FabricSlots[FabricSlots[\"neutralQuaternaryAlt\"] = 12] = \"neutralQuaternaryAlt\";\n FabricSlots[FabricSlots[\"neutralQuaternary\"] = 13] = \"neutralQuaternary\";\n FabricSlots[FabricSlots[\"neutralTertiaryAlt\"] = 14] = \"neutralTertiaryAlt\";\n FabricSlots[FabricSlots[\"neutralTertiary\"] = 15] = \"neutralTertiary\";\n // deprecated: neutralSecondaryAlt, // BaseSlots.foregroundColor, Shade[Shade.Shade4]);\n FabricSlots[FabricSlots[\"neutralSecondary\"] = 16] = \"neutralSecondary\";\n FabricSlots[FabricSlots[\"neutralPrimaryAlt\"] = 17] = \"neutralPrimaryAlt\";\n FabricSlots[FabricSlots[\"neutralPrimary\"] = 18] = \"neutralPrimary\";\n FabricSlots[FabricSlots[\"neutralDark\"] = 19] = \"neutralDark\";\n FabricSlots[FabricSlots[\"black\"] = 20] = \"black\";\n FabricSlots[FabricSlots[\"white\"] = 21] = \"white\";\n})(FabricSlots || (FabricSlots = {}));\n/* List of all the semantic color slots for this theme.\n * This is not so much an enum as it is a list. The enum is used to insure \"type\"-safety. */\nexport var SemanticColorSlots;\n(function (SemanticColorSlots) {\n SemanticColorSlots[SemanticColorSlots[\"bodyBackground\"] = 0] = \"bodyBackground\";\n SemanticColorSlots[SemanticColorSlots[\"bodyText\"] = 1] = \"bodyText\";\n SemanticColorSlots[SemanticColorSlots[\"disabledBackground\"] = 2] = \"disabledBackground\";\n SemanticColorSlots[SemanticColorSlots[\"disabledText\"] = 3] = \"disabledText\";\n})(SemanticColorSlots || (SemanticColorSlots = {}));\nexport function themeRulesStandardCreator() {\n var slotRules = {};\n /*** BASE COLORS and their SHADES */\n // iterate through each base slot and make the SlotRules for those\n mapEnumByName(BaseSlots, function (baseSlot) {\n // first make the SlotRule for the unshaded base Color\n slotRules[baseSlot] = {\n name: baseSlot,\n isCustomized: true,\n dependentRules: [],\n };\n // then make a rule for each shade of this base color, but skip unshaded\n mapEnumByName(Shade, function (shadeName, shadeValue) {\n if (shadeName === Shade[Shade.Unshaded]) {\n return;\n }\n var inherits = slotRules[baseSlot];\n var thisSlotRule = {\n name: baseSlot + shadeName,\n inherits: slotRules[baseSlot],\n asShade: shadeValue,\n isCustomized: false,\n isBackgroundShade: baseSlot === BaseSlots[BaseSlots.backgroundColor] ? true : false,\n dependentRules: [],\n };\n slotRules[baseSlot + shadeName] = thisSlotRule;\n inherits.dependentRules.push(thisSlotRule);\n return undefined;\n });\n return undefined;\n });\n // set default colors for the base colors\n slotRules[BaseSlots[BaseSlots.primaryColor]].color = getColorFromString('#0078d4');\n slotRules[BaseSlots[BaseSlots.backgroundColor]].color = getColorFromString('#ffffff');\n slotRules[BaseSlots[BaseSlots.foregroundColor]].color = getColorFromString('#323130');\n function _makeFabricSlotRule(slotName, inheritedBase, inheritedShade, isBackgroundShade) {\n if (isBackgroundShade === void 0) { isBackgroundShade = false; }\n var inherits = slotRules[BaseSlots[inheritedBase]];\n var thisSlotRule = {\n name: slotName,\n inherits: inherits,\n asShade: inheritedShade,\n isCustomized: false,\n isBackgroundShade: isBackgroundShade,\n dependentRules: [],\n };\n slotRules[slotName] = thisSlotRule;\n inherits.dependentRules.push(thisSlotRule);\n }\n _makeFabricSlotRule(FabricSlots[FabricSlots.themePrimary], BaseSlots.primaryColor, Shade.Unshaded);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeLighterAlt], BaseSlots.primaryColor, Shade.Shade1);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeLighter], BaseSlots.primaryColor, Shade.Shade2);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeLight], BaseSlots.primaryColor, Shade.Shade3);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeTertiary], BaseSlots.primaryColor, Shade.Shade4);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeSecondary], BaseSlots.primaryColor, Shade.Shade5);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeDarkAlt], BaseSlots.primaryColor, Shade.Shade6);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeDark], BaseSlots.primaryColor, Shade.Shade7);\n _makeFabricSlotRule(FabricSlots[FabricSlots.themeDarker], BaseSlots.primaryColor, Shade.Shade8);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralLighterAlt], BaseSlots.backgroundColor, Shade.Shade1, true);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralLighter], BaseSlots.backgroundColor, Shade.Shade2, true);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralLight], BaseSlots.backgroundColor, Shade.Shade3, true);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralQuaternaryAlt], BaseSlots.backgroundColor, Shade.Shade4, true);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralQuaternary], BaseSlots.backgroundColor, Shade.Shade5, true);\n // bg6 or fg2\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralTertiaryAlt], BaseSlots.backgroundColor, Shade.Shade6, true);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralTertiary], BaseSlots.foregroundColor, Shade.Shade3);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralSecondary], BaseSlots.foregroundColor, Shade.Shade4);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralPrimaryAlt], BaseSlots.foregroundColor, Shade.Shade5);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralPrimary], BaseSlots.foregroundColor, Shade.Unshaded);\n _makeFabricSlotRule(FabricSlots[FabricSlots.neutralDark], BaseSlots.foregroundColor, Shade.Shade7);\n _makeFabricSlotRule(FabricSlots[FabricSlots.black], BaseSlots.foregroundColor, Shade.Shade8);\n _makeFabricSlotRule(FabricSlots[FabricSlots.white], BaseSlots.backgroundColor, Shade.Unshaded, true);\n slotRules[FabricSlots[FabricSlots.neutralLighterAlt]].color = getColorFromString('#faf9f8');\n slotRules[FabricSlots[FabricSlots.neutralLighter]].color = getColorFromString('#f3f2f1');\n slotRules[FabricSlots[FabricSlots.neutralLight]].color = getColorFromString('#edebe9');\n slotRules[FabricSlots[FabricSlots.neutralQuaternaryAlt]].color = getColorFromString('#e1dfdd');\n slotRules[FabricSlots[FabricSlots.neutralDark]].color = getColorFromString('#201f1e');\n slotRules[FabricSlots[FabricSlots.neutralTertiaryAlt]].color = getColorFromString('#c8c6c4');\n slotRules[FabricSlots[FabricSlots.black]].color = getColorFromString('#000000');\n slotRules[FabricSlots[FabricSlots.neutralDark]].color = getColorFromString('#201f1e');\n slotRules[FabricSlots[FabricSlots.neutralPrimaryAlt]].color = getColorFromString('#3b3a39');\n slotRules[FabricSlots[FabricSlots.neutralSecondary]].color = getColorFromString('#605e5c');\n slotRules[FabricSlots[FabricSlots.neutralTertiary]].color = getColorFromString('#a19f9d');\n slotRules[FabricSlots[FabricSlots.white]].color = getColorFromString('#ffffff');\n slotRules[FabricSlots[FabricSlots.themeDarker]].color = getColorFromString('#004578');\n slotRules[FabricSlots[FabricSlots.themeDark]].color = getColorFromString('#005a9e');\n slotRules[FabricSlots[FabricSlots.themeDarkAlt]].color = getColorFromString('#106ebe');\n slotRules[FabricSlots[FabricSlots.themeSecondary]].color = getColorFromString('#2b88d8');\n slotRules[FabricSlots[FabricSlots.themeTertiary]].color = getColorFromString('#71afe5');\n slotRules[FabricSlots[FabricSlots.themeLight]].color = getColorFromString('#c7e0f4');\n slotRules[FabricSlots[FabricSlots.themeLighter]].color = getColorFromString('#deecf9');\n slotRules[FabricSlots[FabricSlots.themeLighterAlt]].color = getColorFromString('#eff6fc');\n slotRules[FabricSlots[FabricSlots.neutralLighterAlt]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralLighter]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralLight]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralQuaternaryAlt]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralDark]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralTertiaryAlt]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.black]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralDark]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralPrimaryAlt]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralSecondary]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.neutralTertiary]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.white]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeDarker]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeDark]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeDarkAlt]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themePrimary]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeSecondary]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeTertiary]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeLight]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeLighter]].isCustomized = true;\n slotRules[FabricSlots[FabricSlots.themeLighterAlt]].isCustomized = true;\n return slotRules;\n}\n//# sourceMappingURL=ThemeRulesStandard.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction, getId, inputProperties, getNativeProps, warnDeprecations, warnMutuallyExclusive, FocusRects, } from '../../Utilities';\nimport { Label } from '../../Label';\nimport { KeytipData } from '../../KeytipData';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Toggle';\nvar ToggleBase = /** @class */ (function (_super) {\n __extends(ToggleBase, _super);\n function ToggleBase(props) {\n var _this = _super.call(this, props) || this;\n _this._toggleButton = React.createRef();\n _this._onClick = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, disabled = _a.disabled, checkedProp = _a.checked, onChange = _a.onChange, onChanged = _a.onChanged, onClick = _a.onClick;\n var checked = _this.state.checked;\n if (!disabled) {\n // Only update the state if the user hasn't provided it.\n if (checkedProp === undefined) {\n _this.setState({\n checked: !checked,\n });\n }\n if (onChange) {\n onChange(ev, !checked);\n }\n if (onChanged) {\n onChanged(!checked);\n }\n if (onClick) {\n onClick(ev);\n }\n }\n };\n initializeComponentRef(_this);\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n checked: 'defaultChecked',\n });\n warnDeprecations(COMPONENT_NAME, props, {\n onAriaLabel: 'ariaLabel',\n offAriaLabel: undefined,\n onChanged: 'onChange',\n });\n _this.state = {\n checked: !!(props.checked || props.defaultChecked),\n };\n _this._id = getId('Toggle');\n return _this;\n }\n ToggleBase.getDerivedStateFromProps = function (nextProps, prevState) {\n if (nextProps.checked === undefined) {\n return null;\n }\n return {\n checked: !!nextProps.checked,\n };\n };\n Object.defineProperty(ToggleBase.prototype, \"checked\", {\n /**\n * Gets the current checked state of the toggle.\n */\n get: function () {\n return this.state.checked;\n },\n enumerable: true,\n configurable: true\n });\n ToggleBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'div' : _b, className = _a.className, theme = _a.theme, disabled = _a.disabled, keytipProps = _a.keytipProps, id = _a.id, label = _a.label, ariaLabel = _a.ariaLabel, \n /* eslint-disable deprecation/deprecation */\n onAriaLabel = _a.onAriaLabel, offAriaLabel = _a.offAriaLabel, \n /* eslint-enable deprecation/deprecation */\n offText = _a.offText, onText = _a.onText, styles = _a.styles, inlineLabel = _a.inlineLabel;\n var checked = this.state.checked;\n var stateText = checked ? onText : offText;\n var badAriaLabel = checked ? onAriaLabel : offAriaLabel;\n var toggleNativeProps = getNativeProps(this.props, inputProperties, ['defaultChecked']);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n checked: checked,\n inlineLabel: inlineLabel,\n onOffMissing: !onText && !offText,\n });\n var toggleId = id || this._id;\n var labelId = toggleId + \"-label\";\n var stateTextId = toggleId + \"-stateText\";\n // The following properties take priority for what Narrator should read:\n // 1. ariaLabel\n // 2. onAriaLabel (if checked) or offAriaLabel (if not checked)\n // 3. label AND stateText, if existent\n var labelledById = undefined;\n if (!ariaLabel && !badAriaLabel) {\n if (label) {\n labelledById = labelId;\n }\n if (stateText) {\n labelledById = labelledById ? labelledById + \" \" + stateTextId : stateTextId;\n }\n }\n var ariaRole = this.props.role ? this.props.role : 'switch';\n var renderPill = function (keytipAttributes) {\n if (keytipAttributes === void 0) { keytipAttributes = {}; }\n return (React.createElement(\"button\", __assign({}, toggleNativeProps, keytipAttributes, { className: classNames.pill, disabled: disabled, id: toggleId, type: \"button\", role: ariaRole, ref: _this._toggleButton, \"aria-disabled\": disabled, \"aria-checked\": checked, \"aria-label\": ariaLabel ? ariaLabel : badAriaLabel, \"data-is-focusable\": true, onChange: _this._noop, onClick: _this._onClick, \"aria-labelledby\": labelledById }),\n React.createElement(\"span\", { className: classNames.thumb })));\n };\n var pillContent = keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: toggleNativeProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return renderPill(keytipAttributes); })) : (renderPill());\n return (React.createElement(RootType, { className: classNames.root, hidden: toggleNativeProps.hidden },\n label && (React.createElement(Label, { htmlFor: toggleId, className: classNames.label, id: labelId }, label)),\n React.createElement(\"div\", { className: classNames.container },\n pillContent,\n stateText && (\n // This second \"htmlFor\" property is needed to allow the\n // toggle's stateText to also trigger a state change when clicked.\n React.createElement(Label, { htmlFor: toggleId, className: classNames.text, id: stateTextId }, stateText))),\n React.createElement(FocusRects, null)));\n };\n ToggleBase.prototype.focus = function () {\n if (this._toggleButton.current) {\n this._toggleButton.current.focus();\n }\n };\n ToggleBase.prototype._noop = function () {\n /* no-op */\n };\n return ToggleBase;\n}(React.Component));\nexport { ToggleBase };\n//# sourceMappingURL=Toggle.base.js.map","import { styled } from '../../Utilities';\nimport { ToggleBase } from './Toggle.base';\nimport { getStyles } from './Toggle.styles';\nexport var Toggle = styled(ToggleBase, getStyles, undefined, { scope: 'Toggle' });\n//# sourceMappingURL=Toggle.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getFocusStyle, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nvar DEFAULT_PILL_WIDTH = 40;\nvar DEFAULT_PILL_HEIGHT = 20;\nvar DEFAULT_THUMB_SIZE = 12;\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g;\n var theme = props.theme, className = props.className, disabled = props.disabled, checked = props.checked, inlineLabel = props.inlineLabel, onOffMissing = props.onOffMissing;\n var semanticColors = theme.semanticColors, palette = theme.palette;\n // Tokens\n var pillUncheckedBackground = semanticColors.bodyBackground;\n var pillCheckedBackground = semanticColors.inputBackgroundChecked;\n var pillCheckedHoveredBackground = semanticColors.inputBackgroundCheckedHovered;\n var thumbUncheckedHoveredBackground = palette.neutralDark;\n var pillCheckedDisabledBackground = semanticColors.disabledBodySubtext;\n var thumbBackground = semanticColors.smallInputBorder;\n var thumbCheckedBackground = semanticColors.inputForegroundChecked;\n var thumbDisabledBackground = semanticColors.disabledBodySubtext;\n var thumbCheckedDisabledBackground = semanticColors.disabledBackground;\n var pillBorderColor = semanticColors.smallInputBorder;\n var pillBorderHoveredColor = semanticColors.inputBorderHovered;\n var pillBorderDisabledColor = semanticColors.disabledBodySubtext;\n var textDisabledColor = semanticColors.disabledText;\n return {\n root: [\n 'ms-Toggle',\n checked && 'is-checked',\n !disabled && 'is-enabled',\n disabled && 'is-disabled',\n theme.fonts.medium,\n {\n marginBottom: '8px',\n },\n inlineLabel && {\n display: 'flex',\n alignItems: 'center',\n },\n className,\n ],\n label: [\n 'ms-Toggle-label',\n { display: 'inline-block' },\n disabled && {\n color: textDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n inlineLabel &&\n !onOffMissing && {\n marginRight: 16,\n },\n onOffMissing &&\n inlineLabel && {\n order: 1,\n marginLeft: 16,\n },\n inlineLabel && { wordBreak: 'break-all' },\n ],\n container: [\n 'ms-Toggle-innerContainer',\n {\n display: 'flex',\n position: 'relative',\n },\n ],\n pill: [\n 'ms-Toggle-background',\n getFocusStyle(theme, { inset: -3 }),\n {\n fontSize: '20px',\n boxSizing: 'border-box',\n width: DEFAULT_PILL_WIDTH,\n height: DEFAULT_PILL_HEIGHT,\n borderRadius: DEFAULT_PILL_HEIGHT / 2,\n transition: 'all 0.1s ease',\n border: \"1px solid \" + pillBorderColor,\n background: pillUncheckedBackground,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '0 3px',\n },\n !disabled && [\n !checked && {\n selectors: {\n ':hover': [\n {\n borderColor: pillBorderHoveredColor,\n },\n ],\n ':hover .ms-Toggle-thumb': [\n {\n backgroundColor: thumbUncheckedHoveredBackground,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n ],\n },\n },\n checked && [\n {\n background: pillCheckedBackground,\n borderColor: 'transparent',\n justifyContent: 'flex-end',\n },\n {\n selectors: (_c = {\n ':hover': [\n {\n backgroundColor: pillCheckedHoveredBackground,\n borderColor: 'transparent',\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _d),\n },\n ]\n },\n _c[HighContrastSelector] = __assign({ backgroundColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n ],\n ],\n disabled && [\n {\n cursor: 'default',\n },\n !checked && [\n {\n borderColor: pillBorderDisabledColor,\n },\n ],\n checked && [\n {\n backgroundColor: pillCheckedDisabledBackground,\n borderColor: 'transparent',\n justifyContent: 'flex-end',\n },\n ],\n ],\n !disabled && {\n selectors: {\n '&:hover': {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _e),\n },\n },\n },\n ],\n thumb: [\n 'ms-Toggle-thumb',\n {\n display: 'block',\n width: DEFAULT_THUMB_SIZE,\n height: DEFAULT_THUMB_SIZE,\n borderRadius: '50%',\n transition: 'all 0.1s ease',\n backgroundColor: thumbBackground,\n /* Border is added to handle high contrast mode for Firefox */\n borderColor: 'transparent',\n borderWidth: DEFAULT_THUMB_SIZE / 2,\n borderStyle: 'solid',\n boxSizing: 'border-box',\n },\n !disabled &&\n checked && [\n {\n backgroundColor: thumbCheckedBackground,\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n borderColor: 'Window',\n },\n _f),\n },\n ],\n disabled && [\n !checked && [\n {\n backgroundColor: thumbDisabledBackground,\n },\n ],\n checked && [\n {\n backgroundColor: thumbCheckedDisabledBackground,\n },\n ],\n ],\n ],\n text: [\n 'ms-Toggle-stateText',\n {\n selectors: {\n // Workaround: make rules more specific than Label rules.\n '&&': {\n padding: '0',\n margin: '0 8px',\n userSelect: 'none',\n fontWeight: FontWeights.regular,\n },\n },\n },\n disabled && {\n selectors: {\n '&&': {\n color: textDisabledColor,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n color: 'GrayText',\n },\n _g),\n },\n },\n },\n ],\n };\n};\n//# sourceMappingURL=Toggle.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n __extends(TooltipBase, _super);\n function TooltipBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderContent = function (props) {\n return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n };\n return _this;\n }\n TooltipBase.prototype.render = function () {\n var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className || (calloutProps && calloutProps.className),\n beakWidth: calloutProps && calloutProps.beakWidth,\n gapSpace: calloutProps && calloutProps.gapSpace,\n maxWidth: maxWidth,\n });\n return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n React.createElement(\"div\", { className: this._classNames.content, id: id, role: \"tooltip\", onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n };\n // Specify default props values\n TooltipBase.defaultProps = {\n directionalHint: DirectionalHint.topCenter,\n maxWidth: '364px',\n calloutProps: {\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n },\n };\n return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n // The math here is done to account for the 45 degree rotation of the beak\n // and sub-pixel rounding that differs across browsers, which is more noticeable when\n // the device pixel ratio is larger\n var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) + 1 / window.devicePixelRatio;\n return {\n root: [\n 'ms-Tooltip',\n theme.fonts.medium,\n AnimationClassNames.fadeIn200,\n {\n background: semanticColors.menuBackground,\n boxShadow: effects.elevation8,\n padding: '8px',\n maxWidth: maxWidth,\n selectors: {\n ':after': {\n content: \"''\",\n position: 'absolute',\n bottom: tooltipGapSpace,\n left: tooltipGapSpace,\n right: tooltipGapSpace,\n top: tooltipGapSpace,\n zIndex: 0,\n },\n },\n },\n className,\n ],\n content: [\n 'ms-Tooltip-content',\n fonts.small,\n {\n position: 'relative',\n zIndex: 1,\n color: semanticColors.menuItemText,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n overflow: 'hidden',\n },\n ],\n subText: [\n 'ms-Tooltip-subtext',\n {\n // Using inherit here to avoid unintentional global overrides of the <p> tag.\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n margin: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n /** 300 ms delay before showng the tooltip */\n TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n /** 500 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode, } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n __extends(TooltipHostBase, _super);\n // Constructor\n function TooltipHostBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._tooltipHost = React.createRef();\n _this._defaultTooltipId = getId('tooltip');\n _this.show = function () {\n _this._toggleTooltip(true);\n };\n _this.dismiss = function () {\n _this._hideTooltip();\n };\n _this._getTargetElement = function () {\n if (!_this._tooltipHost.current) {\n return undefined;\n }\n var overflowMode = _this.props.overflowMode;\n // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n // to the parent element, otherwise it might look off.\n if (overflowMode !== undefined) {\n switch (overflowMode) {\n case TooltipOverflowMode.Parent:\n return _this._tooltipHost.current.parentElement;\n case TooltipOverflowMode.Self:\n return _this._tooltipHost.current;\n }\n }\n return _this._tooltipHost.current;\n };\n // Show Tooltip\n _this._onTooltipMouseEnter = function (ev) {\n var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n if (overflowMode !== undefined) {\n var overflowElement = _this._getTargetElement();\n if (overflowElement && !hasOverflow(overflowElement)) {\n return;\n }\n }\n if (ev.target && portalContainsElement(ev.target, _this._getTargetElement())) {\n // Do not show tooltip when target is inside a portal relative to TooltipHost.\n return;\n }\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (delay !== TooltipDelay.zero) {\n var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n _this._openTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(true);\n }, delayTime);\n }\n else {\n _this._toggleTooltip(true);\n }\n };\n // Hide Tooltip\n _this._onTooltipMouseLeave = function (ev) {\n var closeDelay = _this.props.closeDelay;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (closeDelay) {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(false);\n }, closeDelay);\n }\n else {\n _this._toggleTooltip(false);\n }\n if (TooltipHostBase._currentVisibleTooltip === _this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n };\n _this._onTooltipKeyDown = function (ev) {\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n _this._hideTooltip();\n ev.stopPropagation();\n }\n };\n _this._clearDismissTimer = function () {\n _this._async.clearTimeout(_this._dismissTimerId);\n };\n _this._clearOpenTimer = function () {\n _this._async.clearTimeout(_this._openTimerId);\n };\n // Hide Tooltip\n _this._hideTooltip = function () {\n _this._clearOpenTimer();\n _this._clearDismissTimer();\n _this._toggleTooltip(false);\n };\n _this._toggleTooltip = function (isTooltipVisible) {\n if (_this.state.isTooltipVisible !== isTooltipVisible) {\n _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n }\n };\n _this._getDelayTime = function (delay) {\n switch (delay) {\n case TooltipDelay.medium:\n return 300;\n case TooltipDelay.long:\n return 500;\n default:\n return 0;\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n isAriaPlaceholderRendered: false,\n isTooltipVisible: false,\n };\n _this._async = new Async(_this);\n return _this;\n }\n // Render\n TooltipHostBase.prototype.render = function () {\n var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, _b = _a.setAriaDescribedBy, setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var isTooltipVisible = this.state.isTooltipVisible;\n var tooltipId = id || this._defaultTooltipId;\n var isContentPresent = !!(content ||\n (tooltipProps && tooltipProps.onRenderContent && tooltipProps.onRenderContent()));\n var showTooltip = isTooltipVisible && isContentPresent;\n var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && isContentPresent ? tooltipId : undefined;\n return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipMouseEnter }, { onBlurCapture: this._hideTooltip }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, \"aria-describedby\": ariaDescribedBy }),\n children,\n showTooltip && (React.createElement(Tooltip, __assign({ id: tooltipId + \"--tooltip\", content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n onDismiss: this._hideTooltip,\n onMouseEnter: this._onTooltipMouseEnter,\n onMouseLeave: this._onTooltipMouseLeave,\n }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id']), tooltipProps))),\n React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, content)));\n };\n TooltipHostBase.prototype.componentWillUnmount = function () {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n this._async.dispose();\n };\n TooltipHostBase.defaultProps = {\n delay: TooltipDelay.medium,\n };\n return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-TooltipHost',\n ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'inline',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n /** Only show tooltip if parent DOM element is overflowing */\n TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n /**\n * Only show tooltip if tooltip host's content is overflowing.\n * Note that this does not check the children for overflow, only the TooltipHost root.\n */\n TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".pickerText_883892a8{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid \" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";min-width:180px;min-height:30px}.pickerText_883892a8:hover{border-color:\" }, { \"theme\": \"inputBorderHovered\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.pickerText_883892a8.inputFocused_883892a8{position:relative;border-color:\" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}.pickerText_883892a8.inputFocused_883892a8:after{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;border:2px solid \" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.pickerText_883892a8.inputDisabled_883892a8{position:relative;border-color:GrayText}.pickerText_883892a8.inputDisabled_883892a8:after{pointer-events:none;content:'';position:absolute;left:0;top:0;bottom:0;right:0;background-color:Window}}.pickerInput_883892a8{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:0;padding:0 6px 0;-ms-flex-item-align:end;align-self:flex-end}.pickerItems_883892a8{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%}.screenReaderOnly_883892a8{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var pickerText = \"pickerText_883892a8\";\nexport var inputFocused = \"inputFocused_883892a8\";\nexport var inputDisabled = \"inputDisabled_883892a8\";\nexport var pickerInput = \"pickerInput_883892a8\";\nexport var pickerItems = \"pickerItems_883892a8\";\nexport var screenReaderOnly = \"screenReaderOnly_883892a8\";\n//# sourceMappingURL=BasePicker.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, KeyCodes, css, elementContains, getId, classNamesFunction, styled, initializeComponentRef, } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { Selection, SelectionZone, SelectionMode } from '../../utilities/selection/index';\nimport { Suggestions } from './Suggestions/Suggestions';\nimport { getStyles as suggestionsStyles } from './Suggestions/Suggestions.styles';\nimport { SuggestionsController } from './Suggestions/SuggestionsController';\nimport { ValidationState, } from './BasePicker.types';\nimport { Autofill } from '../Autofill/index';\nimport * as stylesImport from './BasePicker.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\n/**\n * Should be removed once new picker without inheritance is created\n */\nfunction getStyledSuggestions(suggestionsType) {\n return styled(suggestionsType, suggestionsStyles, undefined, {\n scope: 'Suggestions',\n });\n}\n/**\n * {@docCategory Pickers}\n */\nvar BasePicker = /** @class */ (function (_super) {\n __extends(BasePicker, _super);\n function BasePicker(basePickerProps) {\n var _this = _super.call(this, basePickerProps) || this;\n // Refs\n _this.root = React.createRef();\n _this.input = React.createRef();\n _this.focusZone = React.createRef();\n _this.suggestionElement = React.createRef();\n /**\n * @deprecated this is no longer necessary as typescript now supports generic elements\n */\n _this.SuggestionOfProperType = Suggestions;\n // eslint-disable-next-line deprecation/deprecation\n _this._styledSuggestions = getStyledSuggestions(_this.SuggestionOfProperType);\n _this.dismissSuggestions = function (ev) {\n var selectItemFunction = function () {\n var addItemOnDismiss = true;\n if (_this.props.onDismiss) {\n addItemOnDismiss = _this.props.onDismiss(ev, _this.suggestionStore.currentSuggestion ? _this.suggestionStore.currentSuggestion.item : undefined);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n // Select the first suggestion if one is available and permitted by onDismiss when user leaves.\n if (addItemOnDismiss !== false &&\n _this.canAddItems() &&\n _this.suggestionStore.hasSelectedSuggestion() &&\n _this.state.suggestedDisplayValue) {\n _this.addItemByIndex(0);\n }\n }\n };\n if (_this.currentPromise) {\n _this.currentPromise.then(function () { return selectItemFunction(); });\n }\n else {\n selectItemFunction();\n }\n _this.setState({ suggestionsVisible: false });\n };\n _this.refocusSuggestions = function (keyCode) {\n _this.resetFocus();\n if (_this.suggestionStore.suggestions && _this.suggestionStore.suggestions.length > 0) {\n if (keyCode === KeyCodes.up) {\n _this.suggestionStore.setSelectedSuggestion(_this.suggestionStore.suggestions.length - 1);\n }\n else if (keyCode === KeyCodes.down) {\n _this.suggestionStore.setSelectedSuggestion(0);\n }\n }\n };\n _this.onInputChange = function (value) {\n _this.updateValue(value);\n _this.setState({\n moreSuggestionsAvailable: true,\n isMostRecentlyUsedVisible: false,\n });\n };\n _this.onSuggestionClick = function (ev, item, index) {\n _this.addItemByIndex(index);\n };\n _this.onSuggestionRemove = function (ev, item, index) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(item);\n }\n _this.suggestionStore.removeSuggestion(index);\n };\n _this.onInputFocus = function (ev) {\n _this.selection.setAllSelected(false);\n // Only trigger all of the focus if this component isn't already focused.\n // For example when an item is selected or removed from the selected list it should be treated\n // as though the input is still focused.\n if (!_this.state.isFocused) {\n _this.setState({ isFocused: true });\n _this._userTriggeredSuggestions();\n if (_this.props.inputProps && _this.props.inputProps.onFocus) {\n _this.props.inputProps.onFocus(ev);\n }\n }\n };\n _this.onInputBlur = function (ev) {\n if (_this.props.inputProps && _this.props.inputProps.onBlur) {\n _this.props.inputProps.onBlur(ev);\n }\n };\n _this.onBlur = function (ev) {\n if (_this.state.isFocused) {\n // Only blur the entire component if an unrelated element gets focus.\n // Otherwise treat it as though it still has focus.\n // Do nothing if the blur is coming from something\n // inside the comboBox root or the comboBox menu since\n // it we are not really bluring from the whole comboBox\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = document.activeElement;\n }\n if (relatedTarget && !elementContains(_this.root.current, relatedTarget)) {\n _this.setState({ isFocused: false });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n }\n }\n };\n /**\n * Reveals suggestions any time the user clicks on the input element\n * without shifting focus.\n */\n _this.onClick = function (ev) {\n if (_this.props.inputProps !== undefined && _this.props.inputProps.onClick !== undefined) {\n _this.props.inputProps.onClick(ev);\n }\n // Only primary (left) clicks show suggestions.\n if (ev.button === 0) {\n _this._userTriggeredSuggestions();\n }\n };\n _this.onKeyDown = function (ev) {\n var keyCode = ev.which;\n switch (keyCode) {\n case KeyCodes.escape:\n if (_this.state.suggestionsVisible) {\n _this.setState({ suggestionsVisible: false });\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n case KeyCodes.tab:\n case KeyCodes.enter:\n if (_this.suggestionElement.current && _this.suggestionElement.current.hasSuggestedActionSelected()) {\n _this.suggestionElement.current.executeSelectedAction();\n }\n else if (!ev.shiftKey && _this.suggestionStore.hasSelectedSuggestion() && _this.state.suggestionsVisible) {\n _this.completeSuggestion();\n ev.preventDefault();\n ev.stopPropagation();\n }\n else {\n _this._completeGenericSuggestion();\n }\n break;\n case KeyCodes.backspace:\n if (!_this.props.disabled) {\n _this.onBackspace(ev);\n }\n ev.stopPropagation();\n break;\n case KeyCodes.del:\n if (!_this.props.disabled) {\n if (_this.input.current &&\n ev.target === _this.input.current.inputElement &&\n _this.state.suggestionsVisible &&\n _this.suggestionStore.currentIndex !== -1) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(_this.suggestionStore.currentSuggestion.item);\n }\n _this.suggestionStore.removeSuggestion(_this.suggestionStore.currentIndex);\n _this.forceUpdate();\n }\n else {\n _this.onBackspace(ev);\n }\n }\n ev.stopPropagation();\n break;\n case KeyCodes.up:\n if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.hasSuggestedAction() &&\n _this.suggestionStore.currentIndex === 0) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.suggestionElement.current.focusAboveSuggestions();\n _this.suggestionStore.deselectAllSuggestions();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionStore.previousSuggestion()) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.onSuggestionSelect();\n }\n }\n }\n }\n break;\n case KeyCodes.down:\n if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.hasSuggestedAction() &&\n _this.suggestionStore.currentIndex + 1 === _this.suggestionStore.suggestions.length) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.suggestionElement.current.focusBelowSuggestions();\n _this.suggestionStore.deselectAllSuggestions();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionStore.nextSuggestion()) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.onSuggestionSelect();\n }\n }\n }\n }\n break;\n }\n };\n _this.onItemChange = function (changedItem, index) {\n var items = _this.state.items;\n if (index >= 0) {\n var newItems = items;\n newItems[index] = changedItem;\n _this._updateSelectedItems(newItems);\n }\n };\n _this.onGetMoreResults = function () {\n _this.setState({\n isSearching: true,\n }, function () {\n if (_this.props.onGetMoreResults && _this.input.current) {\n var suggestions = _this.props.onGetMoreResults(_this.input.current.value, _this.state.items);\n var suggestionsArray = suggestions;\n var suggestionsPromiseLike = suggestions;\n if (Array.isArray(suggestionsArray)) {\n _this.updateSuggestions(suggestionsArray);\n _this.setState({ isSearching: false });\n }\n else if (suggestionsPromiseLike.then) {\n suggestionsPromiseLike.then(function (newSuggestions) {\n _this.updateSuggestions(newSuggestions);\n _this.setState({ isSearching: false });\n });\n }\n }\n else {\n _this.setState({ isSearching: false });\n }\n if (_this.input.current) {\n _this.input.current.focus();\n }\n _this.setState({\n moreSuggestionsAvailable: false,\n isResultsFooterVisible: true,\n });\n });\n };\n _this.completeSelection = function (item) {\n _this.addItem(item);\n _this.updateValue('');\n if (_this.input.current) {\n _this.input.current.clear();\n }\n _this.setState({ suggestionsVisible: false });\n };\n _this.addItemByIndex = function (index) {\n _this.completeSelection(_this.suggestionStore.getSuggestionAtIndex(index).item);\n };\n _this.addItem = function (item) {\n var processedItem = _this.props.onItemSelected\n ? _this.props.onItemSelected(item)\n : item;\n if (processedItem === null) {\n return;\n }\n var processedItemObject = processedItem;\n var processedItemPromiseLike = processedItem;\n if (processedItemPromiseLike && processedItemPromiseLike.then) {\n processedItemPromiseLike.then(function (resolvedProcessedItem) {\n var newItems = _this.state.items.concat([resolvedProcessedItem]);\n _this._updateSelectedItems(newItems);\n });\n }\n else {\n var newItems = _this.state.items.concat([processedItemObject]);\n _this._updateSelectedItems(newItems);\n }\n _this.setState({ suggestedDisplayValue: '' });\n };\n _this.removeItem = function (item, focusNextItem) {\n var items = _this.state.items;\n var index = items.indexOf(item);\n if (index >= 0) {\n var newItems = items.slice(0, index).concat(items.slice(index + 1));\n _this._updateSelectedItems(newItems);\n }\n };\n _this.removeItems = function (itemsToRemove) {\n var items = _this.state.items;\n var newItems = items.filter(function (item) { return itemsToRemove.indexOf(item) === -1; });\n _this._updateSelectedItems(newItems);\n };\n _this._shouldFocusZoneEnterInnerZone = function (ev) {\n // If suggestions are shown const up/down keys control them, otherwise allow them through to control the focusZone.\n if (_this.state.suggestionsVisible) {\n switch (ev.which) {\n case KeyCodes.up:\n case KeyCodes.down:\n return true;\n }\n }\n if (ev.which === KeyCodes.enter) {\n return true;\n }\n return false;\n };\n _this._onResolveSuggestions = function (updatedValue) {\n var suggestions = _this.props.onResolveSuggestions(updatedValue, _this.state.items);\n if (suggestions !== null) {\n _this.updateSuggestionsList(suggestions, updatedValue);\n }\n };\n _this._completeGenericSuggestion = function () {\n if (_this.props.onValidateInput &&\n _this.input.current &&\n _this.props.onValidateInput(_this.input.current.value) !== ValidationState.invalid &&\n _this.props.createGenericItem) {\n var itemToConvert = _this.props.createGenericItem(_this.input.current.value, _this.props.onValidateInput(_this.input.current.value));\n _this.suggestionStore.createGenericSuggestion(itemToConvert);\n _this.completeSuggestion();\n }\n };\n /**\n * This should be called when the user does something other than use text entry to trigger suggestions.\n *\n */\n _this._userTriggeredSuggestions = function () {\n if (!_this.state.suggestionsVisible) {\n var input = _this.input.current ? _this.input.current.value : '';\n if (!input) {\n _this.onEmptyInputFocus();\n }\n else {\n if (_this.suggestionStore.suggestions.length === 0) {\n _this._onResolveSuggestions(input);\n }\n else {\n _this.setState({\n isMostRecentlyUsedVisible: false,\n suggestionsVisible: true,\n });\n }\n }\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];\n _this._id = getId();\n _this._ariaMap = {\n selectedItems: \"selected-items-\" + _this._id,\n selectedSuggestionAlert: \"selected-suggestion-alert-\" + _this._id,\n suggestionList: \"suggestion-list-\" + _this._id,\n combobox: \"combobox-\" + _this._id,\n };\n _this.suggestionStore = new SuggestionsController();\n _this.selection = new Selection({ onSelectionChanged: function () { return _this.onSelectionChange(); } });\n _this.selection.setItems(items);\n _this.state = {\n items: items,\n suggestedDisplayValue: '',\n isMostRecentlyUsedVisible: false,\n moreSuggestionsAvailable: false,\n isFocused: false,\n isSearching: false,\n selectedIndices: [],\n };\n return _this;\n }\n BasePicker.getDerivedStateFromProps = function (newProps) {\n if (newProps.selectedItems) {\n return { items: newProps.selectedItems };\n }\n return null;\n };\n Object.defineProperty(BasePicker.prototype, \"items\", {\n get: function () {\n return this.state.items;\n },\n enumerable: true,\n configurable: true\n });\n BasePicker.prototype.componentDidMount = function () {\n this.selection.setItems(this.state.items);\n this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);\n };\n BasePicker.prototype.componentDidUpdate = function (oldProps, oldState) {\n if (this.state.items && this.state.items !== oldState.items) {\n var currentSelectedIndex = this.selection.getSelectedIndices()[0];\n this.selection.setItems(this.state.items);\n if (this.state.isFocused) {\n // Reset focus and selection so that selected item stays in sync if something\n // has been removed\n if (this.state.items.length < oldState.items.length) {\n this.selection.setIndexSelected(currentSelectedIndex, true, true);\n this.resetFocus(currentSelectedIndex);\n }\n }\n }\n };\n BasePicker.prototype.componentWillUnmount = function () {\n if (this.currentPromise) {\n this.currentPromise = undefined;\n }\n this._async.dispose();\n };\n BasePicker.prototype.focus = function () {\n if (this.focusZone.current) {\n this.focusZone.current.focus();\n }\n };\n BasePicker.prototype.focusInput = function () {\n if (this.input.current) {\n this.input.current.focus();\n }\n };\n BasePicker.prototype.completeSuggestion = function (forceComplete) {\n if (this.suggestionStore.hasSelectedSuggestion() && this.input.current) {\n this.completeSelection(this.suggestionStore.currentSuggestion.item);\n }\n else if (forceComplete) {\n this._completeGenericSuggestion();\n }\n };\n BasePicker.prototype.render = function () {\n var _a, _b;\n var _c = this.state, suggestedDisplayValue = _c.suggestedDisplayValue, isFocused = _c.isFocused, items = _c.items;\n var _d = this.props, className = _d.className, inputProps = _d.inputProps, disabled = _d.disabled, theme = _d.theme, styles = _d.styles;\n var suggestionsAvailable = this.state.suggestionsVisible ? this._ariaMap.suggestionList : '';\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from BasePicker class because it\n // might be used by consumers who created custom pickers from extending from\n // this base class and have not used the new 'styles' prop.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // for every other already existing picker variant (PeoplePicker, TagPicker)\n // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n isFocused: isFocused,\n disabled: disabled,\n inputClassName: inputProps && inputProps.className,\n })\n : {\n root: css('ms-BasePicker', className ? className : ''),\n text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused),\n itemsWrapper: legacyStyles.pickerItems,\n input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n screenReaderText: legacyStyles.screenReaderOnly,\n };\n return (React.createElement(\"div\", { ref: this.root, className: classNames.root, onKeyDown: this.onKeyDown, onBlur: this.onBlur },\n React.createElement(FocusZone, { componentRef: this.focusZone, direction: FocusZoneDirection.bidirectional, shouldEnterInnerZone: this._shouldFocusZoneEnterInnerZone },\n this.getSuggestionsAlert(classNames.screenReaderText),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.multiple },\n React.createElement(\"div\", { className: classNames.text },\n items.length > 0 && (React.createElement(\"span\", { id: this._ariaMap.selectedItems, className: classNames.itemsWrapper, role: 'list' }, this.renderItems())),\n this.canAddItems() && (React.createElement(Autofill, __assign({ spellCheck: false }, inputProps, { className: classNames.input, componentRef: this.input, id: ((_a = inputProps) === null || _a === void 0 ? void 0 : _a.id) ? inputProps.id : this._ariaMap.combobox, onClick: this.onClick, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": this.getActiveDescendant(), \"aria-controls\": suggestionsAvailable, \"aria-describedby\": items.length > 0 ? this._ariaMap.selectedItems : undefined, \"aria-expanded\": !!this.state.suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": this.props['aria-label'] || ((_b = inputProps) === null || _b === void 0 ? void 0 : _b['aria-label']), role: \"combobox\", disabled: disabled, onInputChange: this.props.onInputChange })))))),\n this.renderSuggestions()));\n };\n BasePicker.prototype.canAddItems = function () {\n var items = this.state.items;\n var itemLimit = this.props.itemLimit;\n return itemLimit === undefined || items.length < itemLimit;\n };\n BasePicker.prototype.renderSuggestions = function () {\n var StyledTypedSuggestions = this._styledSuggestions;\n return this.state.suggestionsVisible && this.input ? (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 5, target: this.input.current ? this.input.current.inputElement : undefined, onDismiss: this.dismissSuggestions, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintForRTL: DirectionalHint.bottomRightEdge }, this.props.pickerCalloutProps),\n React.createElement(StyledTypedSuggestions\n // Assumed to set in derived component's defaultProps\n , __assign({ \n // Assumed to set in derived component's defaultProps\n onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionElement, onGetMoreResults: this.onGetMoreResults, moreSuggestionsAvailable: this.state.moreSuggestionsAvailable, isLoading: this.state.suggestionsLoading, isSearching: this.state.isSearching, isMostRecentlyUsedVisible: this.state.isMostRecentlyUsedVisible, isResultsFooterVisible: this.state.isResultsFooterVisible, refocusSuggestions: this.refocusSuggestions, removeSuggestionAriaLabel: this.props.removeButtonAriaLabel, suggestionsListId: this._ariaMap.suggestionList, createGenericItem: this._completeGenericSuggestion }, this.props.pickerSuggestionsProps)))) : null;\n };\n BasePicker.prototype.renderItems = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, removeButtonAriaLabel = _a.removeButtonAriaLabel;\n var onRenderItem = this.props.onRenderItem;\n var _b = this.state, items = _b.items, selectedIndices = _b.selectedIndices;\n return items.map(function (item, index) {\n return onRenderItem({\n item: item,\n index: index,\n key: item.key ? item.key : index,\n selected: selectedIndices.indexOf(index) !== -1,\n onRemoveItem: function () { return _this.removeItem(item, true); },\n disabled: disabled,\n onItemChange: _this.onItemChange,\n removeButtonAriaLabel: removeButtonAriaLabel,\n });\n });\n };\n BasePicker.prototype.resetFocus = function (index) {\n var items = this.state.items;\n if (items.length && index >= 0) {\n var newEl = this.root.current &&\n this.root.current.querySelectorAll('[data-selection-index]')[Math.min(index, items.length - 1)];\n if (newEl && this.focusZone.current) {\n this.focusZone.current.focusElement(newEl);\n }\n }\n else if (!this.canAddItems()) {\n this.resetFocus(items.length - 1);\n }\n else {\n if (this.input.current) {\n this.input.current.focus();\n }\n }\n };\n BasePicker.prototype.onSuggestionSelect = function () {\n if (this.suggestionStore.currentSuggestion) {\n var currentValue = this.input.current ? this.input.current.value : '';\n var itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, currentValue);\n this.setState({ suggestedDisplayValue: itemValue });\n }\n };\n BasePicker.prototype.onSelectionChange = function () {\n this.setState({\n selectedIndices: this.selection.getSelectedIndices(),\n });\n };\n BasePicker.prototype.updateSuggestions = function (suggestions) {\n this.suggestionStore.updateSuggestions(suggestions, 0);\n this.forceUpdate();\n };\n /**\n * Only to be called when there is nothing in the input. Checks to see if the consumer has\n * provided a function to resolve suggestions\n */\n BasePicker.prototype.onEmptyInputFocus = function () {\n var emptyResolveSuggestions = this.props.onEmptyResolveSuggestions\n ? this.props.onEmptyResolveSuggestions\n : // eslint-disable-next-line deprecation/deprecation\n this.props.onEmptyInputFocus;\n // Only attempt to resolve suggestions if it exists\n if (emptyResolveSuggestions) {\n var suggestions = emptyResolveSuggestions(this.state.items);\n this.updateSuggestionsList(suggestions);\n this.setState({\n isMostRecentlyUsedVisible: true,\n suggestionsVisible: true,\n moreSuggestionsAvailable: false,\n });\n }\n };\n BasePicker.prototype.updateValue = function (updatedValue) {\n this._onResolveSuggestions(updatedValue);\n };\n BasePicker.prototype.updateSuggestionsList = function (suggestions, updatedValue) {\n var _this = this;\n var suggestionsArray = suggestions;\n var suggestionsPromiseLike = suggestions;\n // Check to see if the returned value is an array, if it is then just pass it into the next function .\n // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n // If it is then resolve it asynchronously.\n if (Array.isArray(suggestionsArray)) {\n this._updateAndResolveValue(updatedValue, suggestionsArray);\n }\n else if (suggestionsPromiseLike && suggestionsPromiseLike.then) {\n this.setState({\n suggestionsLoading: true,\n });\n // Clear suggestions\n this.suggestionStore.updateSuggestions([]);\n if (updatedValue !== undefined) {\n this.setState({\n suggestionsVisible: this._getShowSuggestions(),\n });\n }\n else {\n this.setState({\n suggestionsVisible: this.input.current && this.input.current.inputElement === document.activeElement,\n });\n }\n // Ensure that the promise will only use the callback if it was the most recent one.\n var promise_1 = (this.currentPromise = suggestionsPromiseLike);\n promise_1.then(function (newSuggestions) {\n if (promise_1 === _this.currentPromise) {\n _this._updateAndResolveValue(updatedValue, newSuggestions);\n }\n });\n }\n };\n BasePicker.prototype.resolveNewValue = function (updatedValue, suggestions) {\n var _this = this;\n this.updateSuggestions(suggestions);\n var itemValue = undefined;\n if (this.suggestionStore.currentSuggestion) {\n itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, updatedValue);\n }\n // Only set suggestionloading to false after there has been time for the new suggestions to flow\n // to the suggestions list. This is to ensure that the suggestions are available before aria-activedescendant\n // is set so that screen readers will read out the first selected option.\n this.setState({\n suggestedDisplayValue: itemValue,\n suggestionsVisible: this._getShowSuggestions(),\n }, function () { return _this.setState({ suggestionsLoading: false }); });\n };\n BasePicker.prototype.onChange = function (items) {\n if (this.props.onChange) {\n this.props.onChange(items);\n }\n };\n // This is protected because we may expect the backspace key to work differently in a different kind of picker.\n // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow\n BasePicker.prototype.onBackspace = function (ev) {\n if ((this.state.items.length && !this.input.current) ||\n (this.input.current && !this.input.current.isValueSelected && this.input.current.cursorLocation === 0)) {\n if (this.selection.getSelectedCount() > 0) {\n this.removeItems(this.selection.getSelection());\n }\n else {\n this.removeItem(this.state.items[this.state.items.length - 1]);\n }\n }\n };\n BasePicker.prototype.getActiveDescendant = function () {\n if (this.state.suggestionsLoading) {\n return undefined;\n }\n var currentIndex = this.suggestionStore.currentIndex;\n // if the suggestions element has actions and the currentIndex does not point to a suggestion, return the action id\n if (currentIndex < 0 && this.suggestionElement.current && this.suggestionElement.current.hasSuggestedAction()) {\n return 'sug-selectedAction';\n }\n return currentIndex > -1 && !this.state.suggestionsLoading ? 'sug-' + currentIndex : undefined;\n };\n BasePicker.prototype.getSuggestionsAlert = function (suggestionAlertClassName) {\n if (suggestionAlertClassName === void 0) { suggestionAlertClassName = legacyStyles.screenReaderOnly; }\n var currentIndex = this.suggestionStore.currentIndex;\n if (this.props.enableSelectedSuggestionAlert) {\n var selectedSuggestion = currentIndex > -1 ? this.suggestionStore.getSuggestionAtIndex(this.suggestionStore.currentIndex) : undefined;\n var selectedSuggestionAlertText = selectedSuggestion ? selectedSuggestion.ariaLabel : undefined;\n return (React.createElement(\"div\", { className: suggestionAlertClassName, role: \"alert\", id: this._ariaMap.selectedSuggestionAlert, \"aria-live\": \"assertive\" },\n selectedSuggestionAlertText,\n ' '));\n }\n };\n /**\n * Takes in the current updated value and either resolves it with the new suggestions\n * or if updated value is undefined then it clears out currently suggested items\n */\n BasePicker.prototype._updateAndResolveValue = function (updatedValue, newSuggestions) {\n if (updatedValue !== undefined) {\n this.resolveNewValue(updatedValue, newSuggestions);\n }\n else {\n this.suggestionStore.updateSuggestions(newSuggestions, -1);\n if (this.state.suggestionsLoading) {\n this.setState({\n suggestionsLoading: false,\n });\n }\n }\n };\n /**\n * Controls what happens whenever there is an action that impacts the selected items.\n * If `selectedItems` is provided, this will act as a controlled component and it will not update its own state.\n */\n BasePicker.prototype._updateSelectedItems = function (items) {\n var _this = this;\n if (this.props.selectedItems) {\n // If the component is a controlled component then the controlling component will need to add or remove the items.\n this.onChange(items);\n }\n else {\n this.setState({ items: items }, function () {\n _this._onSelectedItemsUpdated(items);\n });\n }\n };\n BasePicker.prototype._onSelectedItemsUpdated = function (items) {\n this.onChange(items);\n };\n /**\n * Suggestions are normally shown after the user updates text and the text\n * is non-empty, but also when the user clicks on the input element.\n * @returns True if suggestions should be shown.\n */\n BasePicker.prototype._getShowSuggestions = function () {\n var areSuggestionsVisible = this.input.current !== undefined &&\n this.input.current !== null &&\n this.input.current.inputElement === document.activeElement &&\n this.input.current.value !== '';\n return areSuggestionsVisible;\n };\n BasePicker.prototype._getTextFromItem = function (item, currentValue) {\n if (this.props.getTextFromItem) {\n return this.props.getTextFromItem(item, currentValue);\n }\n else {\n return '';\n }\n };\n return BasePicker;\n}(React.Component));\nexport { BasePicker };\nvar BasePickerListBelow = /** @class */ (function (_super) {\n __extends(BasePickerListBelow, _super);\n function BasePickerListBelow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BasePickerListBelow.prototype.render = function () {\n var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused;\n var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, theme = _b.theme, styles = _b.styles;\n var suggestionsAvailable = this.state.suggestionsVisible ? this._ariaMap.suggestionList : '';\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from BasePicker class because it\n // might be used by consumers who created custom pickers from extending from\n // this base class and have not used the new 'styles' prop.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // for every other already existing picker variant (PeoplePicker, TagPicker)\n // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n isFocused: isFocused,\n inputClassName: inputProps && inputProps.className,\n })\n : {\n root: css('ms-BasePicker', className ? className : ''),\n text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused, disabled && legacyStyles.inputDisabled),\n input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n screenReaderText: legacyStyles.screenReaderOnly,\n };\n return (React.createElement(\"div\", { ref: this.root, onBlur: this.onBlur },\n React.createElement(\"div\", { className: classNames.root, onKeyDown: this.onKeyDown },\n this.getSuggestionsAlert(classNames.screenReaderText),\n React.createElement(\"div\", { className: classNames.text },\n React.createElement(Autofill, __assign({}, inputProps, { className: classNames.input, componentRef: this.input, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onClick: this.onClick, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": this.getActiveDescendant(), \"aria-controls\": suggestionsAvailable || undefined, \"aria-expanded\": !!this.state.suggestionsVisible, \"aria-haspopup\": \"listbox\", role: \"combobox\", disabled: disabled, onInputChange: this.props.onInputChange })))),\n this.renderSuggestions(),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.single },\n React.createElement(FocusZone, { componentRef: this.focusZone, className: \"ms-BasePicker-selectedItems\" // just a className hook without any styles applied to it.\n , isCircularNavigation: true, direction: FocusZoneDirection.bidirectional, shouldEnterInnerZone: this._shouldFocusZoneEnterInnerZone, id: this._ariaMap.selectedItems, role: 'list' }, this.renderItems()))));\n };\n BasePickerListBelow.prototype.onBackspace = function (ev) {\n // override the existing backspace method to not do anything because the list items appear below.\n };\n return BasePickerListBelow;\n}(BasePicker));\nexport { BasePickerListBelow };\n//# sourceMappingURL=BasePicker.js.map","import { getGlobalClassNames, getInputFocusStyle, getPlaceholderStyles, hiddenContentStyle, HighContrastSelector, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-BasePicker',\n text: 'ms-BasePicker-text',\n itemsWrapper: 'ms-BasePicker-itemsWrapper',\n input: 'ms-BasePicker-input',\n};\nexport function getStyles(props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isFocused = props.isFocused, inputClassName = props.inputClassName, disabled = props.disabled;\n if (!theme) {\n throw new Error('theme is undefined or null in base BasePicker getStyles function.');\n }\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var inputBorder = semanticColors.inputBorder, inputBorderHovered = semanticColors.inputBorderHovered, inputFocusBorderAlt = semanticColors.inputFocusBorderAlt;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // placeholder style constants\n var placeholderStyles = [\n fonts.medium,\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n };\n // The following lines are to create a semi-transparent color overlay for the disabled state with designer's approval.\n // @todo: investigate the performance cost of the calculation below and apply if negligible.\n // Replacing with a static color for now.\n // const rgbColor: IRGB | undefined = cssColor(palette.neutralQuaternaryAlt);\n // const disabledOverlayColor = rgbColor ? `rgba(${rgbColor.r}, ${rgbColor.g}, ${rgbColor.b}, 0.29)` : 'transparent';\n var disabledOverlayColor = 'rgba(218, 218, 218, 0.29)';\n return {\n root: [classNames.root, className],\n text: [\n classNames.text,\n {\n display: 'flex',\n position: 'relative',\n flexWrap: 'wrap',\n alignItems: 'center',\n boxSizing: 'border-box',\n minWidth: 180,\n minHeight: 30,\n border: \"1px solid \" + inputBorder,\n borderRadius: effects.roundedCorner2,\n },\n !isFocused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: inputBorderHovered,\n },\n },\n },\n isFocused && !disabled && getInputFocusStyle(inputFocusBorderAlt, effects.roundedCorner2),\n disabled && {\n borderColor: disabledOverlayColor,\n selectors: (_c = {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n background: disabledOverlayColor,\n }\n },\n _c[HighContrastSelector] = {\n borderColor: 'GrayText',\n selectors: {\n ':after': {\n background: 'none',\n },\n },\n },\n _c),\n },\n ],\n itemsWrapper: [\n classNames.itemsWrapper,\n {\n display: 'flex',\n flexWrap: 'wrap',\n maxWidth: '100%',\n },\n ],\n input: [\n classNames.input,\n fonts.medium,\n {\n height: 30,\n border: 'none',\n flexGrow: 1,\n outline: 'none',\n padding: '0 6px 0',\n alignSelf: 'flex-end',\n borderRadius: effects.roundedCorner2,\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n getPlaceholderStyles(placeholderStyles),\n disabled && getPlaceholderStyles(disabledPlaceholderStyles),\n inputClassName,\n ],\n screenReaderText: hiddenContentStyle,\n };\n}\n//# sourceMappingURL=BasePicker.styles.js.map","/**\n * Validation state of the user's input.\n * {@docCategory Pickers}\n */\nexport var ValidationState;\n(function (ValidationState) {\n /** User input is valid. */\n ValidationState[ValidationState[\"valid\"] = 0] = \"valid\";\n /** User input could be valid or invalid, its state is not known yet. */\n ValidationState[ValidationState[\"warning\"] = 1] = \"warning\";\n /** User input is invalid. */\n ValidationState[ValidationState[\"invalid\"] = 2] = \"invalid\";\n})(ValidationState || (ValidationState = {}));\n//# sourceMappingURL=BasePicker.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, getInitials, styled } from '../../../Utilities';\nimport { BasePicker, BasePickerListBelow } from '../BasePicker';\nimport { ValidationState, } from '../BasePicker.types';\nimport { PeoplePickerItem } from './PeoplePickerItems/PeoplePickerItem';\nimport { PeoplePickerItemSuggestion } from './PeoplePickerItems/PeoplePickerItemSuggestion';\nimport { getStyles } from '../BasePicker.styles';\n/**\n * {@docCategory PeoplePicker}\n */\nvar BasePeoplePicker = /** @class */ (function (_super) {\n __extends(BasePeoplePicker, _super);\n function BasePeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BasePeoplePicker;\n}(BasePicker));\nexport { BasePeoplePicker };\n/**\n * {@docCategory PeoplePicker}\n */\nvar MemberListPeoplePicker = /** @class */ (function (_super) {\n __extends(MemberListPeoplePicker, _super);\n function MemberListPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return MemberListPeoplePicker;\n}(BasePickerListBelow));\nexport { MemberListPeoplePicker };\n/**\n * Standard People Picker.\n * {@docCategory PeoplePicker}\n */\nvar NormalPeoplePickerBase = /** @class */ (function (_super) {\n __extends(NormalPeoplePickerBase, _super);\n function NormalPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for NormalPeoplePicker. */\n NormalPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n createGenericItem: createGenericItem,\n };\n return NormalPeoplePickerBase;\n}(BasePeoplePicker));\nexport { NormalPeoplePickerBase };\n/**\n * Compact layout. It uses personas without secondary text when displaying search results.\n * {@docCategory PeoplePicker}\n */\nvar CompactPeoplePickerBase = /** @class */ (function (_super) {\n __extends(CompactPeoplePickerBase, _super);\n function CompactPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for CompactPeoplePicker. */\n CompactPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps, compact: true })); },\n createGenericItem: createGenericItem,\n };\n return CompactPeoplePickerBase;\n}(BasePeoplePicker));\nexport { CompactPeoplePickerBase };\n/**\n * MemberList layout. The selected people show up below the search box.\n * {@docCategory PeoplePicker}\n */\nvar ListPeoplePickerBase = /** @class */ (function (_super) {\n __extends(ListPeoplePickerBase, _super);\n function ListPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for ListPeoplePicker. */\n ListPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n createGenericItem: createGenericItem,\n };\n return ListPeoplePickerBase;\n}(MemberListPeoplePicker));\nexport { ListPeoplePickerBase };\n/**\n * {@docCategory PeoplePicker}\n */\nexport function createGenericItem(name, currentValidationState) {\n var personaToConvert = {\n key: name,\n primaryText: name,\n imageInitials: '!',\n ValidationState: currentValidationState,\n };\n if (currentValidationState !== ValidationState.warning) {\n personaToConvert.imageInitials = getInitials(name, getRTL());\n }\n return personaToConvert;\n}\nexport var NormalPeoplePicker = styled(NormalPeoplePickerBase, getStyles, undefined, {\n scope: 'NormalPeoplePicker',\n});\nexport var CompactPeoplePicker = styled(CompactPeoplePickerBase, getStyles, undefined, {\n scope: 'CompactPeoplePicker',\n});\nexport var ListPeoplePicker = styled(ListPeoplePickerBase, getStyles, undefined, {\n scope: 'ListPeoplePickerBase',\n});\n//# sourceMappingURL=PeoplePicker.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getId, classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize, } from '../../../../Persona';\nimport { IconButton } from '../../../../Button';\nimport { ValidationState } from '../../BasePicker.types';\nimport { getStyles } from './PeoplePickerItem.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemBase = function (props) {\n var item = props.item, onRemoveItem = props.onRemoveItem, index = props.index, selected = props.selected, removeButtonAriaLabel = props.removeButtonAriaLabel, styles = props.styles, theme = props.theme, className = props.className, disabled = props.disabled;\n var itemId = getId();\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: selected,\n disabled: disabled,\n invalid: item.ValidationState === ValidationState.warning,\n });\n var personaStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.persona\n : undefined;\n var personaCoinStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.personaCoin\n : undefined;\n return (React.createElement(\"div\", { className: classNames.root, \"data-is-focusable\": !disabled, \"data-is-sub-focuszone\": true, \"data-selection-index\": index, role: 'listitem', \"aria-labelledby\": 'selectedItemPersona-' + itemId },\n React.createElement(\"div\", { className: classNames.itemContent, id: 'selectedItemPersona-' + itemId },\n React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, coinProps: { styles: personaCoinStyles } }, item))),\n React.createElement(IconButton, { onClick: onRemoveItem, disabled: disabled, iconProps: { iconName: 'Cancel', styles: { root: { fontSize: '12px' } } }, className: classNames.removeButton, ariaLabel: removeButtonAriaLabel })));\n};\nexport var PeoplePickerItem = styled(PeoplePickerItemBase, getStyles, undefined, { scope: 'PeoplePickerItem' });\n//# sourceMappingURL=PeoplePickerItem.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../../../Styling';\nimport { ButtonGlobalClassNames } from '../../../Button/BaseButton.classNames';\nvar GlobalClassNames = {\n root: 'ms-PickerPersona-container',\n itemContent: 'ms-PickerItem-content',\n removeButton: 'ms-PickerItem-removeButton',\n isSelected: 'is-selected',\n isInvalid: 'is-invalid',\n};\nvar REMOVE_BUTTON_SIZE = 24;\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var className = props.className, theme = props.theme, selected = props.selected, invalid = props.invalid, disabled = props.disabled;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var personaPrimaryTextStyles = [\n selected &&\n !invalid &&\n !disabled && {\n color: palette.white,\n selectors: (_a = {\n ':hover': {\n color: palette.white,\n }\n },\n _a[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _a),\n },\n ((invalid && !selected) || (invalid && selected && disabled)) && {\n color: palette.redDark,\n borderBottom: \"2px dotted \" + palette.redDark,\n selectors: (_b = {},\n _b[\".\" + classNames.root + \":hover &\"] = {\n // override Persona root:hover selector\n color: palette.redDark,\n },\n _b),\n },\n invalid &&\n selected &&\n !disabled && {\n color: palette.white,\n borderBottom: \"2px dotted \" + palette.white,\n },\n disabled && {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n ];\n var personaSecondaryTextStyles = [\n selected &&\n !invalid &&\n !disabled && {\n color: palette.white,\n selectors: (_d = {\n ':hover': {\n color: palette.white,\n }\n },\n _d[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _d),\n },\n ];\n var personaCoinInitialsStyles = [\n invalid && {\n fontSize: fonts.xLarge.fontSize,\n },\n ];\n return {\n root: [\n classNames.root,\n getFocusStyle(theme, { inset: -2 }),\n {\n borderRadius: 15,\n display: 'inline-flex',\n alignItems: 'center',\n background: palette.neutralLighter,\n margin: '1px 2px',\n cursor: 'default',\n userSelect: 'none',\n maxWidth: 300,\n verticalAlign: 'middle',\n minWidth: 0,\n selectors: (_e = {\n ':hover': {\n background: !selected && !disabled ? palette.neutralLight : '',\n }\n },\n _e[HighContrastSelector] = [{ border: '1px solid WindowText' }, disabled && { borderColor: 'GrayText' }],\n _e),\n },\n selected &&\n !disabled && [\n classNames.isSelected,\n {\n background: palette.themePrimary,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'HighLight', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n ],\n invalid && [classNames.isInvalid],\n invalid &&\n selected &&\n !disabled && {\n background: palette.redDark,\n },\n className,\n ],\n itemContent: [\n classNames.itemContent,\n {\n flex: '0 1 auto',\n minWidth: 0,\n // CSS below is needed for IE 11 to properly truncate long persona names in the picker\n // and to clip the presence indicator (in all browsers)\n maxWidth: '100%',\n overflow: 'hidden',\n },\n ],\n removeButton: [\n classNames.removeButton,\n {\n borderRadius: 15,\n color: palette.neutralPrimary,\n flex: '0 0 auto',\n width: REMOVE_BUTTON_SIZE,\n height: REMOVE_BUTTON_SIZE,\n selectors: {\n ':hover': {\n background: palette.neutralTertiaryAlt,\n color: palette.neutralDark,\n },\n },\n },\n selected && [\n {\n color: palette.white,\n selectors: (_g = {\n ':hover': {\n color: palette.white,\n background: palette.themeDark,\n },\n ':active': {\n color: palette.white,\n background: palette.themeDarker,\n }\n },\n _g[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _g),\n },\n invalid && {\n selectors: {\n ':hover': {\n background: palette.red,\n },\n ':active': {\n background: palette.redDark,\n },\n },\n },\n ],\n disabled && {\n selectors: (_h = {},\n _h[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: semanticColors.buttonText,\n },\n _h),\n },\n ],\n subComponentStyles: {\n persona: {\n primaryText: personaPrimaryTextStyles,\n secondaryText: personaSecondaryTextStyles,\n },\n personaCoin: {\n initials: personaCoinInitialsStyles,\n },\n },\n };\n}\n//# sourceMappingURL=PeoplePickerItem.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { getStyles } from './PeoplePickerItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemSuggestionBase = function (props) {\n var personaProps = props.personaProps, suggestionsProps = props.suggestionsProps, compact = props.compact, styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: (suggestionsProps && suggestionsProps.suggestionsItemClassName) || className,\n });\n var personaStyles = classNames.subComponentStyles && classNames.subComponentStyles.persona\n ? classNames.subComponentStyles.persona\n : undefined;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, className: classNames.personaWrapper, showSecondaryText: !compact, showOverflowTooltip: false }, personaProps))));\n};\nexport var PeoplePickerItemSuggestion = styled(PeoplePickerItemSuggestionBase, getStyles, undefined, { scope: 'PeoplePickerItemSuggestion' });\n//# sourceMappingURL=PeoplePickerItemSuggestion.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../../Styling';\nimport { SuggestionsItemGlobalClassNames as suggested } from '../../Suggestions/SuggestionsItem.styles';\nvar GlobalClassNames = {\n root: 'ms-PeoplePicker-personaContent',\n personaWrapper: 'ms-PeoplePicker-Persona',\n};\nexport function getStyles(props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var textSelectorsStyles = {\n selectors: (_a = {},\n _a[\".\" + suggested.isSuggested + \" &\"] = {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _b),\n },\n _a[\".\" + classNames.root + \":hover &\"] = {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _c),\n },\n _a),\n };\n return {\n root: [\n classNames.root,\n {\n width: '100%',\n padding: '4px 12px',\n },\n className,\n ],\n personaWrapper: [\n classNames.personaWrapper,\n {\n width: 180,\n },\n ],\n subComponentStyles: {\n persona: {\n primaryText: textSelectorsStyles,\n secondaryText: textSelectorsStyles,\n },\n },\n };\n}\n//# sourceMappingURL=PeoplePickerItemSuggestion.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, KeyCodes, classNamesFunction, css, styled, } from '../../../Utilities';\nimport { CommandButton } from '../../../Button';\nimport { Spinner } from '../../../Spinner';\nimport { Announced } from '../../../Announced';\nimport { SuggestionActionType, } from './Suggestions.types';\nimport { SuggestionsItem } from './SuggestionsItem';\nimport { getStyles as suggestionsItemStyles } from './SuggestionsItem.styles';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\nvar StyledSuggestionsItem = styled(SuggestionsItem, suggestionsItemStyles, undefined, { scope: 'SuggestionItem' });\n/**\n * {@docCategory Pickers}\n */\nvar Suggestions = /** @class */ (function (_super) {\n __extends(Suggestions, _super);\n function Suggestions(suggestionsProps) {\n var _this = _super.call(this, suggestionsProps) || this;\n _this._forceResolveButton = React.createRef();\n _this._searchForMoreButton = React.createRef();\n _this._selectedElement = React.createRef();\n /**\n * Returns true if the event was handled, false otherwise\n */\n _this.tryHandleKeyDown = function (keyCode, currentSuggestionIndex) {\n var isEventHandled = false;\n var newSelectedActionType = null;\n var currentSelectedAction = _this.state.selectedActionType;\n var suggestionLength = _this.props.suggestions.length;\n if (keyCode === KeyCodes.down) {\n switch (currentSelectedAction) {\n case SuggestionActionType.forceResolve:\n if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else if (_this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n else {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n case SuggestionActionType.searchMore:\n if (_this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n else if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n break;\n case SuggestionActionType.none:\n if (currentSuggestionIndex === -1 && _this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n }\n }\n else if (keyCode === KeyCodes.up) {\n switch (currentSelectedAction) {\n case SuggestionActionType.forceResolve:\n if (_this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n else if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n break;\n case SuggestionActionType.searchMore:\n if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else if (_this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n case SuggestionActionType.none:\n if (currentSuggestionIndex === -1 && _this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n break;\n }\n }\n if (newSelectedActionType !== null) {\n _this.setState({ selectedActionType: newSelectedActionType });\n isEventHandled = true;\n }\n return isEventHandled;\n };\n _this._getAlertText = function () {\n var _a = _this.props, isLoading = _a.isLoading, isSearching = _a.isSearching, suggestions = _a.suggestions, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText, noResultsFoundText = _a.noResultsFoundText;\n if (!isLoading && !isSearching) {\n if (suggestions.length > 0) {\n return suggestionsAvailableAlertText || '';\n }\n if (noResultsFoundText) {\n return noResultsFoundText;\n }\n }\n return '';\n };\n _this._getMoreResults = function () {\n if (_this.props.onGetMoreResults) {\n _this.props.onGetMoreResults();\n }\n };\n _this._forceResolve = function () {\n if (_this.props.createGenericItem) {\n _this.props.createGenericItem();\n }\n };\n _this._shouldShowForceResolve = function () {\n return _this.props.showForceResolve ? _this.props.showForceResolve() : false;\n };\n _this._onClickTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n _this.props.onSuggestionClick(ev, item, index);\n };\n };\n _this._refocusOnSuggestions = function (keyCode) {\n if (typeof _this.props.refocusSuggestions === 'function') {\n _this.props.refocusSuggestions(keyCode);\n }\n };\n _this._onRemoveTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n var onSuggestionRemove = _this.props.onSuggestionRemove;\n onSuggestionRemove(ev, item, index);\n ev.stopPropagation();\n };\n };\n initializeComponentRef(_this);\n _this.state = {\n selectedActionType: SuggestionActionType.none,\n };\n return _this;\n }\n Suggestions.prototype.componentDidMount = function () {\n this.scrollSelected();\n this.activeSelectedElement = this._selectedElement ? this._selectedElement.current : null;\n };\n Suggestions.prototype.componentDidUpdate = function () {\n // Only scroll to selected element if the selected element has changed. Otherwise do nothing.\n // This prevents some odd behavior where scrolling the active element out of view and clicking on a selected element\n // will trigger a focus event and not give the clicked element the click.\n if (this._selectedElement.current && this.activeSelectedElement !== this._selectedElement.current) {\n this.scrollSelected();\n this.activeSelectedElement = this._selectedElement.current;\n }\n };\n Suggestions.prototype.render = function () {\n var _a, _b;\n var _this = this;\n var _c = this.props, forceResolveText = _c.forceResolveText, mostRecentlyUsedHeaderText = _c.mostRecentlyUsedHeaderText, searchForMoreIcon = _c.searchForMoreIcon, searchForMoreText = _c.searchForMoreText, className = _c.className, moreSuggestionsAvailable = _c.moreSuggestionsAvailable, noResultsFoundText = _c.noResultsFoundText, suggestions = _c.suggestions, isLoading = _c.isLoading, isSearching = _c.isSearching, loadingText = _c.loadingText, onRenderNoResultFound = _c.onRenderNoResultFound, searchingText = _c.searchingText, isMostRecentlyUsedVisible = _c.isMostRecentlyUsedVisible, resultsMaximumNumber = _c.resultsMaximumNumber, resultsFooterFull = _c.resultsFooterFull, resultsFooter = _c.resultsFooter, _d = _c.isResultsFooterVisible, isResultsFooterVisible = _d === void 0 ? true : _d, suggestionsHeaderText = _c.suggestionsHeaderText, suggestionsClassName = _c.suggestionsClassName, theme = _c.theme, styles = _c.styles, suggestionsListId = _c.suggestionsListId;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from Suggestions class because it\n // might be used by consumers separately from pickers extending from BasePicker\n // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n // we can not use the 'styled' function without adding some helpers which can break\n // downstream consumers who did not use the new helpers.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // in BasePicker when the typed Suggestions class is ready to be rendered. If the check\n // passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n this._classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n suggestionsClassName: suggestionsClassName,\n forceResolveButtonSelected: this.state.selectedActionType === SuggestionActionType.forceResolve,\n searchForMoreButtonSelected: this.state.selectedActionType === SuggestionActionType.searchMore,\n })\n : {\n root: css('ms-Suggestions', className, legacyStyles.root),\n title: css('ms-Suggestions-title', legacyStyles.suggestionsTitle),\n searchForMoreButton: css('ms-SearchMore-button', legacyStyles.actionButton, (_a = {},\n _a['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.searchMore,\n _a)),\n forceResolveButton: css('ms-forceResolve-button', legacyStyles.actionButton, (_b = {},\n _b['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.forceResolve,\n _b)),\n suggestionsAvailable: css('ms-Suggestions-suggestionsAvailable', legacyStyles.suggestionsAvailable),\n suggestionsContainer: css('ms-Suggestions-container', legacyStyles.suggestionsContainer, suggestionsClassName),\n noSuggestions: css('ms-Suggestions-none', legacyStyles.suggestionsNone),\n };\n var spinnerStyles = this._classNames.subComponentStyles\n ? this._classNames.subComponentStyles.spinner\n : undefined;\n // TODO: cleanup after refactor of pickers to composition pattern and remove SASS support.\n var spinnerClassNameOrStyles = styles\n ? { styles: spinnerStyles }\n : { className: css('ms-Suggestions-spinner', legacyStyles.suggestionsSpinner) };\n var noResults = function () {\n return noResultsFoundText ? React.createElement(\"div\", { className: _this._classNames.noSuggestions }, noResultsFoundText) : null;\n };\n // MostRecently Used text should supercede the header text if it's there and available.\n var headerText = suggestionsHeaderText;\n if (isMostRecentlyUsedVisible && mostRecentlyUsedHeaderText) {\n headerText = mostRecentlyUsedHeaderText;\n }\n var footerTitle = undefined;\n if (isResultsFooterVisible) {\n footerTitle = suggestions.length >= resultsMaximumNumber ? resultsFooterFull : resultsFooter;\n }\n var hasNoSuggestions = (!suggestions || !suggestions.length) && !isLoading;\n var divProps = hasNoSuggestions || isLoading ? { role: 'dialog', id: suggestionsListId } : {};\n var forceResolveId = this.state.selectedActionType === SuggestionActionType.forceResolve ? 'sug-selectedAction' : undefined;\n var searchForMoreId = this.state.selectedActionType === SuggestionActionType.searchMore ? 'sug-selectedAction' : undefined;\n return (React.createElement(\"div\", __assign({ className: this._classNames.root }, divProps),\n React.createElement(Announced, { message: this._getAlertText(), \"aria-live\": \"polite\" }),\n headerText ? React.createElement(\"div\", { className: this._classNames.title }, headerText) : null,\n forceResolveText && this._shouldShowForceResolve() && (React.createElement(CommandButton, { componentRef: this._forceResolveButton, className: this._classNames.forceResolveButton, id: forceResolveId, onClick: this._forceResolve, \"data-automationid\": 'sug-forceResolve' }, forceResolveText)),\n isLoading && React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { label: loadingText })),\n hasNoSuggestions\n ? onRenderNoResultFound\n ? onRenderNoResultFound(undefined, noResults)\n : noResults()\n : this._renderSuggestions(),\n searchForMoreText && moreSuggestionsAvailable && (React.createElement(CommandButton, { componentRef: this._searchForMoreButton, className: this._classNames.searchForMoreButton, iconProps: searchForMoreIcon || { iconName: 'Search' }, id: searchForMoreId, onClick: this._getMoreResults, \"data-automationid\": 'sug-searchForMore' }, searchForMoreText)),\n isSearching ? React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { label: searchingText })) : null,\n footerTitle && !moreSuggestionsAvailable && !isMostRecentlyUsedVisible && !isSearching ? (React.createElement(\"div\", { className: this._classNames.title }, footerTitle(this.props))) : null));\n };\n Suggestions.prototype.hasSuggestedAction = function () {\n return !!this._searchForMoreButton.current || !!this._forceResolveButton.current;\n };\n Suggestions.prototype.hasSuggestedActionSelected = function () {\n return this.state.selectedActionType !== SuggestionActionType.none;\n };\n Suggestions.prototype.executeSelectedAction = function () {\n switch (this.state.selectedActionType) {\n case SuggestionActionType.forceResolve:\n this._forceResolve();\n break;\n case SuggestionActionType.searchMore:\n this._getMoreResults();\n break;\n }\n };\n Suggestions.prototype.focusAboveSuggestions = function () {\n if (this._forceResolveButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n }\n else if (this._searchForMoreButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.searchMore });\n }\n };\n Suggestions.prototype.focusBelowSuggestions = function () {\n if (this._searchForMoreButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.searchMore });\n }\n else if (this._forceResolveButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n }\n };\n Suggestions.prototype.focusSearchForMoreButton = function () {\n if (this._searchForMoreButton.current) {\n this._searchForMoreButton.current.focus();\n }\n };\n // TODO get the element to scroll into view properly regardless of direction.\n Suggestions.prototype.scrollSelected = function () {\n if (this._selectedElement.current && this._selectedElement.current.scrollIntoView !== undefined) {\n this._selectedElement.current.scrollIntoView(false);\n }\n };\n Suggestions.prototype._renderSuggestions = function () {\n var _this = this;\n var _a = this.props, isMostRecentlyUsedVisible = _a.isMostRecentlyUsedVisible, mostRecentlyUsedHeaderText = _a.mostRecentlyUsedHeaderText, onRenderSuggestion = _a.onRenderSuggestion, removeSuggestionAriaLabel = _a.removeSuggestionAriaLabel, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, suggestionsContainerAriaLabel = _a.suggestionsContainerAriaLabel, suggestionsHeaderText = _a.suggestionsHeaderText, suggestionsListId = _a.suggestionsListId;\n var suggestions = this.props.suggestions;\n var StyledTypedSuggestionsItem = StyledSuggestionsItem;\n var selectedIndex = -1;\n suggestions.some(function (element, index) {\n if (element.selected) {\n selectedIndex = index;\n return true;\n }\n return false;\n });\n if (resultsMaximumNumber) {\n suggestions =\n selectedIndex >= resultsMaximumNumber\n ? suggestions.slice(selectedIndex - resultsMaximumNumber + 1, selectedIndex + 1)\n : suggestions.slice(0, resultsMaximumNumber);\n }\n if (suggestions.length === 0) {\n return null;\n }\n // MostRecently Used text should supercede the header text if it's there and available.\n var headerText = suggestionsHeaderText;\n if (isMostRecentlyUsedVisible && mostRecentlyUsedHeaderText) {\n headerText = mostRecentlyUsedHeaderText;\n }\n return (React.createElement(\"div\", { className: this._classNames.suggestionsContainer, id: suggestionsListId, role: \"listbox\", \"aria-label\": suggestionsContainerAriaLabel || headerText }, suggestions.map(function (suggestion, index) { return (React.createElement(\"div\", { ref: suggestion.selected ? _this._selectedElement : undefined, key: suggestion.item.key ? suggestion.item.key : index, role: \"presentation\" },\n React.createElement(StyledTypedSuggestionsItem, { suggestionModel: suggestion, RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, removeButtonAriaLabel: removeSuggestionAriaLabel, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index), id: 'sug-' + index }))); })));\n };\n return Suggestions;\n}(React.Component));\nexport { Suggestions };\n//# sourceMappingURL=Suggestions.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".root_2c0ee681{min-width:260px}.suggestionsItem_2c0ee681{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.suggestionsItem_2c0ee681:hover{background:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.suggestionsItem_2c0ee681:hover .closeButton_2c0ee681{display:block}.suggestionsItem_2c0ee681.suggestionsItemIsSuggested_2c0ee681{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsItem_2c0ee681.suggestionsItemIsSuggested_2c0ee681:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_2c0ee681.suggestionsItemIsSuggested_2c0ee681:hover{background:Highlight;color:HighlightText}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_2c0ee681.suggestionsItemIsSuggested_2c0ee681{background:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.suggestionsItem_2c0ee681.suggestionsItemIsSuggested_2c0ee681 .closeButton_2c0ee681:hover{background:\" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_2c0ee681.suggestionsItemIsSuggested_2c0ee681 .itemButton_2c0ee681{color:HighlightText}}.suggestionsItem_2c0ee681 .closeButton_2c0ee681{display:none;color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.suggestionsItem_2c0ee681 .closeButton_2c0ee681:hover{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.actionButton_2c0ee681{background-color:transparent;border:0;cursor:pointer;margin:0;position:relative;border-top:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";height:40px;width:100%;font-size:12px}[dir=ltr] .actionButton_2c0ee681{padding-left:8px}[dir=rtl] .actionButton_2c0ee681{padding-right:8px}html[dir=ltr] .actionButton_2c0ee681{text-align:left}html[dir=rtl] .actionButton_2c0ee681{text-align:right}.actionButton_2c0ee681:hover{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";cursor:pointer}.actionButton_2c0ee681:active,.actionButton_2c0ee681:focus{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.actionButton_2c0ee681 .ms-Button-icon{font-size:16px;width:25px}.actionButton_2c0ee681 .ms-Button-label{margin:0 4px 0 9px}html[dir=rtl] .actionButton_2c0ee681 .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_2c0ee681{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.suggestionsTitle_2c0ee681{padding:0 12px;color:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";font-size:12px;line-height:40px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsContainer_2c0ee681{overflow-y:auto;overflow-x:hidden;max-height:300px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsNone_2c0ee681{text-align:center;color:#797775;font-size:12px;line-height:30px}.suggestionsSpinner_2c0ee681{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir=ltr] .suggestionsSpinner_2c0ee681{padding-left:14px}html[dir=rtl] .suggestionsSpinner_2c0ee681{padding-right:14px}html[dir=ltr] .suggestionsSpinner_2c0ee681{text-align:left}html[dir=rtl] .suggestionsSpinner_2c0ee681{text-align:right}.suggestionsSpinner_2c0ee681 .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_2c0ee681 .ms-Spinner-label{display:inline-block;margin:0 10px 0 16px;vertical-align:middle}html[dir=rtl] .suggestionsSpinner_2c0ee681 .ms-Spinner-label{margin:0 16px 0 10px}.itemButton_2c0ee681.itemButton_2c0ee681{width:100%;padding:0;min-width:0;height:100%}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.itemButton_2c0ee681.itemButton_2c0ee681{color:WindowText}}.itemButton_2c0ee681.itemButton_2c0ee681:hover{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.closeButton_2c0ee681.closeButton_2c0ee681{padding:0 4px;height:auto;width:32px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.closeButton_2c0ee681.closeButton_2c0ee681{color:WindowText}}.closeButton_2c0ee681.closeButton_2c0ee681:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.suggestionsAvailable_2c0ee681{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var root = \"root_2c0ee681\";\nexport var suggestionsItem = \"suggestionsItem_2c0ee681\";\nexport var closeButton = \"closeButton_2c0ee681\";\nexport var suggestionsItemIsSuggested = \"suggestionsItemIsSuggested_2c0ee681\";\nexport var itemButton = \"itemButton_2c0ee681\";\nexport var actionButton = \"actionButton_2c0ee681\";\nexport var buttonSelected = \"buttonSelected_2c0ee681\";\nexport var suggestionsTitle = \"suggestionsTitle_2c0ee681\";\nexport var suggestionsContainer = \"suggestionsContainer_2c0ee681\";\nexport var suggestionsNone = \"suggestionsNone_2c0ee681\";\nexport var suggestionsSpinner = \"suggestionsSpinner_2c0ee681\";\nexport var suggestionsAvailable = \"suggestionsAvailable_2c0ee681\";\n//# sourceMappingURL=Suggestions.scss.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getHighContrastNoAdjustStyle, HighContrastSelector, hiddenContentStyle, } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Suggestions',\n suggestionsContainer: 'ms-Suggestions-container',\n title: 'ms-Suggestions-title',\n forceResolveButton: 'ms-forceResolve-button',\n searchForMoreButton: 'ms-SearchMore-button',\n spinner: 'ms-Suggestions-spinner',\n noSuggestions: 'ms-Suggestions-none',\n suggestionsAvailable: 'ms-Suggestions-suggestionsAvailable',\n isSelected: 'is-selected',\n};\nexport function getStyles(props) {\n var _a;\n var className = props.className, suggestionsClassName = props.suggestionsClassName, theme = props.theme, forceResolveButtonSelected = props.forceResolveButtonSelected, searchForMoreButtonSelected = props.searchForMoreButtonSelected;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var actionButtonStyles = {\n backgroundColor: 'transparent',\n border: 0,\n cursor: 'pointer',\n margin: 0,\n paddingLeft: 8,\n position: 'relative',\n borderTop: \"1px solid \" + palette.neutralLight,\n height: 40,\n textAlign: 'left',\n width: '100%',\n fontSize: fonts.small.fontSize,\n selectors: {\n ':hover': {\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n cursor: 'pointer',\n },\n ':focus, :active': {\n backgroundColor: palette.themeLight,\n },\n '.ms-Button-icon': {\n fontSize: fonts.mediumPlus.fontSize,\n width: 25,\n },\n '.ms-Button-label': {\n margin: '0 4px 0 9px',\n },\n },\n };\n var actionButtonSelectedStyles = {\n backgroundColor: palette.themeLight,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n };\n return {\n root: [\n classNames.root,\n {\n minWidth: 260,\n },\n className,\n ],\n suggestionsContainer: [\n classNames.suggestionsContainer,\n {\n overflowY: 'auto',\n overflowX: 'hidden',\n maxHeight: 300,\n transform: 'translate3d(0,0,0)',\n },\n suggestionsClassName,\n ],\n title: [\n classNames.title,\n {\n padding: '0 12px',\n fontSize: fonts.small.fontSize,\n color: palette.themePrimary,\n lineHeight: 40,\n borderBottom: \"1px solid \" + semanticColors.menuItemBackgroundPressed,\n },\n ],\n forceResolveButton: [\n classNames.forceResolveButton,\n actionButtonStyles,\n forceResolveButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n ],\n searchForMoreButton: [\n classNames.searchForMoreButton,\n actionButtonStyles,\n searchForMoreButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n ],\n noSuggestions: [\n classNames.noSuggestions,\n {\n textAlign: 'center',\n color: palette.neutralSecondary,\n fontSize: fonts.small.fontSize,\n lineHeight: 30,\n },\n ],\n suggestionsAvailable: [classNames.suggestionsAvailable, hiddenContentStyle],\n subComponentStyles: {\n spinner: {\n root: [\n classNames.spinner,\n {\n margin: '5px 0',\n paddingLeft: 14,\n textAlign: 'left',\n whiteSpace: 'nowrap',\n lineHeight: 20,\n fontSize: fonts.small.fontSize,\n },\n ],\n circle: {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n label: {\n display: 'inline-block',\n verticalAlign: 'middle',\n margin: '0 10px 0 16px',\n },\n },\n },\n };\n}\n//# sourceMappingURL=Suggestions.styles.js.map","/**\n * Enum to help identify which suggestions action button is selected.\n * {@docCategory Pickers}\n */\nexport var SuggestionActionType;\n(function (SuggestionActionType) {\n /** None of the actions is selected. */\n SuggestionActionType[SuggestionActionType[\"none\"] = 0] = \"none\";\n /** ForceResolve action is selected. */\n SuggestionActionType[SuggestionActionType[\"forceResolve\"] = 1] = \"forceResolve\";\n /** SearchMore action is selected. */\n SuggestionActionType[SuggestionActionType[\"searchMore\"] = 2] = \"searchMore\";\n})(SuggestionActionType || (SuggestionActionType = {}));\n//# sourceMappingURL=Suggestions.types.js.map","/**\n * {@docCategory Pickers}\n */\nvar SuggestionsController = /** @class */ (function () {\n function SuggestionsController() {\n var _this = this;\n this._isSuggestionModel = function (value) {\n return value.item !== undefined;\n };\n this._ensureSuggestionModel = function (suggestion) {\n if (_this._isSuggestionModel(suggestion)) {\n return suggestion;\n }\n else {\n return {\n item: suggestion,\n selected: false,\n ariaLabel: suggestion.name || suggestion.primaryText,\n };\n }\n };\n this.suggestions = [];\n this.currentIndex = -1;\n }\n SuggestionsController.prototype.updateSuggestions = function (newSuggestions, selectedIndex) {\n if (newSuggestions && newSuggestions.length > 0) {\n this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);\n this.currentIndex = selectedIndex ? selectedIndex : 0;\n if (selectedIndex === -1) {\n this.currentSuggestion = undefined;\n }\n else if (selectedIndex !== undefined) {\n this.suggestions[selectedIndex].selected = true;\n this.currentSuggestion = this.suggestions[selectedIndex];\n }\n }\n else {\n this.suggestions = [];\n this.currentIndex = -1;\n this.currentSuggestion = undefined;\n }\n };\n /**\n * Increments the suggestion index and gets the next suggestion in the list.\n */\n SuggestionsController.prototype.nextSuggestion = function () {\n if (this.suggestions && this.suggestions.length) {\n if (this.currentIndex < this.suggestions.length - 1) {\n this.setSelectedSuggestion(this.currentIndex + 1);\n return true;\n }\n else if (this.currentIndex === this.suggestions.length - 1) {\n this.setSelectedSuggestion(0);\n return true;\n }\n }\n return false;\n };\n /**\n * Decrements the suggestion index and gets the previous suggestion in the list.\n */\n SuggestionsController.prototype.previousSuggestion = function () {\n if (this.suggestions && this.suggestions.length) {\n if (this.currentIndex > 0) {\n this.setSelectedSuggestion(this.currentIndex - 1);\n return true;\n }\n else if (this.currentIndex === 0) {\n this.setSelectedSuggestion(this.suggestions.length - 1);\n return true;\n }\n }\n return false;\n };\n SuggestionsController.prototype.getSuggestions = function () {\n return this.suggestions;\n };\n SuggestionsController.prototype.getCurrentItem = function () {\n return this.currentSuggestion;\n };\n SuggestionsController.prototype.getSuggestionAtIndex = function (index) {\n return this.suggestions[index];\n };\n SuggestionsController.prototype.hasSelectedSuggestion = function () {\n return this.currentSuggestion ? true : false;\n };\n SuggestionsController.prototype.removeSuggestion = function (index) {\n this.suggestions.splice(index, 1);\n };\n SuggestionsController.prototype.createGenericSuggestion = function (itemToConvert) {\n var itemToAdd = this.convertSuggestionsToSuggestionItems([itemToConvert])[0];\n this.currentSuggestion = itemToAdd;\n };\n SuggestionsController.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {\n return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];\n };\n SuggestionsController.prototype.deselectAllSuggestions = function () {\n if (this.currentIndex > -1) {\n this.suggestions[this.currentIndex].selected = false;\n this.currentIndex = -1;\n }\n };\n SuggestionsController.prototype.setSelectedSuggestion = function (index) {\n if (index > this.suggestions.length - 1 || index < 0) {\n this.currentIndex = 0;\n this.currentSuggestion.selected = false;\n this.currentSuggestion = this.suggestions[0];\n this.currentSuggestion.selected = true;\n }\n else {\n if (this.currentIndex > -1) {\n this.suggestions[this.currentIndex].selected = false;\n }\n this.suggestions[index].selected = true;\n this.currentIndex = index;\n this.currentSuggestion = this.suggestions[index];\n }\n };\n return SuggestionsController;\n}());\nexport { SuggestionsController };\n//# sourceMappingURL=SuggestionsController.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, initializeComponentRef } from '../../../Utilities';\nimport { CommandButton, IconButton } from '../../../Button';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Pickers}\n */\nvar SuggestionsItem = /** @class */ (function (_super) {\n __extends(SuggestionsItem, _super);\n function SuggestionsItem(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n SuggestionsItem.prototype.render = function () {\n var _a;\n var _b = this.props, suggestionModel = _b.suggestionModel, RenderSuggestion = _b.RenderSuggestion, onClick = _b.onClick, className = _b.className, id = _b.id, onRemoveItem = _b.onRemoveItem, isSelectedOverride = _b.isSelectedOverride, removeButtonAriaLabel = _b.removeButtonAriaLabel, styles = _b.styles, theme = _b.theme;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from SuggestionsItem class because it\n // might be used by consumers separately from pickers extending from BasePicker\n // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n // we can not use the 'styled' function without adding some helpers which can break\n // downstream consumers who did not use the new helpers.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // in Suggestions when the typed SuggestionsItem class is ready to be rendered. If the\n // check passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n suggested: suggestionModel.selected || isSelectedOverride,\n })\n : {\n root: css('ms-Suggestions-item', legacyStyles.suggestionsItem, (_a = {},\n _a['is-suggested ' + legacyStyles.suggestionsItemIsSuggested] = suggestionModel.selected || isSelectedOverride,\n _a), className),\n itemButton: css('ms-Suggestions-itemButton', legacyStyles.itemButton),\n closeButton: css('ms-Suggestions-closeButton', legacyStyles.closeButton),\n };\n return (React.createElement(\"div\", { className: classNames.root, role: \"presentation\" },\n React.createElement(CommandButton, { onClick: onClick, className: classNames.itemButton, id: id, \"aria-selected\": suggestionModel.selected, role: \"option\", \"aria-label\": suggestionModel.ariaLabel }, RenderSuggestion(suggestionModel.item, this.props)),\n this.props.showRemoveButton ? (React.createElement(IconButton, { iconProps: { iconName: 'Cancel', styles: { root: { fontSize: '12px' } } }, title: removeButtonAriaLabel, ariaLabel: removeButtonAriaLabel, onClick: onRemoveItem, className: classNames.closeButton })) : null));\n };\n return SuggestionsItem;\n}(React.Component));\nexport { SuggestionsItem };\n//# sourceMappingURL=SuggestionsItem.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nexport var SuggestionsItemGlobalClassNames = {\n root: 'ms-Suggestions-item',\n itemButton: 'ms-Suggestions-itemButton',\n closeButton: 'ms-Suggestions-closeButton',\n isSuggested: 'is-suggested',\n};\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f;\n var className = props.className, theme = props.theme, suggested = props.suggested;\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(SuggestionsItemGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n alignItems: 'stretch',\n boxSizing: 'border-box',\n width: '100%',\n position: 'relative',\n selectors: {\n '&:hover': {\n background: semanticColors.menuItemBackgroundHovered,\n },\n '&:hover .ms-Suggestions-closeButton': {\n display: 'block',\n },\n },\n },\n suggested && {\n selectors: (_a = {},\n _a[\".\" + IsFocusVisibleClassName + \" &\"] = {\n selectors: (_b = {},\n _b[\".\" + classNames.closeButton] = {\n display: 'block',\n background: semanticColors.menuItemBackgroundPressed,\n },\n _b),\n },\n _a[':after'] = {\n pointerEvents: 'none',\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n border: \"1px solid \" + theme.semanticColors.focusBorder,\n },\n _a),\n },\n className,\n ],\n itemButton: [\n classNames.itemButton,\n {\n width: '100%',\n padding: 0,\n border: 'none',\n height: '100%',\n // Force the item button to be collapsible so it can always shrink\n // to accommodate the close button as a peer in its flex container.\n minWidth: 0,\n // Require for IE11 to truncate the component.\n overflow: 'hidden',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'WindowText',\n selectors: {\n ':hover': __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n },\n },\n _c[':hover'] = {\n color: semanticColors.menuItemTextHovered,\n },\n _c),\n },\n suggested && [\n classNames.isSuggested,\n {\n background: semanticColors.menuItemBackgroundPressed,\n selectors: (_d = {\n ':hover': {\n background: semanticColors.menuDivider,\n }\n },\n _d[HighContrastSelector] = __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n ],\n ],\n closeButton: [\n classNames.closeButton,\n {\n display: 'none',\n color: palette.neutralSecondary,\n padding: '0 4px',\n height: 'auto',\n width: 32,\n selectors: (_e = {\n ':hover, :active': {\n background: palette.neutralTertiaryAlt,\n color: palette.neutralDark,\n }\n },\n _e[HighContrastSelector] = {\n color: 'WindowText',\n },\n _e),\n },\n suggested && (_f = {},\n _f[\".\" + IsFocusVisibleClassName + \" &\"] = {\n selectors: {\n ':hover, :active': {\n background: palette.neutralTertiary,\n },\n },\n },\n _f.selectors = {\n ':hover, :active': {\n background: palette.neutralTertiary,\n color: palette.neutralPrimary,\n },\n },\n _f),\n ],\n };\n}\n//# sourceMappingURL=SuggestionsItem.styles.js.map","import * as React from 'react';\nimport { styled, classNamesFunction } from '../../../Utilities';\nimport { IconButton } from '../../../Button';\nimport { getStyles } from './TagItem.styles';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory TagPicker}\n */\nexport var TagItemBase = function (props) {\n var theme = props.theme, styles = props.styles, selected = props.selected, disabled = props.disabled, enableTagFocusInDisabledPicker = props.enableTagFocusInDisabledPicker, children = props.children, className = props.className, index = props.index, onRemoveItem = props.onRemoveItem, removeButtonAriaLabel = props.removeButtonAriaLabel, _a = props.title, title = _a === void 0 ? typeof props.children === 'string' ? props.children : props.item.name : _a;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: selected,\n disabled: disabled,\n });\n return (React.createElement(\"div\", { className: classNames.root, role: 'listitem', key: index, \"data-selection-index\": index, \"data-is-focusable\": (enableTagFocusInDisabledPicker || !disabled) && true },\n React.createElement(\"span\", { className: classNames.text, \"aria-label\": title, title: title }, children),\n React.createElement(IconButton, { onClick: onRemoveItem, disabled: disabled, iconProps: { iconName: 'Cancel', styles: { root: { fontSize: '12px' } } }, className: classNames.close, ariaLabel: removeButtonAriaLabel })));\n};\nexport var TagItem = styled(TagItemBase, getStyles, undefined, {\n scope: 'TagItem',\n});\n//# sourceMappingURL=TagItem.js.map","import { getGlobalClassNames, getFocusStyle, HighContrastSelector } from '../../../Styling';\nimport { ButtonGlobalClassNames } from '../../Button/BaseButton.classNames';\nimport { getRTL } from '../../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-TagItem',\n text: 'ms-TagItem-text',\n close: 'ms-TagItem-close',\n isSelected: 'is-selected',\n};\nvar TAG_HEIGHT = 26;\nexport function getStyles(props) {\n var _a, _b, _c, _d;\n var className = props.className, theme = props.theme, selected = props.selected, disabled = props.disabled;\n var palette = theme.palette, effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n getFocusStyle(theme),\n {\n boxSizing: 'content-box',\n flexShrink: '1',\n margin: 2,\n height: TAG_HEIGHT,\n lineHeight: TAG_HEIGHT,\n cursor: 'default',\n userSelect: 'none',\n display: 'flex',\n flexWrap: 'nowrap',\n maxWidth: 300,\n minWidth: 0,\n borderRadius: effects.roundedCorner2,\n color: semanticColors.inputText,\n background: !selected || disabled ? palette.neutralLighter : palette.themePrimary,\n selectors: (_a = {\n ':hover': [\n !disabled &&\n !selected && {\n color: palette.neutralDark,\n background: palette.neutralLight,\n selectors: {\n '.ms-TagItem-close': {\n color: palette.neutralPrimary,\n },\n },\n },\n disabled && { background: palette.neutralLighter },\n selected && !disabled && { background: palette.themePrimary },\n ]\n },\n _a[HighContrastSelector] = {\n border: \"1px solid \" + (!selected ? 'WindowText' : 'WindowFrame'),\n },\n _a),\n },\n disabled && {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _b),\n },\n selected &&\n !disabled && [\n classNames.isSelected,\n {\n color: palette.white,\n },\n ],\n className,\n ],\n text: [\n classNames.text,\n {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n minWidth: 30,\n margin: '0 8px',\n },\n disabled && {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n ],\n close: [\n classNames.close,\n {\n color: palette.neutralSecondary,\n width: 30,\n height: '100%',\n flex: '0 0 auto',\n borderRadius: getRTL(theme)\n ? effects.roundedCorner2 + \" 0 0 \" + effects.roundedCorner2\n : \"0 \" + effects.roundedCorner2 + \" \" + effects.roundedCorner2 + \" 0\",\n selectors: {\n ':hover': {\n background: palette.neutralQuaternaryAlt,\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.white,\n backgroundColor: palette.themeDark,\n },\n },\n },\n selected && {\n color: palette.white,\n selectors: {\n ':hover': {\n color: palette.white,\n background: palette.themeDark,\n },\n },\n },\n disabled && {\n selectors: (_d = {},\n _d[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: palette.neutralSecondary,\n },\n _d),\n },\n ],\n };\n}\n//# sourceMappingURL=TagItem.styles.js.map","import * as React from 'react';\nimport { classNamesFunction, styled } from '../../../Utilities';\nimport { getStyles } from './TagItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory TagPicker}\n */\nexport var TagItemSuggestionBase = function (props) {\n var styles = props.styles, theme = props.theme, children = props.children;\n var classNames = getClassNames(styles, {\n theme: theme,\n });\n return React.createElement(\"div\", { className: classNames.suggestionTextOverflow },\n \" \",\n children,\n \" \");\n};\nexport var TagItemSuggestion = styled(TagItemSuggestionBase, getStyles, undefined, { scope: 'TagItemSuggestion' });\n//# sourceMappingURL=TagItemSuggestion.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n suggestionTextOverflow: 'ms-TagItem-TextOverflow',\n};\nexport function getStyles(props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n suggestionTextOverflow: [\n classNames.suggestionTextOverflow,\n {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '60vw',\n padding: '6px 12px 7px',\n whiteSpace: 'nowrap',\n },\n className,\n ],\n };\n}\n//# sourceMappingURL=TagItemSuggestion.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { styled, initializeComponentRef } from '../../../Utilities';\nimport { BasePicker } from '../BasePicker';\nimport { getStyles } from '../BasePicker.styles';\nimport { TagItem } from './TagItem';\nimport { TagItemSuggestion } from './TagItemSuggestion';\n/**\n * {@docCategory TagPicker}\n */\nvar TagPickerBase = /** @class */ (function (_super) {\n __extends(TagPickerBase, _super);\n function TagPickerBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n TagPickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(TagItem, __assign({}, props), props.item.name); },\n onRenderSuggestionsItem: function (props) { return React.createElement(TagItemSuggestion, null, props.name); },\n };\n return TagPickerBase;\n}(BasePicker));\nexport { TagPickerBase };\nexport var TagPicker = styled(TagPickerBase, getStyles, undefined, {\n scope: 'TagPicker',\n});\n//# sourceMappingURL=TagPicker.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getId, toMatrix, classNamesFunction, getNativeProps, htmlElementProperties, initializeComponentRef, } from '../../Utilities';\nimport { FocusZone } from '../../FocusZone';\nvar getClassNames = classNamesFunction();\nvar ButtonGridBase = /** @class */ (function (_super) {\n __extends(ButtonGridBase, _super);\n function ButtonGridBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n _this._id = props.id || getId();\n return _this;\n }\n ButtonGridBase.prototype.render = function () {\n var _this = this;\n var props = this.props;\n var items = props.items, columnCount = props.columnCount, onRenderItem = props.onRenderItem, \n /* eslint-disable deprecation/deprecation */\n _a = props.ariaPosInSet, \n /* eslint-disable deprecation/deprecation */\n ariaPosInSet = _a === void 0 ? props.positionInSet : _a, _b = props.ariaSetSize, ariaSetSize = _b === void 0 ? props.setSize : _b, \n /* eslint-enable deprecation/deprecation */\n styles = props.styles, doNotContainWithinFocusZone = props.doNotContainWithinFocusZone;\n var htmlProps = getNativeProps(this.props, htmlElementProperties, \n // avoid applying onBlur on the table if it's being used in the FocusZone\n doNotContainWithinFocusZone ? [] : ['onBlur']);\n var classNames = getClassNames(styles, { theme: this.props.theme });\n // Array to store the cells in the correct row index\n var rowsOfItems = toMatrix(items, columnCount);\n var content = (React.createElement(\"table\", __assign({ \"aria-posinset\": ariaPosInSet, \"aria-setsize\": ariaSetSize, id: this._id, role: \"grid\" }, htmlProps, { className: classNames.root }),\n React.createElement(\"tbody\", null, rowsOfItems.map(function (rows, rowIndex) {\n return (React.createElement(\"tr\", { role: 'row', key: _this._id + '-' + rowIndex + '-row' }, rows.map(function (cell, cellIndex) {\n return (React.createElement(\"td\", { role: 'presentation', key: _this._id + '-' + cellIndex + '-cell', className: classNames.tableCell }, onRenderItem(cell, cellIndex)));\n })));\n }))));\n // Create the table/grid\n return doNotContainWithinFocusZone ? (content) : (React.createElement(FocusZone, { isCircularNavigation: this.props.shouldFocusCircularNavigate, className: classNames.focusedContainer, onBlur: this.props.onBlur }, content));\n };\n return ButtonGridBase;\n}(React.Component));\nexport { ButtonGridBase };\n/**\n * @deprecated - use ButtonGridBase instead\n */\nexport var GridBase = ButtonGridBase;\n//# sourceMappingURL=ButtonGrid.base.js.map","import { styled } from '../../Utilities';\nimport { ButtonGridBase } from './ButtonGrid.base';\nimport { getStyles } from './ButtonGrid.styles';\nexport var ButtonGrid = styled(ButtonGridBase, getStyles);\n/**\n * @deprecated - use ButtonGrid instead\n */\nexport var Grid = ButtonGrid;\n//# sourceMappingURL=ButtonGrid.js.map","export var getStyles = function (props) {\n return {\n root: {\n padding: 2,\n outline: 'none',\n },\n tableCell: {\n padding: 0,\n },\n };\n};\n//# sourceMappingURL=ButtonGrid.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '../../Utilities';\nimport { CommandButton } from '../../Button';\nvar ButtonGridCell = /** @class */ (function (_super) {\n __extends(ButtonGridCell, _super);\n function ButtonGridCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onClick = function () {\n var _a = _this.props, onClick = _a.onClick, disabled = _a.disabled, item = _a.item;\n if (onClick && !disabled) {\n onClick(item);\n }\n };\n _this._onMouseEnter = function (ev) {\n var _a = _this.props, onHover = _a.onHover, disabled = _a.disabled, item = _a.item, onMouseEnter = _a.onMouseEnter;\n var didUpdateOnEnter = onMouseEnter && onMouseEnter(ev);\n if (!didUpdateOnEnter && onHover && !disabled) {\n onHover(item);\n }\n };\n _this._onMouseMove = function (ev) {\n var _a = _this.props, onHover = _a.onHover, disabled = _a.disabled, item = _a.item, onMouseMove = _a.onMouseMove;\n var didUpdateOnMove = onMouseMove && onMouseMove(ev);\n if (!didUpdateOnMove && onHover && !disabled) {\n onHover(item);\n }\n };\n _this._onMouseLeave = function (ev) {\n var _a = _this.props, onHover = _a.onHover, disabled = _a.disabled, onMouseLeave = _a.onMouseLeave;\n var didUpdateOnLeave = onMouseLeave && onMouseLeave(ev);\n if (!didUpdateOnLeave && onHover && !disabled) {\n onHover();\n }\n };\n _this._onFocus = function () {\n var _a = _this.props, onFocus = _a.onFocus, disabled = _a.disabled, item = _a.item;\n if (onFocus && !disabled) {\n onFocus(item);\n }\n };\n return _this;\n }\n ButtonGridCell.prototype.render = function () {\n var _a;\n var _b = this.props, item = _b.item, id = _b.id, className = _b.className, role = _b.role, selected = _b.selected, disabled = _b.disabled, onRenderItem = _b.onRenderItem, cellDisabledStyle = _b.cellDisabledStyle, cellIsSelectedStyle = _b.cellIsSelectedStyle, index = _b.index, label = _b.label, getClassNames = _b.getClassNames;\n return (React.createElement(CommandButton, { id: id, \"data-index\": index, \"data-is-focusable\": true, disabled: disabled, className: css(className, (_a = {},\n _a['' + cellIsSelectedStyle] = selected,\n _a['' + cellDisabledStyle] = disabled,\n _a)), onClick: this._onClick, onMouseEnter: this._onMouseEnter, onMouseMove: this._onMouseMove, onMouseLeave: this._onMouseLeave, onFocus: this._onFocus, role: role, \"aria-selected\": selected, ariaLabel: label, title: label, getClassNames: getClassNames }, onRenderItem(item)));\n };\n ButtonGridCell.defaultProps = {\n disabled: false,\n };\n return ButtonGridCell;\n}(React.Component));\nexport { ButtonGridCell };\n/**\n * @deprecated - use ButtonGridCell instead\n */\nexport var GridCell = ButtonGridCell;\n//# sourceMappingURL=ButtonGridCell.js.map","import { MAX_COLOR_ALPHA } from './consts';\n/**\n * @internal\n * Get a CSS color string from some color components.\n * If `a` is specified and not 100, returns an `rgba()` string.\n * Otherwise returns `hex` prefixed with #.\n */\nexport function _rgbaOrHexString(r, g, b, a, hex) {\n return a === MAX_COLOR_ALPHA || typeof a !== 'number' ? \"#\" + hex : \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a / MAX_COLOR_ALPHA + \")\";\n}\n//# sourceMappingURL=_rgbaOrHexString.js.map","/** Clamp a value to ensure it falls within a given range. */\nexport function clamp(value, max, min) {\n if (min === void 0) { min = 0; }\n return value < min ? min : value > max ? max : value;\n}\n//# sourceMappingURL=clamp.js.map","export var MAX_COLOR_SATURATION = 100;\nexport var MAX_COLOR_HUE = 359;\nexport var MAX_COLOR_VALUE = 100;\nexport var MAX_COLOR_RGB = 255;\n/** @deprecated Use MAX_COLOR_RGB (255) or MAX_COLOR_ALPHA (100) */\nexport var MAX_COLOR_RGBA = MAX_COLOR_RGB;\nexport var MAX_COLOR_ALPHA = 100;\n/** Minimum length for a hexadecimal color string (not including the #) */\nexport var MIN_HEX_LENGTH = 3;\n/** Maximum length for a hexadecimal color string (not including the #) */\nexport var MAX_HEX_LENGTH = 6;\n/** Minimum length for a string of an RGBA color component */\nexport var MIN_RGBA_LENGTH = 1;\n/** Maximum length for a string of an RGBA color component */\nexport var MAX_RGBA_LENGTH = 3;\n/** Regular expression matching only valid hexadecimal chars */\nexport var HEX_REGEX = /^[\\da-f]{0,6}$/i;\n/** Regular expression matching only numbers */\nexport var RGBA_REGEX = /^\\d{0,3}$/;\n//# sourceMappingURL=consts.js.map","import { MAX_COLOR_HUE, MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from './consts';\nimport { clamp } from './clamp';\n/** Corrects an HSV color to fall within the valid range. */\nexport function correctHSV(color) {\n return {\n h: clamp(color.h, MAX_COLOR_HUE),\n s: clamp(color.s, MAX_COLOR_SATURATION),\n v: clamp(color.v, MAX_COLOR_VALUE),\n };\n}\n//# sourceMappingURL=correctHSV.js.map","import { MIN_HEX_LENGTH, MAX_HEX_LENGTH } from './consts';\n/**\n * Corrects a hex color to have length 3 or 6. Defaults to white if too short.\n * Does NOT check anything besides the length (such as valid characters) and does NOT handle\n * hex values starting with # sign.\n */\nexport function correctHex(hex) {\n if (!hex || hex.length < MIN_HEX_LENGTH) {\n return 'ffffff'; // not a valid color--default to white\n }\n if (hex.length >= MAX_HEX_LENGTH) {\n return hex.substring(0, MAX_HEX_LENGTH);\n }\n return hex.substring(0, MIN_HEX_LENGTH);\n}\n//# sourceMappingURL=correctHex.js.map","import { MAX_COLOR_ALPHA, MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Corrects an RGB color to fall within the valid range. */\nexport function correctRGB(color) {\n return {\n r: clamp(color.r, MAX_COLOR_RGB),\n g: clamp(color.g, MAX_COLOR_RGB),\n b: clamp(color.b, MAX_COLOR_RGB),\n a: typeof color.a === 'number' ? clamp(color.a, MAX_COLOR_ALPHA) : color.a,\n };\n}\n//# sourceMappingURL=correctRGB.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { hsl2rgb } from './hsl2rgb';\n/**\n * Converts a valid CSS color string to an RGB color.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n * Alpha in returned color defaults to 100.\n * Four and eight digit hex values (with alpha) are supported if the current browser supports them.\n */\nexport function cssColor(color) {\n if (!color) {\n return undefined;\n }\n // Need to check the following valid color formats: RGB(A), HSL(A), hex, named color\n // First check for well formatted RGB(A), HSL(A), and hex formats at the start.\n // This is for perf (no creating an element) and catches the intentional \"transparent\" color\n // case early on.\n var easyColor = _rgba(color) || _hex6(color) || _hex3(color) || _hsla(color);\n if (easyColor) {\n return easyColor;\n }\n // if the above fails, do the more expensive catch-all\n return _browserCompute(color);\n}\n/**\n * Uses the browser's getComputedStyle() to determine what the passed-in color is.\n * This assumes _rgba, _hex6, _hex3, and _hsla have already been tried and all failed.\n * This works by attaching an element to the DOM, which may fail in server-side rendering\n * or with headless browsers.\n */\nfunction _browserCompute(str) {\n if (typeof document === 'undefined') {\n // don't throw an error when used server-side\n return undefined;\n }\n var elem = document.createElement('div');\n elem.style.backgroundColor = str;\n // This element must be attached to the DOM for getComputedStyle() to have a value\n elem.style.position = 'absolute';\n elem.style.top = '-9999px';\n elem.style.left = '-9999px';\n elem.style.height = '1px';\n elem.style.width = '1px';\n document.body.appendChild(elem);\n var eComputedStyle = getComputedStyle(elem);\n var computedColor = eComputedStyle && eComputedStyle.backgroundColor;\n document.body.removeChild(elem);\n // computedColor is always an RGB(A) string, except for invalid colors in IE/Edge which return 'transparent'\n // browsers return one of these if the color string is invalid,\n // so need to differentiate between an actual error and intentionally passing in this color\n if (computedColor === 'rgba(0, 0, 0, 0)' || computedColor === 'transparent') {\n switch (str.trim()) {\n // RGB and HSL were already checked at the start of the function\n case 'transparent':\n case '#0000':\n case '#00000000':\n return { r: 0, g: 0, b: 0, a: 0 };\n }\n return undefined;\n }\n return _rgba(computedColor);\n}\n/**\n * If `str` is in valid `rgb()` or `rgba()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _rgba(str) {\n if (!str) {\n return undefined;\n }\n var match = str.match(/^rgb(a?)\\(([\\d., ]+)\\)$/);\n if (match) {\n var hasAlpha = !!match[1];\n var expectedPartCount = hasAlpha ? 4 : 3;\n var parts = match[2].split(/ *, */).map(Number);\n if (parts.length === expectedPartCount) {\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA,\n };\n }\n }\n}\n/**\n * If `str` is in `hsl()` or `hsla()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _hsla(str) {\n var match = str.match(/^hsl(a?)\\(([\\d., ]+)\\)$/);\n if (match) {\n var hasAlpha = !!match[1];\n var expectedPartCount = hasAlpha ? 4 : 3;\n var parts = match[2].split(/ *, */).map(Number);\n if (parts.length === expectedPartCount) {\n var rgba = hsl2rgb(parts[0], parts[1], parts[2]);\n rgba.a = hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA;\n return rgba;\n }\n }\n}\n/**\n * If `str` is in valid 6-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex6(str) {\n if (str[0] === '#' && str.length === 7 && /^#[\\da-fA-F]{6}$/.test(str)) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: MAX_COLOR_ALPHA,\n };\n }\n}\n/**\n * If `str` is in valid 3-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex3(str) {\n if (str[0] === '#' && str.length === 4 && /^#[\\da-fA-F]{3}$/.test(str)) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: MAX_COLOR_ALPHA,\n };\n }\n}\n//# sourceMappingURL=cssColor.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { hsv2rgb } from './hsv2rgb';\nimport { hsv2hex } from './hsv2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Converts an HSV color (and optional alpha value) to a color object.\n * If `a` is not given, a default of 100 is used.\n * Hex in the returned value will *not* be prefixed with #.\n * If `a` is unspecified or 100, the result's `str` property will contain a hex value\n * (*not* prefixed with #)\n */\nexport function getColorFromHSV(hsv, a) {\n var h = hsv.h, s = hsv.s, v = hsv.v;\n a = typeof a === 'number' ? a : MAX_COLOR_ALPHA;\n var _a = hsv2rgb(h, s, v), r = _a.r, g = _a.g, b = _a.b;\n var hex = hsv2hex(h, s, v);\n var str = _rgbaOrHexString(r, g, b, a, hex);\n var t = MAX_COLOR_ALPHA - a;\n return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v, t: t };\n}\n//# sourceMappingURL=getColorFromHSV.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { rgb2hsv } from './rgb2hsv';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/** Converts an RGBA color to a color object (alpha defaults to 100). */\nexport function getColorFromRGBA(rgba) {\n var _a = rgba.a, a = _a === void 0 ? MAX_COLOR_ALPHA : _a, b = rgba.b, g = rgba.g, r = rgba.r;\n var _b = rgb2hsv(r, g, b), h = _b.h, s = _b.s, v = _b.v;\n var hex = rgb2hex(r, g, b);\n var str = _rgbaOrHexString(r, g, b, a, hex);\n var t = MAX_COLOR_ALPHA - a;\n return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v, t: t };\n}\n//# sourceMappingURL=getColorFromRGBA.js.map","import { __assign } from \"tslib\";\nimport { cssColor } from './cssColor';\nimport { getColorFromRGBA } from './getColorFromRGBA';\n/**\n * Converts a CSS color string to a color object.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n *\n * `inputColor` will be used unmodified as the `str` property of the returned object.\n * Alpha defaults to 100 if not specified in `inputColor`.\n * Returns undefined if the color string is invalid/not recognized.\n */\nexport function getColorFromString(inputColor) {\n var color = cssColor(inputColor);\n if (!color) {\n return;\n }\n return __assign(__assign({}, getColorFromRGBA(color)), { str: inputColor });\n}\n//# sourceMappingURL=getColorFromString.js.map","import { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from './consts';\nimport { hsv2hex } from './hsv2hex';\n/**\n * Converts a color hue to an HTML color string (with # prefix).\n * This implementation ignores all components of `color` except hue.\n */\nexport function getFullColorString(color) {\n return \"#\" + hsv2hex(color.h, MAX_COLOR_SATURATION, MAX_COLOR_VALUE);\n}\n//# sourceMappingURL=getFullColorString.js.map","/** Converts HSL components to an HSV color. */\nexport function hsl2hsv(h, s, l) {\n s *= (l < 50 ? l : 100 - l) / 100;\n var v = l + s;\n return {\n h: h,\n s: v === 0 ? 0 : ((2 * s) / v) * 100,\n v: v,\n };\n}\n//# sourceMappingURL=hsl2hsv.js.map","import { hsl2hsv } from './hsl2hsv';\nimport { hsv2rgb } from './hsv2rgb';\n/** Converts HSL components to an RGB color. Does not set the alpha value. */\nexport function hsl2rgb(h, s, l) {\n var hsv = hsl2hsv(h, s, l);\n return hsv2rgb(hsv.h, hsv.s, hsv.v);\n}\n//# sourceMappingURL=hsl2rgb.js.map","import { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\n/** Converts HSV components to a hex color string (without # prefix). */\nexport function hsv2hex(h, s, v) {\n var _a = hsv2rgb(h, s, v), r = _a.r, g = _a.g, b = _a.b;\n return rgb2hex(r, g, b);\n}\n//# sourceMappingURL=hsv2hex.js.map","import { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from './consts';\n/** Converts HSV components to an HSL color. */\nexport function hsv2hsl(h, s, v) {\n s /= MAX_COLOR_SATURATION;\n v /= MAX_COLOR_VALUE;\n var l = (2 - s) * v;\n var sl = s * v;\n sl /= l <= 1 ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return { h: h, s: sl * 100, l: l * 100 };\n}\n//# sourceMappingURL=hsv2hsl.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts HSV components to an RGB color. Does not set the alpha value. */\nexport function hsv2rgb(h, s, v) {\n s = s / 100;\n v = v / 100;\n var rgb = [];\n var c = v * s;\n var hh = h / 60;\n var x = c * (1 - Math.abs((hh % 2) - 1));\n var m = v - c;\n switch (Math.floor(hh)) {\n case 0:\n rgb = [c, x, 0];\n break;\n case 1:\n rgb = [x, c, 0];\n break;\n case 2:\n rgb = [0, c, x];\n break;\n case 3:\n rgb = [0, x, c];\n break;\n case 4:\n rgb = [x, 0, c];\n break;\n case 5:\n rgb = [c, 0, x];\n break;\n }\n return {\n r: Math.round(MAX_COLOR_RGB * (rgb[0] + m)),\n g: Math.round(MAX_COLOR_RGB * (rgb[1] + m)),\n b: Math.round(MAX_COLOR_RGB * (rgb[2] + m)),\n };\n}\n//# sourceMappingURL=hsv2rgb.js.map","import { MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Converts RGB components to a hex color string (without # prefix). */\nexport function rgb2hex(r, g, b) {\n return [_rgbToPaddedHex(r), _rgbToPaddedHex(g), _rgbToPaddedHex(b)].join('');\n}\n/** Converts an RGB component to a 0-padded hex component of length 2. */\nfunction _rgbToPaddedHex(num) {\n num = clamp(num, MAX_COLOR_RGB);\n var hex = num.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n}\n//# sourceMappingURL=rgb2hex.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts RGB components to an HSV color. */\nexport function rgb2hsv(r, g, b) {\n var h = NaN;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var delta = max - min;\n // hue\n if (delta === 0) {\n h = 0;\n }\n else if (r === max) {\n h = ((g - b) / delta) % 6;\n }\n else if (g === max) {\n h = (b - r) / delta + 2;\n }\n else if (b === max) {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n if (h < 0) {\n h += 360;\n }\n // saturation\n var s = Math.round((max === 0 ? 0 : delta / max) * 100);\n // value\n var v = Math.round((max / MAX_COLOR_RGB) * 100);\n return { h: h, s: s, v: v };\n}\n//# sourceMappingURL=rgb2hsv.js.map","import { MAX_COLOR_RGB } from './consts';\nimport { assign } from '../../Utilities';\nimport { clamp } from './clamp';\nimport { getColorFromRGBA } from './getColorFromRGBA';\nimport { hsv2hsl } from './hsv2hsl';\nimport { hsv2rgb } from './hsv2rgb';\n// Soften: to get closer to the background color's luminance\n// (softening with a white background would be lightening, with black it'd be darkening)\n// Strongen: opposite of soften\n// Luminance multiplier constants for generating shades of a given color\nvar WhiteShadeTableBG = [0.027, 0.043, 0.082, 0.145, 0.184, 0.216, 0.349, 0.537]; // white bg\nvar BlackTintTableBG = [0.537, 0.45, 0.349, 0.216, 0.184, 0.145, 0.082, 0.043]; // black bg\nvar WhiteShadeTable = [0.537, 0.349, 0.216, 0.184, 0.145, 0.082, 0.043, 0.027]; // white fg\nvar BlackTintTable = [0.537, 0.45, 0.349, 0.216, 0.184, 0.145, 0.082, 0.043]; // black fg\nvar LumTintTable = [0.88, 0.77, 0.66, 0.55, 0.44, 0.33, 0.22, 0.11]; // light (strongen all)\nvar LumShadeTable = [0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88]; // dark (soften all)\nvar ColorTintTable = [0.96, 0.84, 0.7, 0.4, 0.12]; // default soften\nvar ColorShadeTable = [0.1, 0.24, 0.44]; // default strongen\n// If the given shade's luminance is below/above these values, we'll swap to using the White/Black tables above\nvar LowLuminanceThreshold = 0.2;\nvar HighLuminanceThreshold = 0.8;\n/** Shades of a given color, from softest to strongest. */\nexport var Shade;\n(function (Shade) {\n Shade[Shade[\"Unshaded\"] = 0] = \"Unshaded\";\n Shade[Shade[\"Shade1\"] = 1] = \"Shade1\";\n Shade[Shade[\"Shade2\"] = 2] = \"Shade2\";\n Shade[Shade[\"Shade3\"] = 3] = \"Shade3\";\n Shade[Shade[\"Shade4\"] = 4] = \"Shade4\";\n Shade[Shade[\"Shade5\"] = 5] = \"Shade5\";\n Shade[Shade[\"Shade6\"] = 6] = \"Shade6\";\n Shade[Shade[\"Shade7\"] = 7] = \"Shade7\";\n Shade[Shade[\"Shade8\"] = 8] = \"Shade8\";\n // remember to update isValidShade()!\n})(Shade || (Shade = {}));\n/**\n * Returns true if the argument is a valid Shade value\n * @param shade - The Shade value to validate.\n */\nexport function isValidShade(shade) {\n return typeof shade === 'number' && shade >= Shade.Unshaded && shade <= Shade.Shade8;\n}\nfunction _isBlack(color) {\n return color.r === 0 && color.g === 0 && color.b === 0;\n}\nfunction _isWhite(color) {\n return color.r === MAX_COLOR_RGB && color.g === MAX_COLOR_RGB && color.b === MAX_COLOR_RGB;\n}\nfunction _darken(hsv, factor) {\n return {\n h: hsv.h,\n s: hsv.s,\n v: clamp(hsv.v - hsv.v * factor, 100, 0),\n };\n}\nfunction _lighten(hsv, factor) {\n return {\n h: hsv.h,\n s: clamp(hsv.s - hsv.s * factor, 100, 0),\n v: clamp(hsv.v + (100 - hsv.v) * factor, 100, 0),\n };\n}\nexport function isDark(color) {\n return hsv2hsl(color.h, color.s, color.v).l < 50;\n}\n/**\n * Given a color and a shade specification, generates the requested shade of the color.\n * Logic:\n * if white\n * darken via tables defined above\n * if black\n * lighten\n * if light\n * strongen\n * if dark\n * soften\n * else default\n * soften or strongen depending on shade#\n * @param color - The base color whose shade is to be computed\n * @param shade - The shade of the base color to compute\n * @param isInverted - Default false. Whether the given theme is inverted (reverse strongen/soften logic)\n */\nexport function getShade(color, shade, isInverted) {\n if (isInverted === void 0) { isInverted = false; }\n if (!color) {\n return null;\n }\n if (shade === Shade.Unshaded || !isValidShade(shade)) {\n return color;\n }\n var hsl = hsv2hsl(color.h, color.s, color.v);\n var hsv = { h: color.h, s: color.s, v: color.v };\n var tableIndex = shade - 1;\n var _soften = _lighten;\n var _strongen = _darken;\n if (isInverted) {\n _soften = _darken;\n _strongen = _lighten;\n }\n if (_isWhite(color)) {\n // white\n hsv = _darken(hsv, WhiteShadeTable[tableIndex]);\n }\n else if (_isBlack(color)) {\n // black\n hsv = _lighten(hsv, BlackTintTable[tableIndex]);\n }\n else if (hsl.l / 100 > HighLuminanceThreshold) {\n // light\n hsv = _strongen(hsv, LumShadeTable[tableIndex]);\n }\n else if (hsl.l / 100 < LowLuminanceThreshold) {\n // dark\n hsv = _soften(hsv, LumTintTable[tableIndex]);\n }\n else {\n // default\n if (tableIndex < ColorTintTable.length) {\n hsv = _soften(hsv, ColorTintTable[tableIndex]);\n }\n else {\n hsv = _strongen(hsv, ColorShadeTable[tableIndex - ColorTintTable.length]);\n }\n }\n return getColorFromRGBA(assign(hsv2rgb(hsv.h, hsv.s, hsv.v), { a: color.a }));\n}\n// Background shades/tints are generated differently. The provided color will be guaranteed\n// to be the darkest or lightest one. If it is <50% luminance, it will always be the darkest,\n// otherwise it will always be the lightest.\nexport function getBackgroundShade(color, shade, isInverted) {\n if (isInverted === void 0) { isInverted = false; }\n if (!color) {\n return null;\n }\n if (shade === Shade.Unshaded || !isValidShade(shade)) {\n return color;\n }\n var hsv = { h: color.h, s: color.s, v: color.v };\n var tableIndex = shade - 1;\n if (!isInverted) {\n // lightish\n hsv = _darken(hsv, WhiteShadeTableBG[tableIndex]);\n }\n else {\n // default: if (hsl.l / 100 < .5) { // darkish\n hsv = _lighten(hsv, BlackTintTableBG[BlackTintTable.length - 1 - tableIndex]);\n }\n return getColorFromRGBA(assign(hsv2rgb(hsv.h, hsv.s, hsv.v), { a: color.a }));\n}\n/* Calculates the contrast ratio between two colors. Used for verifying\n * color pairs meet minimum accessibility requirements.\n * See: https://www.w3.org/TR/WCAG20/ section 1.4.3\n */\nexport function getContrastRatio(color1, color2) {\n // Formula defined by: http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html#contrast-ratiodef\n // relative luminance: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n /* calculate the intermediate value needed to calculating relative luminance */\n function _getThing(x) {\n if (x <= 0.03928) {\n return x / 12.92;\n }\n else {\n return Math.pow((x + 0.055) / 1.055, 2.4);\n }\n }\n var r1 = _getThing(color1.r / MAX_COLOR_RGB);\n var g1 = _getThing(color1.g / MAX_COLOR_RGB);\n var b1 = _getThing(color1.b / MAX_COLOR_RGB);\n var L1 = 0.2126 * r1 + 0.7152 * g1 + 0.0722 * b1; // relative luminance of first color\n L1 += 0.05;\n var r2 = _getThing(color2.r / MAX_COLOR_RGB);\n var g2 = _getThing(color2.g / MAX_COLOR_RGB);\n var b2 = _getThing(color2.b / MAX_COLOR_RGB);\n var L2 = 0.2126 * r2 + 0.7152 * g2 + 0.0722 * b2; // relative luminance of second color\n L2 += 0.05;\n // return the lighter color divided by darker\n return L1 / L2 > 1 ? L1 / L2 : L2 / L1;\n}\n//# sourceMappingURL=shades.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given alpha value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateA(color, a) {\n return __assign(__assign({}, color), { a: a, t: MAX_COLOR_ALPHA - a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateA.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same saturation and value as `color` and the other components updated\n * to match the given hue.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateH(color, h) {\n var _a = hsv2rgb(h, color.s, color.v), r = _a.r, g = _a.g, b = _a.b;\n var hex = rgb2hex(r, g, b);\n return __assign(__assign({}, color), { h: h,\n r: r,\n g: g,\n b: b,\n hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateH.js.map","import { getColorFromRGBA } from './getColorFromRGBA';\n/**\n * Gets a color with a single RGBA component updated to a new value.\n * Does not modify the original `color`. Alpha defaults to 100 if not set.\n */\nexport function updateRGB(color, component, value) {\n var _a;\n return getColorFromRGBA((_a = {\n r: color.r,\n g: color.g,\n b: color.b,\n a: color.a\n },\n _a[component] = value,\n _a));\n}\n//# sourceMappingURL=updateRGB.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same hue as `color` and other components updated to match the given\n * saturation and value.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateSV(color, s, v) {\n var _a = hsv2rgb(color.h, s, v), r = _a.r, g = _a.g, b = _a.b;\n var hex = rgb2hex(r, g, b);\n return __assign(__assign({}, color), { s: s,\n v: v,\n r: r,\n g: g,\n b: b,\n hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateSV.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given transparency value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateT(color, t) {\n var a = MAX_COLOR_ALPHA - t;\n return __assign(__assign({}, color), { t: t,\n a: a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateT.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n // Item is not checkable.\n return null;\n}\nexport function hasSubmenu(item) {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n __extends(BaseDecorator, _super);\n function BaseDecorator(props) {\n var _this = _super.call(this, props) || this;\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n return _this;\n }\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n }\n else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n };\n return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a default responsive mode.\n */\nexport function setResponsiveMode(responsiveMode) {\n _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n */\nexport function initializeResponsiveMode(element) {\n if (typeof window !== 'undefined') {\n var currentWindow = (element && getWindow(element)) || window;\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return _a = (_defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode), (_a !== null && _a !== void 0 ? _a : ResponsiveMode.large);\n}\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n try {\n return currentWindow.document.documentElement.clientWidth;\n }\n catch (e) {\n return currentWindow.innerWidth;\n }\n}\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { findScrollableParent, getRect, getWindow, Async, EventGroup } from '../../Utilities';\nvar RESIZE_DELAY = 500;\nvar MAX_RESIZE_ATTEMPTS = 3;\n/**\n * A decorator to update decorated component on viewport or window resize events.\n *\n * @param ComposedComponent - decorated React component reference.\n */\nexport function withViewport(ComposedComponent) {\n return /** @class */ (function (_super) {\n __extends(WithViewportComponent, _super);\n function WithViewportComponent(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._registerResizeObserver = function () {\n var win = getWindow(_this._root.current);\n _this._viewportResizeObserver = new win.ResizeObserver(_this._onAsyncResize);\n _this._viewportResizeObserver.observe(_this._root.current);\n };\n _this._unregisterResizeObserver = function () {\n if (_this._viewportResizeObserver) {\n _this._viewportResizeObserver.disconnect();\n delete _this._viewportResizeObserver;\n }\n };\n /* Note: using lambda here because decorators don't seem to work in decorators. */\n _this._updateViewport = function (withForceUpdate) {\n var viewport = _this.state.viewport;\n var viewportElement = _this._root.current;\n var scrollElement = findScrollableParent(viewportElement);\n var scrollRect = getRect(scrollElement);\n var clientRect = getRect(viewportElement);\n var updateComponent = function () {\n if (withForceUpdate && _this._composedComponentInstance) {\n _this._composedComponentInstance.forceUpdate();\n }\n };\n var isSizeChanged = (clientRect && clientRect.width) !== viewport.width || (scrollRect && scrollRect.height) !== viewport.height;\n if (isSizeChanged && _this._resizeAttempts < MAX_RESIZE_ATTEMPTS && clientRect && scrollRect) {\n _this._resizeAttempts++;\n _this.setState({\n viewport: {\n width: clientRect.width,\n height: scrollRect.height,\n },\n }, function () {\n _this._updateViewport(withForceUpdate);\n });\n }\n else {\n _this._resizeAttempts = 0;\n updateComponent();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._resizeAttempts = 0;\n _this.state = {\n viewport: {\n width: 0,\n height: 0,\n },\n };\n return _this;\n }\n WithViewportComponent.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, delayFirstMeasure = _a.delayFirstMeasure, disableResizeObserver = _a.disableResizeObserver, skipViewportMeasures = _a.skipViewportMeasures;\n var win = getWindow(this._root.current);\n this._onAsyncResize = this._async.debounce(this._onAsyncResize, RESIZE_DELAY, {\n leading: false,\n });\n if (!skipViewportMeasures) {\n if (!disableResizeObserver && this._isResizeObserverAvailable()) {\n this._registerResizeObserver();\n }\n else {\n this._events.on(win, 'resize', this._onAsyncResize);\n }\n if (delayFirstMeasure) {\n this._async.setTimeout(function () {\n _this._updateViewport();\n }, RESIZE_DELAY);\n }\n else {\n this._updateViewport();\n }\n }\n };\n WithViewportComponent.prototype.componentDidUpdate = function (previousProps) {\n var previousSkipViewportMeasures = previousProps.skipViewportMeasures;\n var _a = this.props, disableResizeObserver = _a.disableResizeObserver, skipViewportMeasures = _a.skipViewportMeasures;\n var win = getWindow(this._root.current);\n if (skipViewportMeasures !== previousSkipViewportMeasures) {\n if (!skipViewportMeasures) {\n if (!disableResizeObserver && this._isResizeObserverAvailable()) {\n if (!this._viewportResizeObserver) {\n this._registerResizeObserver();\n }\n }\n else {\n this._events.on(win, 'resize', this._onAsyncResize);\n }\n this._updateViewport();\n }\n else {\n this._unregisterResizeObserver();\n this._events.off(win, 'resize', this._onAsyncResize);\n }\n }\n };\n WithViewportComponent.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n this._unregisterResizeObserver();\n };\n WithViewportComponent.prototype.render = function () {\n var viewport = this.state.viewport;\n var newViewport = viewport.width > 0 && viewport.height > 0 ? viewport : undefined;\n return (React.createElement(\"div\", { className: \"ms-Viewport\", ref: this._root, style: { minWidth: 1, minHeight: 1 } },\n React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, viewport: newViewport }, this.props))));\n };\n WithViewportComponent.prototype.forceUpdate = function () {\n this._updateViewport(true);\n };\n WithViewportComponent.prototype._onAsyncResize = function () {\n this._updateViewport();\n };\n WithViewportComponent.prototype._isResizeObserverAvailable = function () {\n var win = getWindow(this._root.current);\n return win && win.ResizeObserver;\n };\n return WithViewportComponent;\n }(BaseDecorator));\n}\n//# sourceMappingURL=withViewport.js.map","import { EventGroup, getDocument } from '../../Utilities';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar DragDropHelper = /** @class */ (function () {\n function DragDropHelper(params) {\n this._selection = params.selection;\n this._dragEnterCounts = {};\n this._activeTargets = {};\n this._lastId = 0;\n // To make this class cheap to create, which allows simplifying some logic elsewhere,\n // only initialize the event group and global event handlers as needed.\n this._initialized = false;\n }\n DragDropHelper.prototype.dispose = function () {\n if (this._events) {\n this._events.dispose();\n }\n };\n DragDropHelper.prototype.subscribe = function (root, events, dragDropOptions) {\n var _this = this;\n if (!this._initialized) {\n this._events = new EventGroup(this);\n var doc = getDocument();\n // clear drag data when mouse up, use capture event to ensure it will be run\n if (doc) {\n this._events.on(doc.body, 'mouseup', this._onMouseUp.bind(this), true);\n this._events.on(doc, 'mouseup', this._onDocumentMouseUp.bind(this), true);\n }\n this._initialized = true;\n }\n var _a = dragDropOptions.key, key = _a === void 0 ? \"\" + ++this._lastId : _a;\n var handlers = [];\n var onDragStart;\n var onDragLeave;\n var onDragEnter;\n var onDragEnd;\n var onDrop;\n var onDragOver;\n var onMouseDown;\n var isDraggable;\n var isDroppable;\n var activeTarget;\n if (dragDropOptions && root) {\n var eventMap = dragDropOptions.eventMap, context = dragDropOptions.context, updateDropState_1 = dragDropOptions.updateDropState;\n var dragDropTarget = {\n root: root,\n options: dragDropOptions,\n key: key,\n };\n isDraggable = this._isDraggable(dragDropTarget);\n isDroppable = this._isDroppable(dragDropTarget);\n if (isDraggable || isDroppable) {\n if (eventMap) {\n for (var _i = 0, eventMap_1 = eventMap; _i < eventMap_1.length; _i++) {\n var event_1 = eventMap_1[_i];\n var handler = {\n callback: event_1.callback.bind(null, context),\n eventName: event_1.eventName,\n };\n handlers.push(handler);\n this._events.on(root, handler.eventName, handler.callback);\n }\n }\n }\n if (isDroppable) {\n // If the target is droppable, wire up global event listeners to track drop-related events.\n onDragLeave = function (event) {\n if (!event.isHandled) {\n event.isHandled = true;\n _this._dragEnterCounts[key]--;\n if (_this._dragEnterCounts[key] === 0) {\n updateDropState_1(false /* isDropping */, event);\n }\n }\n };\n onDragEnter = function (event) {\n event.preventDefault(); // needed for IE\n if (!event.isHandled) {\n event.isHandled = true;\n _this._dragEnterCounts[key]++;\n if (_this._dragEnterCounts[key] === 1) {\n updateDropState_1(true /* isDropping */, event);\n }\n }\n };\n onDragEnd = function (event) {\n _this._dragEnterCounts[key] = 0;\n updateDropState_1(false /* isDropping */, event);\n };\n onDrop = function (event) {\n _this._dragEnterCounts[key] = 0;\n updateDropState_1(false /* isDropping */, event);\n if (dragDropOptions.onDrop) {\n dragDropOptions.onDrop(dragDropOptions.context.data, event);\n }\n };\n onDragOver = function (event) {\n event.preventDefault();\n if (dragDropOptions.onDragOver) {\n dragDropOptions.onDragOver(dragDropOptions.context.data, event);\n }\n };\n this._dragEnterCounts[key] = 0;\n // dragenter and dragleave will be fired when hover to the child element\n // but we only want to change state when enter or leave the current element\n // use the count to ensure it.\n events.on(root, 'dragenter', onDragEnter);\n events.on(root, 'dragleave', onDragLeave);\n events.on(root, 'dragend', onDragEnd);\n events.on(root, 'drop', onDrop);\n events.on(root, 'dragover', onDragOver);\n }\n if (isDraggable) {\n // If the target is draggable, wire up local event listeners for mouse events.\n onMouseDown = this._onMouseDown.bind(this, dragDropTarget);\n onDragEnd = this._onDragEnd.bind(this, dragDropTarget);\n // We need to add in data so that on Firefox we show the ghost element when dragging\n onDragStart = function (event) {\n var options = dragDropOptions;\n if (options && options.onDragStart) {\n options.onDragStart(options.context.data, options.context.index, _this._selection.getSelection(), event);\n }\n _this._isDragging = true;\n if (event.dataTransfer) {\n event.dataTransfer.setData('id', root.id);\n }\n };\n events.on(root, 'dragstart', onDragStart);\n events.on(root, 'mousedown', onMouseDown);\n events.on(root, 'dragend', onDragEnd);\n }\n activeTarget = {\n target: dragDropTarget,\n dispose: function () {\n if (_this._activeTargets[key] === activeTarget) {\n delete _this._activeTargets[key];\n }\n if (root) {\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n _this._events.off(root, handler.eventName, handler.callback);\n }\n if (isDroppable) {\n events.off(root, 'dragenter', onDragEnter);\n events.off(root, 'dragleave', onDragLeave);\n events.off(root, 'dragend', onDragEnd);\n events.off(root, 'dragover', onDragOver);\n events.off(root, 'drop', onDrop);\n }\n if (isDraggable) {\n events.off(root, 'dragstart', onDragStart);\n events.off(root, 'mousedown', onMouseDown);\n events.off(root, 'dragend', onDragEnd);\n }\n }\n },\n };\n this._activeTargets[key] = activeTarget;\n }\n return {\n key: key,\n dispose: function () {\n if (activeTarget) {\n activeTarget.dispose();\n }\n },\n };\n };\n DragDropHelper.prototype.unsubscribe = function (root, key) {\n var activeTarget = this._activeTargets[key];\n if (activeTarget) {\n activeTarget.dispose();\n }\n };\n DragDropHelper.prototype._onDragEnd = function (target, event) {\n var options = target.options;\n if (options.onDragEnd) {\n options.onDragEnd(options.context.data, event);\n }\n };\n /**\n * clear drag data when mouse up on body\n */\n DragDropHelper.prototype._onMouseUp = function (event) {\n this._isDragging = false;\n if (this._dragData) {\n for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n var key = _a[_i];\n var activeTarget = this._activeTargets[key];\n if (activeTarget.target.root) {\n this._events.off(activeTarget.target.root, 'mousemove');\n this._events.off(activeTarget.target.root, 'mouseleave');\n }\n }\n if (this._dragData.dropTarget) {\n // raise dragleave event to let dropTarget know it need to remove dropping style\n EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n EventGroup.raise(this._dragData.dropTarget.root, 'drop');\n }\n }\n this._dragData = null;\n };\n /**\n * clear drag data when mouse up outside of the document\n */\n DragDropHelper.prototype._onDocumentMouseUp = function (event) {\n var doc = getDocument();\n if (doc && event.target === doc.documentElement) {\n this._onMouseUp(event);\n }\n };\n /**\n * when mouse move over a new drop target while dragging some items,\n * fire dragleave on the old target and fire dragenter to the new target\n * The target will handle style change on dragenter and dragleave events.\n */\n DragDropHelper.prototype._onMouseMove = function (target, event) {\n var \n // use buttons property here since ev.button in some edge case is not updating well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n _a = event.buttons, \n // use buttons property here since ev.button in some edge case is not updating well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n buttons = _a === void 0 ? MOUSEMOVE_PRIMARY_BUTTON : _a;\n if (this._dragData && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n // cancel mouse down event and return early when the primary button is not pressed\n this._onMouseUp(event);\n return;\n }\n var root = target.root, key = target.key;\n if (this._isDragging) {\n if (this._isDroppable(target)) {\n // we can have nested drop targets in the DOM, like a folder inside a group. In that case, when we drag into\n // the inner target (folder), we first set dropTarget to the inner element. But the same event is bubbled to the\n // outer target too, and we need to prevent the outer one from taking over.\n // So, check if the last dropTarget is not a child of the current.\n if (this._dragData) {\n if (this._dragData.dropTarget &&\n this._dragData.dropTarget.key !== key &&\n !this._isChild(root, this._dragData.dropTarget.root)) {\n if (this._dragEnterCounts[this._dragData.dropTarget.key] > 0) {\n EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n EventGroup.raise(root, 'dragenter');\n this._dragData.dropTarget = target;\n }\n }\n }\n }\n }\n };\n /**\n * when mouse leave a target while dragging some items, fire dragleave to the target\n */\n DragDropHelper.prototype._onMouseLeave = function (target, event) {\n if (this._isDragging) {\n if (this._dragData && this._dragData.dropTarget && this._dragData.dropTarget.key === target.key) {\n EventGroup.raise(target.root, 'dragleave');\n this._dragData.dropTarget = undefined;\n }\n }\n };\n /**\n * when mouse down on a draggable item, we start to track dragdata.\n */\n DragDropHelper.prototype._onMouseDown = function (target, event) {\n if (event.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n // Ignore anything except the primary button.\n return;\n }\n if (this._isDraggable(target)) {\n this._dragData = {\n clientX: event.clientX,\n clientY: event.clientY,\n eventTarget: event.target,\n dragTarget: target,\n };\n for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n var key = _a[_i];\n var activeTarget = this._activeTargets[key];\n if (activeTarget.target.root) {\n this._events.on(activeTarget.target.root, 'mousemove', this._onMouseMove.bind(this, activeTarget.target));\n this._events.on(activeTarget.target.root, 'mouseleave', this._onMouseLeave.bind(this, activeTarget.target));\n }\n }\n }\n else {\n this._dragData = null;\n }\n };\n /**\n * determine whether the child target is a descendant of the parent\n */\n DragDropHelper.prototype._isChild = function (parentElement, childElement) {\n while (childElement && childElement.parentElement) {\n if (childElement.parentElement === parentElement) {\n return true;\n }\n childElement = childElement.parentElement;\n }\n return false;\n };\n DragDropHelper.prototype._isDraggable = function (target) {\n var options = target.options;\n return !!(options.canDrag && options.canDrag(options.context.data));\n };\n DragDropHelper.prototype._isDroppable = function (target) {\n // TODO: take the drag item into consideration to prevent dragging an item into the same group\n var options = target.options;\n var dragContext = this._dragData && this._dragData.dragTarget ? this._dragData.dragTarget.options.context : undefined;\n return !!(options.canDrop && options.canDrop(options.context, dragContext));\n };\n return DragDropHelper;\n}());\nexport { DragDropHelper };\n//# sourceMappingURL=DragDropHelper.js.map","import { __spreadArrays } from \"tslib\";\n/**\n * Takes an array of groups and returns a count of the groups and all descendant groups.\n * @param groups - The array of groups to count.\n */\nexport var GetGroupCount = function (groups) {\n var total = 0;\n if (groups) {\n var remainingGroups = __spreadArrays(groups);\n var currentGroup = void 0;\n while (remainingGroups && remainingGroups.length > 0) {\n ++total;\n currentGroup = remainingGroups.pop();\n if (currentGroup && currentGroup.children) {\n remainingGroups.push.apply(remainingGroups, currentGroup.children);\n }\n }\n }\n return total;\n};\n//# sourceMappingURL=GroupedListUtility.js.map","import * as React from 'react';\nimport { getWindow } from '@uifabric/utilities';\nimport { useOnEvent } from '@uifabric/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\n/**\n * Hook to get the current responsive mode (window size category).\n */\nexport var useResponsiveMode = function (elementRef) {\n var _a = React.useState(getInitialResponsiveMode), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n var onResize = React.useCallback(function () {\n // Setting the same value should not cause a re-render.\n var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n if (lastResponsiveMode !== newResponsiveMode) {\n setLastResponsiveMode(newResponsiveMode);\n }\n }, [elementRef, lastResponsiveMode]);\n useOnEvent(window, 'resize', onResize);\n // Call resize function initially on mount.\n React.useEffect(function () {\n onResize();\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount\n }, []);\n return lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","import { find } from '../../Utilities';\n/**\n * Tests for equality between two IKeytipTransitionKeys.\n *\n * @param key1 - First IKeytipTransitionKey.\n * @param key2 - Second IKeytipTransitionKey.\n * @returns T/F if the transition keys are equal.\n */\nexport function transitionKeysAreEqual(key1, key2) {\n if (key1.key !== key2.key) {\n return false;\n }\n var mod1 = key1.modifierKeys;\n var mod2 = key2.modifierKeys;\n if ((!mod1 && mod2) || (mod1 && !mod2)) {\n // Not equal if one modifier is defined and the other isn't\n return false;\n }\n if (mod1 && mod2) {\n if (mod1.length !== mod2.length) {\n return false;\n }\n // Sort both arrays\n mod1 = mod1.sort();\n mod2 = mod2.sort();\n for (var i = 0; i < mod1.length; i++) {\n if (mod1[i] !== mod2[i]) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Tests if 'key' is present in 'keys'.\n *\n * @param keys - Array of IKeytipTransitionKey.\n * @param key - IKeytipTransitionKey to find in 'keys'.\n * @returns T/F if 'keys' contains 'key'.\n */\nexport function transitionKeysContain(keys, key) {\n return !!find(keys, function (transitionKey) {\n return transitionKeysAreEqual(transitionKey, key);\n });\n}\n//# sourceMappingURL=IKeytipTransitionKey.js.map","import { __assign } from \"tslib\";\n/**\n * Builds a map of ID to IKeytipProps\n *\n * @param config - IKeytipConfig object\n * @returns Config map\n */\nexport function buildKeytipConfigMap(config) {\n var configMap = {};\n for (var _i = 0, _a = config.keytips; _i < _a.length; _i++) {\n var keytip = _a[_i];\n constructKeytip(configMap, [], keytip);\n }\n return configMap;\n}\n/**\n * Constructs a keytip from an IKeytipConfigItem and puts it in the configMap\n *\n * @param configMap - IKeytipConfigMap to store the keytip in\n * @param parentSequence - string of the parent keytip\n * @param keytip - IKeytipConfigItem data\n */\nexport function constructKeytip(configMap, parentSequence, keytip) {\n // Compute full key sequence\n var sequence = keytip.sequence ? keytip.sequence : keytip.content.toLocaleLowerCase();\n var keytipSequence = parentSequence.concat(sequence);\n // Save props in configMap\n var keytipProps = __assign(__assign({}, keytip.optionalProps), { keySequences: keytipSequence, content: keytip.content });\n configMap[keytip.id] = keytipProps;\n if (keytip.children) {\n for (var _i = 0, _a = keytip.children; _i < _a.length; _i++) {\n var child = _a[_i];\n // Create keytips for all children\n constructKeytip(configMap, keytipSequence, child);\n }\n }\n}\n//# sourceMappingURL=KeytipConfig.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n function KeytipManager() {\n this.keytips = {};\n this.persistedKeytips = {};\n this.sequenceMapping = {};\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n this.inKeytipMode = false;\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n this.shouldEnterKeytipMode = true;\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n this.delayUpdatingKeytipChange = false;\n }\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n KeytipManager.getInstance = function () {\n return this._instance;\n };\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n };\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n KeytipManager.prototype.register = function (keytipProps, persisted) {\n if (persisted === void 0) { persisted = false; }\n var props = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n var uniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event_1, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n return uniqueKeytip.uniqueID;\n };\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n var newKeytipProps = this.addParentOverflow(keytipProps);\n var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n var oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n };\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n if (persisted === void 0) { persisted = false; }\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n };\n /**\n * Manual call to enter keytip mode\n */\n KeytipManager.prototype.enterKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n };\n /**\n * Manual call to exit keytip mode\n */\n KeytipManager.prototype.exitKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n };\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n KeytipManager.prototype.getKeytips = function () {\n var _this = this;\n return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n };\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n var fullSequence = __spreadArrays(keytipProps.keySequences);\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n }\n }\n return keytipProps;\n };\n /**\n * Public function to bind for overflow items that have a submenu\n */\n KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences: overflowButtonSequences,\n keytipSequences: keytipSequences,\n });\n };\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n if (uniqueID === void 0) { uniqueID = getId(); }\n return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n };\n KeytipManager._instance = new KeytipManager();\n return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","import { __spreadArrays } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n return keySequences.reduce(function (prevValue, keySequence) {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n var overflowSequenceLen = overflowKeySequences.length;\n var overflowSequence = __spreadArrays(overflowKeySequences).pop();\n var newKeySequences = __spreadArrays(keySequences);\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n var describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge, } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n var outOfBounds = [];\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n var edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reveserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n if (edge > 0) {\n return value;\n }\n else {\n return value * -1;\n }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n */\nfunction _moveEdge(rect, edge, newValue) {\n var difference = _getEdgeValue(rect, edge) - newValue;\n rect = _setEdgeValue(rect, edge, newValue);\n rect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n return rect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n if (gap === void 0) { gap = 0; }\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n if (gap === void 0) { gap = 0; }\n var oppositeEdge = targetEdge * -1;\n var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the original position should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, gap) {\n if (gap === void 0) { gap = 0; }\n var directions = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n var currentEstimate = rect;\n var currentEdge = positionData.targetEdge;\n var currentAlignment = positionData.alignmentEdge;\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (var i = 0; i < 4; i++) {\n if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n }\n else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n }\n }\n else {\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n }\n return {\n elementRectangle: rect,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when alignTargetEdge is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n var oppositeEdge = alignmentEdge * -1;\n var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n var elementEstimate = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n var outOfBounds = _getOutOfBoundsEdges(element, bounding);\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n }\n else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding);\n }\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding);\n }\n return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n elementEstimate.elementRectangle = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n }\n return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n var elementMiddle = _getCenterValue(rect, edge);\n var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var estimatedElementPosition;\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(elementToPosition, target, targetEdge, gap)\n : _alignOppositeEdges(elementToPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n var targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n }\n else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n }\n else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n/**\n * Retrieve the final value for the return edge of elementRectangle. If the elementRectangle is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n if (bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n return returnEdge * -1;\n }\n return returnEdge;\n}\n/**\n * Finalizes the element positon based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the callou shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var elementEdgeString = RectangleEdge[elementEdge];\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n if (!doNotFinalizeReturnEdge) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[elementEdgeString] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n/**\n * Get's the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n var targetCenter = _getCenterValue(target, targetEdge);\n var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n }\n else {\n return negativeEdge;\n }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n }\n else {\n return _adjustFitWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);\n }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n var targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n var returnValue = {};\n var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n return {\n elementPosition: __assign({}, returnValue),\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n var target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n }\n else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n var clientRect = element.getBoundingClientRect();\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n var targetRectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!target.preventDefault) {\n var ev = target;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n }\n else if (!!target.getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n var rectOrPoint = target;\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n var top_1 = rectOrPoint.top || rectOrPoint.y;\n var right = rectOrPoint.right || left;\n var bottom = rectOrPoint.bottom || top_1;\n targetRectangle = new Rectangle(left, right, top_1, bottom);\n }\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n var direction = outOfBounds_1[_i];\n targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n }\n }\n }\n else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n var maxHeight = 0;\n var directionalHint = DirectionalDictionary[targetEdge];\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n }\n else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n }\n else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {\n var gap = props.gapSpace ? props.gapSpace : 0;\n var targetRect = _getTargetRect(boundingRect, props.target);\n var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);\n return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge);\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions) {\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {\n var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n var positionProps = props;\n positionProps.gapSpace = gap;\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);\n var beakPositioned = _positionBeak(beakWidth, positionedElement);\n var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions) {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n _finalizePositionData: _finalizePositionData,\n _finalizeBeakPosition: _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds: _positionElementWithinBounds,\n _positionBeak: _positionBeak,\n _getPositionData: _getPositionData,\n _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions) {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions) {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions) {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {\n if (gapSpace === void 0) { gapSpace = 0; }\n var mouseTarget = target;\n var elementTarget = target;\n var rectOrPointTarget = target;\n var targetRect;\n var boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPointTarget.left || rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n var top = rectOrPointTarget.top || rectOrPointTarget.y;\n var right = rectOrPointTarget.right || left;\n var bottom = rectOrPointTarget.bottom || top;\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n }\n else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n }\n else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n var segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n // Logic for determining dual screen scenarios.\n var x = 0;\n var y = 0;\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!target.getBoundingClientRect) {\n var clientRect = target.getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = target.left || target.x;\n // eslint-disable-next-line deprecation/deprecation\n y = target.top || target.y;\n }\n var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n var segment = segments_1[_i];\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n//# sourceMappingURL=positioning.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n Position[Position[\"top\"] = 0] = \"top\";\n Position[Position[\"bottom\"] = 1] = \"bottom\";\n Position[Position[\"start\"] = 2] = \"start\";\n Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","export function getAllSelectedOptions(options, selectedIndices) {\n var selectedOptions = [];\n for (var _i = 0, selectedIndices_1 = selectedIndices; _i < selectedIndices_1.length; _i++) {\n var index = selectedIndices_1[_i];\n var option = options[index];\n if (option) {\n selectedOptions.push(option);\n }\n }\n return selectedOptions;\n}\n//# sourceMappingURL=SelectableOption.js.map","export var SelectableOptionMenuItemType;\n(function (SelectableOptionMenuItemType) {\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Normal\"] = 0] = \"Normal\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Divider\"] = 1] = \"Divider\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Header\"] = 2] = \"Header\";\n})(SelectableOptionMenuItemType || (SelectableOptionMenuItemType = {}));\n//# sourceMappingURL=SelectableOption.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, KeyCodes, elementContains, findScrollableParent, getParent, getDocument, getWindow, isElementTabbable, css, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport { SelectionMode } from './interfaces';\n// Selection definitions:\n//\n// Anchor index: the point from which a range selection starts.\n// Focus index: the point from which layout movement originates from.\n//\n// These two can differ. Tests:\n//\n// If you start at index 5\n// Shift click to index 10\n// The focus is 10, the anchor is 5.\n// If you shift click at index 0\n// The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.\n// If you click index 8\n// The anchor and focus are set to 8.\nvar SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';\nvar SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';\nvar SELECTION_SPAN_ATTRIBUTE_NAME = 'data-selection-span';\nvar SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';\nvar SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';\nvar SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';\nvar SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';\nvar SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';\n/**\n * {@docCategory Selection}\n */\nvar SelectionZone = /** @class */ (function (_super) {\n __extends(SelectionZone, _super);\n function SelectionZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n /**\n * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone\n * react to the event. Note that focus events in IE \\<= 11 will occur asynchronously after .focus() has\n * been called on an element, so we need a flag to store the idea that we will bypass the \"next\"\n * focus event that occurs. This method does that.\n */\n _this.ignoreNextFocus = function () {\n _this._handleNextFocus(false);\n };\n _this._onSelectionChange = function () {\n var selection = _this.props.selection;\n var isModal = selection.isModal && selection.isModal();\n _this.setState({\n isModal: isModal,\n });\n };\n _this._onMouseDownCapture = function (ev) {\n var target = ev.target;\n if (document.activeElement !== target && !elementContains(document.activeElement, target)) {\n _this.ignoreNextFocus();\n return;\n }\n if (!elementContains(target, _this._root.current)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n _this.ignoreNextFocus();\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * When we focus an item, for single/multi select scenarios, we should try to select it immediately\n * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them\n * specially.\n */\n _this._onFocus = function (ev) {\n var target = ev.target;\n var selection = _this.props.selection;\n var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;\n var selectionMode = _this._getSelectionMode();\n if (_this._shouldHandleFocus && selectionMode !== SelectionMode.none) {\n var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);\n var itemRoot = _this._findItemRoot(target);\n if (!isToggle && itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (span === undefined) {\n if (isToggleModifierPressed) {\n // set anchor only.\n selection.setIndexSelected(index, selection.isIndexSelected(index), true);\n if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {\n selection.setModal(true);\n _this._setIsTouch(false);\n }\n }\n else {\n if (_this.props.isSelectedOnFocus) {\n _this._onItemSurfaceClick('focus', index);\n }\n }\n }\n }\n }\n _this._handleNextFocus(false);\n };\n _this._onMouseDown = function (ev) {\n _this._updateModifiers(ev);\n var toggleWithoutModifierPressed = _this.props.toggleWithoutModifierPressed;\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n // No-op if selection is disabled\n if (_this._isSelectionDisabled(target)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n break;\n }\n else if (itemRoot) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&\n !_this._isShiftPressed &&\n !_this._isCtrlPressed &&\n !_this._isMetaPressed &&\n !toggleWithoutModifierPressed) {\n _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot), _this._getItemSpan(itemRoot));\n break;\n }\n else if (_this.props.disableAutoSelectOnInputElements &&\n (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onTouchStartCapture = function (ev) {\n _this._setIsTouch(true);\n };\n _this._onClick = function (ev) {\n var _a = _this.props.enableTouchInvocationTarget, enableTouchInvocationTarget = _a === void 0 ? false : _a;\n _this._updateModifiers(ev);\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n _this._onToggleAllClick(ev);\n }\n break;\n }\n else if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n if (_this._isShiftPressed) {\n _this._onItemSurfaceClick('click', index, span);\n }\n else {\n _this._onToggleClick(ev, index, span);\n }\n }\n break;\n }\n else if ((_this._isTouch &&\n enableTouchInvocationTarget &&\n _this._hasAttribute(target, SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME)) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n }\n break;\n }\n else if (target === itemRoot) {\n if (!isSelectionDisabled) {\n _this._onItemSurfaceClick('click', index, span);\n }\n break;\n }\n else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onContextMenu = function (ev) {\n var target = ev.target;\n var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;\n if (onItemContextMenu) {\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n _this._onInvokeMouseDown(ev, index);\n var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);\n // In order to keep back compat, if the value here is undefined, then we should still\n // call preventDefault(). Only in the case where true is explicitly returned should\n // the call be skipped.\n if (!skipPreventDefault) {\n ev.preventDefault();\n }\n }\n }\n };\n /**\n * In multi selection, if you double click within an item's root (but not within the invoke element or\n * input elements), we should execute the invoke handler.\n */\n _this._onDoubleClick = function (ev) {\n var target = ev.target;\n var onItemInvoked = _this.props.onItemInvoked;\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {\n var index = _this._getItemIndex(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (target === itemRoot) {\n _this._onInvokeClick(ev, index);\n break;\n }\n target = getParent(target);\n }\n target = getParent(target);\n }\n };\n _this._onKeyDownCapture = function (ev) {\n _this._updateModifiers(ev);\n _this._handleNextFocus(true);\n };\n _this._onKeyDown = function (ev) {\n _this._updateModifiers(ev);\n var target = ev.target;\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n var _a = _this.props, selection = _a.selection, selectionClearedOnEscapePress = _a.selectionClearedOnEscapePress;\n // eslint-disable-next-line deprecation/deprecation\n var isSelectAllKey = ev.which === KeyCodes.a && (_this._isCtrlPressed || _this._isMetaPressed);\n var isClearSelectionKey = ev.which === KeyCodes.escape;\n // Ignore key downs from input elements.\n if (_this._isInputElement(target)) {\n // A key was pressed while an item in this zone was focused.\n return;\n }\n var selectionMode = _this._getSelectionMode();\n // If ctrl-a is pressed, select all (if all are not already selected.)\n if (isSelectAllKey && selectionMode === SelectionMode.multiple && !selection.isAllSelected()) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(true);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n // If escape is pressed and the component is configured to clear on escape press,\n // clear selection (if any are selected.)\n if (selectionClearedOnEscapePress && isClearSelectionKey && selection.getSelectedCount() > 0) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(false);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n var itemRoot = _this._findItemRoot(target);\n // If a key was pressed within an item, we should treat \"enters\" as invokes and \"space\" as toggle\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n // For toggle elements, assuming they are rendered as buttons, they will generate a click event,\n // so we can no-op for any keydowns in this case.\n break;\n }\n else if (_this._shouldAutoSelect(target)) {\n if (!isSelectionDisabled && span === undefined) {\n // If the event went to an element which should trigger auto-select, select it and then let\n // the default behavior kick in.\n _this._onInvokeMouseDown(ev, index, span);\n }\n break;\n }\n else if ((ev.which === KeyCodes.enter || ev.which === KeyCodes.space) &&\n (target.tagName === 'BUTTON' || target.tagName === 'A' || target.tagName === 'INPUT')) {\n return false;\n }\n else if (target === itemRoot) {\n if (ev.which === KeyCodes.enter) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n ev.preventDefault();\n }\n return;\n }\n else if (ev.which === KeyCodes.space) {\n if (!isSelectionDisabled) {\n _this._onToggleClick(ev, index, span);\n }\n ev.preventDefault();\n return;\n }\n break;\n }\n target = getParent(target);\n }\n }\n };\n _this._events = new EventGroup(_this);\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n var selection = _this.props.selection;\n // Reflect the initial modal state of selection into the state.\n var isModal = selection.isModal && selection.isModal();\n _this.state = {\n isModal: isModal,\n };\n return _this;\n }\n SelectionZone.getDerivedStateFromProps = function (nextProps, prevState) {\n var isModal = nextProps.selection.isModal && nextProps.selection.isModal();\n return __assign(__assign({}, prevState), { isModal: isModal });\n };\n SelectionZone.prototype.componentDidMount = function () {\n var win = getWindow(this._root.current);\n // Track the latest modifier keys globally.\n this._events.on(win, 'keydown, keyup', this._updateModifiers, true);\n this._events.on(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(document.body, 'touchstart', this._onTouchStartCapture, true);\n this._events.on(document.body, 'touchend', this._onTouchStartCapture, true);\n // Subscribe to the selection to keep modal state updated.\n this._events.on(this.props.selection, 'change', this._onSelectionChange);\n };\n SelectionZone.prototype.render = function () {\n var isModal = this.state.isModal;\n return (React.createElement(\"div\", { className: css('ms-SelectionZone', this.props.className, {\n 'ms-SelectionZone--modal': !!isModal,\n }), ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: \"presentation\", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus, \"data-selection-is-modal\": isModal ? true : undefined },\n this.props.children,\n React.createElement(FocusRects, null)));\n };\n SelectionZone.prototype.componentDidUpdate = function (previousProps) {\n var selection = this.props.selection;\n if (selection !== previousProps.selection) {\n // Whenever selection changes, update the subscripton to keep modal state updated.\n this._events.off(previousProps.selection);\n this._events.on(selection, 'change', this._onSelectionChange);\n }\n };\n SelectionZone.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n SelectionZone.prototype._isSelectionDisabled = function (target) {\n if (this._getSelectionMode() === SelectionMode.none) {\n return true;\n }\n while (target !== this._root.current) {\n if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {\n return true;\n }\n target = getParent(target);\n }\n return false;\n };\n SelectionZone.prototype._onToggleAllClick = function (ev) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n selection.toggleAllSelected();\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n SelectionZone.prototype._onToggleClick = function (ev, index, span) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n selection.setChangeEvents(false);\n if (this.props.enterModalOnTouch &&\n this._isTouch &&\n (span !== undefined ? !selection.isRangeSelected(index, span) : !selection.isIndexSelected(index)) &&\n selection.setModal) {\n selection.setModal(true);\n this._setIsTouch(false);\n }\n if (selectionMode === SelectionMode.multiple) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n if (span === undefined || span === 1) {\n var isSelected = selection.isIndexSelected(index);\n var isModal = selection.isModal && selection.isModal();\n selection.setAllSelected(false);\n selection.setIndexSelected(index, !isSelected, true);\n if (isModal && selection.setModal) {\n // Since the above call to setAllSelected(false) clears modal state,\n // restore it. This occurs because the SelectionMode of the Selection\n // may differ from the SelectionZone.\n selection.setModal(true);\n }\n }\n }\n else {\n selection.setChangeEvents(true);\n return;\n }\n selection.setChangeEvents(true);\n ev.stopPropagation();\n // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior\n // for checkboxes if you use a checkbox for the toggle.\n };\n SelectionZone.prototype._onInvokeClick = function (ev, index) {\n var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;\n if (onItemInvoked) {\n onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n SelectionZone.prototype._onItemSurfaceClick = function (type, index, span) {\n var _a, _b;\n var _c = this.props, selection = _c.selection, toggleWithoutModifierPressed = _c.toggleWithoutModifierPressed;\n var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n if (this._isShiftPressed && !this._isTabPressed) {\n if (span !== undefined) {\n (_b = (_a = selection).selectToRange) === null || _b === void 0 ? void 0 : _b.call(_a, index, span, !isToggleModifierPressed);\n }\n else {\n selection.selectToIndex(index, !isToggleModifierPressed);\n }\n }\n else if (type === 'click' && (isToggleModifierPressed || toggleWithoutModifierPressed)) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else {\n this._clearAndSelectIndex(index, span);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n this._clearAndSelectIndex(index, span);\n }\n };\n SelectionZone.prototype._onInvokeMouseDown = function (ev, index, span) {\n var selection = this.props.selection;\n if (span !== undefined) {\n if (selection.isRangeSelected(index, span)) {\n return;\n }\n }\n else {\n // Only do work if item is not selected.\n if (selection.isIndexSelected(index)) {\n return;\n }\n }\n this._clearAndSelectIndex(index, span);\n };\n /**\n * To avoid high startup cost of traversing the DOM on component mount,\n * defer finding the scrollable parent until a click interaction.\n *\n * The styles will probably already calculated since we're running in a click handler,\n * so this is less likely to cause layout thrashing then doing it in mount.\n */\n SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {\n var scrollParent = findScrollableParent(this._root.current);\n // unbind this handler and replace binding with a binding on the actual scrollable parent\n this._events.off(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);\n // If we clicked inside the scrollable parent, call through to the handler on this click.\n if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {\n this._tryClearOnEmptyClick(ev);\n }\n };\n SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {\n if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {\n this.props.selection.setAllSelected(false);\n }\n };\n SelectionZone.prototype._clearAndSelectIndex = function (index, span) {\n var _a, _b;\n var _c = this.props, selection = _c.selection, _d = _c.selectionClearedOnSurfaceClick, selectionClearedOnSurfaceClick = _d === void 0 ? true : _d;\n var isAlreadySingleSelected = (span === undefined || span === 1) && selection.getSelectedCount() === 1 && selection.isIndexSelected(index);\n if (!isAlreadySingleSelected && selectionClearedOnSurfaceClick) {\n var isModal = selection.isModal && selection.isModal();\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n if (span !== undefined) {\n (_b = (_a = selection).setRangeSelected) === null || _b === void 0 ? void 0 : _b.call(_a, index, span, true, true);\n }\n else {\n selection.setIndexSelected(index, true, true);\n }\n if (isModal || (this.props.enterModalOnTouch && this._isTouch)) {\n if (selection.setModal) {\n selection.setModal(true);\n }\n if (this._isTouch) {\n this._setIsTouch(false);\n }\n }\n selection.setChangeEvents(true);\n }\n };\n /**\n * We need to track the modifier key states so that when focus events occur, which do not contain\n * modifier states in the Event object, we know how to behave.\n */\n SelectionZone.prototype._updateModifiers = function (ev) {\n this._isShiftPressed = ev.shiftKey;\n this._isCtrlPressed = ev.ctrlKey;\n this._isMetaPressed = ev.metaKey;\n var keyCode = ev.keyCode;\n this._isTabPressed = keyCode ? keyCode === KeyCodes.tab : false;\n };\n SelectionZone.prototype._findItemRoot = function (target) {\n var selection = this.props.selection;\n while (target !== this._root.current) {\n var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);\n var index = Number(indexValue);\n if (indexValue !== null && index >= 0 && index < selection.getItems().length) {\n break;\n }\n target = getParent(target);\n }\n if (target === this._root.current) {\n return undefined;\n }\n return target;\n };\n SelectionZone.prototype._getItemIndex = function (itemRoot) {\n var _a;\n var indexValue = parseInt((_a = itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME), (_a !== null && _a !== void 0 ? _a : '')), 10);\n return isNaN(indexValue) ? -1 : indexValue;\n };\n SelectionZone.prototype._getItemSpan = function (itemRoot) {\n var _a;\n var spanValue = parseInt((_a = itemRoot.getAttribute(SELECTION_SPAN_ATTRIBUTE_NAME), (_a !== null && _a !== void 0 ? _a : '')), 10);\n return isNaN(spanValue) ? undefined : spanValue;\n };\n SelectionZone.prototype._shouldAutoSelect = function (element) {\n return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);\n };\n SelectionZone.prototype._hasAttribute = function (element, attributeName) {\n var isToggle = false;\n while (!isToggle && element !== this._root.current) {\n var value = element.getAttribute(attributeName);\n if (value === 'false') {\n isToggle = false;\n break;\n }\n isToggle = value === 'true';\n element = getParent(element);\n }\n return isToggle;\n };\n SelectionZone.prototype._isInputElement = function (element) {\n return element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';\n };\n SelectionZone.prototype._isNonHandledClick = function (element) {\n var doc = getDocument();\n if (doc && element) {\n while (element && element !== doc.documentElement) {\n if (isElementTabbable(element)) {\n return false;\n }\n element = getParent(element);\n }\n }\n return true;\n };\n SelectionZone.prototype._handleNextFocus = function (handleFocus) {\n var _this = this;\n if (this._shouldHandleFocusTimeoutId) {\n this._async.clearTimeout(this._shouldHandleFocusTimeoutId);\n this._shouldHandleFocusTimeoutId = undefined;\n }\n this._shouldHandleFocus = handleFocus;\n if (handleFocus) {\n this._async.setTimeout(function () {\n _this._shouldHandleFocus = false;\n }, 100);\n }\n };\n SelectionZone.prototype._setIsTouch = function (isTouch) {\n var _this = this;\n if (this._isTouchTimeoutId) {\n this._async.clearTimeout(this._isTouchTimeoutId);\n this._isTouchTimeoutId = undefined;\n }\n this._isTouch = true;\n if (isTouch) {\n this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 300);\n }\n };\n SelectionZone.prototype._getSelectionMode = function () {\n var selection = this.props.selection;\n var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : SelectionMode.none : _a;\n return selectionMode;\n };\n SelectionZone.defaultProps = {\n isSelectedOnFocus: true,\n toggleWithoutModifierPressed: false,\n selectionMode: SelectionMode.multiple,\n selectionClearedOnEscapePress: true,\n };\n return SelectionZone;\n}(React.Component));\nexport { SelectionZone };\n//# sourceMappingURL=SelectionZone.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('office-ui-fabric-react', '7.203.0');\n//# sourceMappingURL=version.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","module.exports = require('./lib/index')\n","'use strict';\n\n/* eslint-disable global-require */\n\nif (!module.hot || process.env.NODE_ENV === 'production') {\n module.exports = require('./AppContainer.prod');\n} else {\n module.exports = require('./AppContainer.dev');\n}","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/prop-types */\n\nvar React = require('react');\n\nvar Component = React.Component;\n\nvar AppContainer = function (_Component) {\n _inherits(AppContainer, _Component);\n\n function AppContainer() {\n _classCallCheck(this, AppContainer);\n\n return _possibleConstructorReturn(this, (AppContainer.__proto__ || Object.getPrototypeOf(AppContainer)).apply(this, arguments));\n }\n\n _createClass(AppContainer, [{\n key: 'render',\n value: function render() {\n if (this.props.component) {\n return React.createElement(this.props.component, this.props.props);\n }\n\n return React.Children.only(this.props.children);\n }\n }]);\n\n return AppContainer;\n}(Component);\n\nmodule.exports = AppContainer;","'use strict';\n\n/* eslint-disable global-require */\n\nif (!module.hot || process.env.NODE_ENV === 'production') {\n module.exports = require('./index.prod');\n} else {\n module.exports = require('./index.dev');\n}","'use strict';\n\nmodule.exports.AppContainer = require('./AppContainer');","'use strict';\n\n/* eslint-disable global-require */\n\nif (!module.hot || process.env.NODE_ENV === 'production') {\n module.exports = require('./patch.prod');\n} else {\n module.exports = require('./patch.dev');\n}","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","module.exports = require('./lib/patch')\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/*! @azure/msal-browser v4.0.2 2025-01-22 */\n'use strict';\n'use strict';\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n DSTS: \"dstsv2\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // CIAM URL\r\n CIAM_AUTH_URL: \".ciamlogin.com\",\r\n AAD_TENANT_DOMAIN_SUFFIX: \".onmicrosoft.com\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n NOT_APPLICABLE: \"N/A\",\r\n NOT_AVAILABLE: \"Not Available\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n KNOWN_PUBLIC_CLOUDS: [\r\n \"login.microsoftonline.com\",\r\n \"login.windows.net\",\r\n \"login.microsoft.com\",\r\n \"sts.windows.net\",\r\n ],\r\n TOKEN_RESPONSE_TYPE: \"token\",\r\n ID_TOKEN_RESPONSE_TYPE: \"id_token\",\r\n SHR_NONCE_VALIDITY: 240,\r\n INVALID_INSTANCE: \"invalid_instance\",\r\n};\r\nconst HttpStatus = {\r\n SUCCESS: 200,\r\n SUCCESS_RANGE_START: 200,\r\n SUCCESS_RANGE_END: 299,\r\n REDIRECT: 302,\r\n CLIENT_ERROR: 400,\r\n CLIENT_ERROR_RANGE_START: 400,\r\n BAD_REQUEST: 400,\r\n UNAUTHORIZED: 401,\r\n NOT_FOUND: 404,\r\n REQUEST_TIMEOUT: 408,\r\n TOO_MANY_REQUESTS: 429,\r\n CLIENT_ERROR_RANGE_END: 499,\r\n SERVER_ERROR: 500,\r\n SERVER_ERROR_RANGE_START: 500,\r\n SERVICE_UNAVAILABLE: 503,\r\n GATEWAY_TIMEOUT: 504,\r\n SERVER_ERROR_RANGE_END: 599,\r\n MULTI_SIDED_ERROR: 600,\r\n};\r\nconst OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE,\r\n];\r\nconst OIDC_SCOPES = [...OIDC_DEFAULT_SCOPES, Constants.EMAIL_SCOPE];\r\n/**\r\n * Request header names\r\n */\r\nconst HeaderNames = {\r\n CONTENT_TYPE: \"Content-Type\",\r\n CONTENT_LENGTH: \"Content-Length\",\r\n RETRY_AFTER: \"Retry-After\",\r\n CCS_HEADER: \"X-AnchorMailbox\",\r\n WWWAuthenticate: \"WWW-Authenticate\",\r\n AuthenticationInfo: \"Authentication-Info\",\r\n X_MS_REQUEST_ID: \"x-ms-request-id\",\r\n X_MS_HTTP_VERSION: \"x-ms-httpver\",\r\n};\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nconst PersistentCacheKeys = {\r\n ACTIVE_ACCOUNT_FILTERS: \"active-account-filters\", // new cache entry for active_account for a more robust version for browser\r\n};\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nconst AADAuthorityConstants = {\r\n COMMON: \"common\",\r\n ORGANIZATIONS: \"organizations\",\r\n CONSUMERS: \"consumers\",\r\n};\r\n/**\r\n * Claims request keys\r\n */\r\nconst ClaimsRequestKeys = {\r\n ACCESS_TOKEN: \"access_token\",\r\n XMS_CC: \"xms_cc\",\r\n};\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nconst PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\",\r\n NO_SESSION: \"no_session\",\r\n};\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nconst CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\",\r\n};\r\n/**\r\n * allowed values for server response type\r\n */\r\nconst ServerResponseType = {\r\n QUERY: \"query\",\r\n FRAGMENT: \"fragment\",\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nconst ResponseMode = {\r\n ...ServerResponseType,\r\n FORM_POST: \"form_post\",\r\n};\r\n/**\r\n * allowed grant_type\r\n */\r\nconst GrantType = {\r\n IMPLICIT_GRANT: \"implicit\",\r\n AUTHORIZATION_CODE_GRANT: \"authorization_code\",\r\n CLIENT_CREDENTIALS_GRANT: \"client_credentials\",\r\n RESOURCE_OWNER_PASSWORD_GRANT: \"password\",\r\n REFRESH_TOKEN_GRANT: \"refresh_token\",\r\n DEVICE_CODE_GRANT: \"device_code\",\r\n JWT_BEARER: \"urn:ietf:params:oauth:grant-type:jwt-bearer\",\r\n};\r\n/**\r\n * Account types in Cache\r\n */\r\nconst CacheAccountType = {\r\n MSSTS_ACCOUNT_TYPE: \"MSSTS\",\r\n ADFS_ACCOUNT_TYPE: \"ADFS\",\r\n MSAV1_ACCOUNT_TYPE: \"MSA\",\r\n GENERIC_ACCOUNT_TYPE: \"Generic\", // NTLM, Kerberos, FBA, Basic etc\r\n};\r\n/**\r\n * Separators used in cache\r\n */\r\nconst Separators = {\r\n CACHE_KEY_SEPARATOR: \"-\",\r\n CLIENT_INFO_SEPARATOR: \".\",\r\n};\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nconst CredentialType = {\r\n ID_TOKEN: \"IdToken\",\r\n ACCESS_TOKEN: \"AccessToken\",\r\n ACCESS_TOKEN_WITH_AUTH_SCHEME: \"AccessToken_With_AuthScheme\",\r\n REFRESH_TOKEN: \"RefreshToken\",\r\n};\r\n/**\r\n * More Cache related constants\r\n */\r\nconst APP_METADATA = \"appmetadata\";\r\nconst CLIENT_INFO = \"client_info\";\r\nconst THE_FAMILY_ID = \"1\";\r\nconst AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24, // 24 Hours\r\n};\r\nconst AuthorityMetadataSource = {\r\n CONFIG: \"config\",\r\n CACHE: \"cache\",\r\n NETWORK: \"network\",\r\n HARDCODED_VALUES: \"hardcoded_values\",\r\n};\r\nconst SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\",\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nconst AuthenticationScheme = {\r\n BEARER: \"Bearer\",\r\n POP: \"pop\",\r\n SSH: \"ssh-cert\",\r\n};\r\n/**\r\n * Constants related to throttling\r\n */\r\nconst ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\",\r\n};\r\nconst Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nconst PasswordGrantConstants = {\r\n username: \"username\",\r\n password: \"password\",\r\n};\r\n/**\r\n * Response codes\r\n */\r\nconst ResponseCodes = {\r\n httpSuccess: 200,\r\n httpBadRequest: 400,\r\n};\r\n/**\r\n * Region Discovery Sources\r\n */\r\nconst RegionDiscoverySources = {\r\n FAILED_AUTO_DETECTION: \"1\",\r\n INTERNAL_CACHE: \"2\",\r\n ENVIRONMENT_VARIABLE: \"3\",\r\n IMDS: \"4\",\r\n};\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nconst RegionDiscoveryOutcomes = {\r\n CONFIGURED_MATCHES_DETECTED: \"1\",\r\n CONFIGURED_NO_AUTO_DETECTION: \"2\",\r\n CONFIGURED_NOT_DETECTED: \"3\",\r\n AUTO_DETECTION_REQUESTED_SUCCESSFUL: \"4\",\r\n AUTO_DETECTION_REQUESTED_FAILED: \"5\",\r\n};\r\n/**\r\n * Specifies the reason for fetching the access token from the identity provider\r\n */\r\nconst CacheOutcome = {\r\n // When a token is found in the cache or the cache is not supposed to be hit when making the request\r\n NOT_APPLICABLE: \"0\",\r\n // When the token request goes to the identity provider because force_refresh was set to true. Also occurs if claims were requested\r\n FORCE_REFRESH_OR_CLAIMS: \"1\",\r\n // When the token request goes to the identity provider because no cached access token exists\r\n NO_CACHED_ACCESS_TOKEN: \"2\",\r\n // When the token request goes to the identity provider because cached access token expired\r\n CACHED_ACCESS_TOKEN_EXPIRED: \"3\",\r\n // When the token request goes to the identity provider because refresh_in was used and the existing token needs to be refreshed\r\n PROACTIVELY_REFRESHED: \"4\",\r\n};\r\nconst JsonWebTokenTypes = {\r\n Jwt: \"JWT\",\r\n Jwk: \"JWK\",\r\n Pop: \"pop\",\r\n};\r\n// Token renewal offset default in seconds\r\nconst DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nconst unexpectedError = \"unexpected_error\";\r\nconst postRequestFailed$1 = \"post_request_failed\";\n\nvar AuthErrorCodes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n postRequestFailed: postRequestFailed$1,\n unexpectedError: unexpectedError\n});\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst AuthErrorMessages = {\r\n [unexpectedError]: \"Unexpected error in authentication.\",\r\n [postRequestFailed$1]: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\",\r\n};\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n * @deprecated Use AuthErrorCodes instead\r\n */\r\nconst AuthErrorMessage = {\r\n unexpectedError: {\r\n code: unexpectedError,\r\n desc: AuthErrorMessages[unexpectedError],\r\n },\r\n postRequestFailed: {\r\n code: postRequestFailed$1,\r\n desc: AuthErrorMessages[postRequestFailed$1],\r\n },\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nclass AuthError extends Error {\r\n constructor(errorCode, errorMessage, suberror) {\r\n const errorString = errorMessage\r\n ? `${errorCode}: ${errorMessage}`\r\n : errorCode;\r\n super(errorString);\r\n Object.setPrototypeOf(this, AuthError.prototype);\r\n this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n this.errorMessage = errorMessage || Constants.EMPTY_STRING;\r\n this.subError = suberror || Constants.EMPTY_STRING;\r\n this.name = \"AuthError\";\r\n }\r\n setCorrelationId(correlationId) {\r\n this.correlationId = correlationId;\r\n }\r\n}\r\nfunction createAuthError(code, additionalMessage) {\r\n return new AuthError(code, additionalMessage\r\n ? `${AuthErrorMessages[code]} ${additionalMessage}`\r\n : AuthErrorMessages[code]);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst clientInfoDecodingError = \"client_info_decoding_error\";\r\nconst clientInfoEmptyError = \"client_info_empty_error\";\r\nconst tokenParsingError = \"token_parsing_error\";\r\nconst nullOrEmptyToken = \"null_or_empty_token\";\r\nconst endpointResolutionError = \"endpoints_resolution_error\";\r\nconst networkError = \"network_error\";\r\nconst openIdConfigError = \"openid_config_error\";\r\nconst hashNotDeserialized = \"hash_not_deserialized\";\r\nconst invalidState = \"invalid_state\";\r\nconst stateMismatch = \"state_mismatch\";\r\nconst stateNotFound = \"state_not_found\";\r\nconst nonceMismatch = \"nonce_mismatch\";\r\nconst authTimeNotFound = \"auth_time_not_found\";\r\nconst maxAgeTranspired = \"max_age_transpired\";\r\nconst multipleMatchingTokens = \"multiple_matching_tokens\";\r\nconst multipleMatchingAccounts = \"multiple_matching_accounts\";\r\nconst multipleMatchingAppMetadata = \"multiple_matching_appMetadata\";\r\nconst requestCannotBeMade = \"request_cannot_be_made\";\r\nconst cannotRemoveEmptyScope = \"cannot_remove_empty_scope\";\r\nconst cannotAppendScopeSet = \"cannot_append_scopeset\";\r\nconst emptyInputScopeSet = \"empty_input_scopeset\";\r\nconst deviceCodePollingCancelled = \"device_code_polling_cancelled\";\r\nconst deviceCodeExpired = \"device_code_expired\";\r\nconst deviceCodeUnknownError = \"device_code_unknown_error\";\r\nconst noAccountInSilentRequest = \"no_account_in_silent_request\";\r\nconst invalidCacheRecord = \"invalid_cache_record\";\r\nconst invalidCacheEnvironment = \"invalid_cache_environment\";\r\nconst noAccountFound = \"no_account_found\";\r\nconst noCryptoObject = \"no_crypto_object\";\r\nconst unexpectedCredentialType = \"unexpected_credential_type\";\r\nconst invalidAssertion = \"invalid_assertion\";\r\nconst invalidClientCredential = \"invalid_client_credential\";\r\nconst tokenRefreshRequired = \"token_refresh_required\";\r\nconst userTimeoutReached = \"user_timeout_reached\";\r\nconst tokenClaimsCnfRequiredForSignedJwt = \"token_claims_cnf_required_for_signedjwt\";\r\nconst authorizationCodeMissingFromServerResponse = \"authorization_code_missing_from_server_response\";\r\nconst bindingKeyNotRemoved = \"binding_key_not_removed\";\r\nconst endSessionEndpointNotSupported = \"end_session_endpoint_not_supported\";\r\nconst keyIdMissing = \"key_id_missing\";\r\nconst noNetworkConnectivity$1 = \"no_network_connectivity\";\r\nconst userCanceled = \"user_canceled\";\r\nconst missingTenantIdError = \"missing_tenant_id_error\";\r\nconst methodNotImplemented = \"method_not_implemented\";\r\nconst nestedAppAuthBridgeDisabled = \"nested_app_auth_bridge_disabled\";\n\nvar ClientAuthErrorCodes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n authTimeNotFound: authTimeNotFound,\n authorizationCodeMissingFromServerResponse: authorizationCodeMissingFromServerResponse,\n bindingKeyNotRemoved: bindingKeyNotRemoved,\n cannotAppendScopeSet: cannotAppendScopeSet,\n cannotRemoveEmptyScope: cannotRemoveEmptyScope,\n clientInfoDecodingError: clientInfoDecodingError,\n clientInfoEmptyError: clientInfoEmptyError,\n deviceCodeExpired: deviceCodeExpired,\n deviceCodePollingCancelled: deviceCodePollingCancelled,\n deviceCodeUnknownError: deviceCodeUnknownError,\n emptyInputScopeSet: emptyInputScopeSet,\n endSessionEndpointNotSupported: endSessionEndpointNotSupported,\n endpointResolutionError: endpointResolutionError,\n hashNotDeserialized: hashNotDeserialized,\n invalidAssertion: invalidAssertion,\n invalidCacheEnvironment: invalidCacheEnvironment,\n invalidCacheRecord: invalidCacheRecord,\n invalidClientCredential: invalidClientCredential,\n invalidState: invalidState,\n keyIdMissing: keyIdMissing,\n maxAgeTranspired: maxAgeTranspired,\n methodNotImplemented: methodNotImplemented,\n missingTenantIdError: missingTenantIdError,\n multipleMatchingAccounts: multipleMatchingAccounts,\n multipleMatchingAppMetadata: multipleMatchingAppMetadata,\n multipleMatchingTokens: multipleMatchingTokens,\n nestedAppAuthBridgeDisabled: nestedAppAuthBridgeDisabled,\n networkError: networkError,\n noAccountFound: noAccountFound,\n noAccountInSilentRequest: noAccountInSilentRequest,\n noCryptoObject: noCryptoObject,\n noNetworkConnectivity: noNetworkConnectivity$1,\n nonceMismatch: nonceMismatch,\n nullOrEmptyToken: nullOrEmptyToken,\n openIdConfigError: openIdConfigError,\n requestCannotBeMade: requestCannotBeMade,\n stateMismatch: stateMismatch,\n stateNotFound: stateNotFound,\n tokenClaimsCnfRequiredForSignedJwt: tokenClaimsCnfRequiredForSignedJwt,\n tokenParsingError: tokenParsingError,\n tokenRefreshRequired: tokenRefreshRequired,\n unexpectedCredentialType: unexpectedCredentialType,\n userCanceled: userCanceled,\n userTimeoutReached: userTimeoutReached\n});\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nconst ClientAuthErrorMessages = {\r\n [clientInfoDecodingError]: \"The client info could not be parsed/decoded correctly\",\r\n [clientInfoEmptyError]: \"The client info was empty\",\r\n [tokenParsingError]: \"Token cannot be parsed\",\r\n [nullOrEmptyToken]: \"The token is null or empty\",\r\n [endpointResolutionError]: \"Endpoints cannot be resolved\",\r\n [networkError]: \"Network request failed\",\r\n [openIdConfigError]: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\",\r\n [hashNotDeserialized]: \"The hash parameters could not be deserialized\",\r\n [invalidState]: \"State was not the expected format\",\r\n [stateMismatch]: \"State mismatch error\",\r\n [stateNotFound]: \"State not found\",\r\n [nonceMismatch]: \"Nonce mismatch error\",\r\n [authTimeNotFound]: \"Max Age was requested and the ID token is missing the auth_time variable.\" +\r\n \" auth_time is an optional claim and is not enabled by default - it must be enabled.\" +\r\n \" See https://aka.ms/msaljs/optional-claims for more information.\",\r\n [maxAgeTranspired]: \"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.\",\r\n [multipleMatchingTokens]: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\",\r\n [multipleMatchingAccounts]: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\",\r\n [multipleMatchingAppMetadata]: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\",\r\n [requestCannotBeMade]: \"Token request cannot be made without authorization code or refresh token.\",\r\n [cannotRemoveEmptyScope]: \"Cannot remove null or empty scope from ScopeSet\",\r\n [cannotAppendScopeSet]: \"Cannot append ScopeSet\",\r\n [emptyInputScopeSet]: \"Empty input ScopeSet cannot be processed\",\r\n [deviceCodePollingCancelled]: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\",\r\n [deviceCodeExpired]: \"Device code is expired.\",\r\n [deviceCodeUnknownError]: \"Device code stopped polling for unknown reasons.\",\r\n [noAccountInSilentRequest]: \"Please pass an account object, silent flow is not supported without account information\",\r\n [invalidCacheRecord]: \"Cache record object was null or undefined.\",\r\n [invalidCacheEnvironment]: \"Invalid environment when attempting to create cache entry\",\r\n [noAccountFound]: \"No account found in cache for given key.\",\r\n [noCryptoObject]: \"No crypto object detected.\",\r\n [unexpectedCredentialType]: \"Unexpected credential type.\",\r\n [invalidAssertion]: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\",\r\n [invalidClientCredential]: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\",\r\n [tokenRefreshRequired]: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\",\r\n [userTimeoutReached]: \"User defined timeout for device code polling reached\",\r\n [tokenClaimsCnfRequiredForSignedJwt]: \"Cannot generate a POP jwt if the token_claims are not populated\",\r\n [authorizationCodeMissingFromServerResponse]: \"Server response does not contain an authorization code to proceed\",\r\n [bindingKeyNotRemoved]: \"Could not remove the credential's binding key from storage.\",\r\n [endSessionEndpointNotSupported]: \"The provided authority does not support logout\",\r\n [keyIdMissing]: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\",\r\n [noNetworkConnectivity$1]: \"No network connectivity. Check your internet connection.\",\r\n [userCanceled]: \"User cancelled the flow.\",\r\n [missingTenantIdError]: \"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.\",\r\n [methodNotImplemented]: \"This method has not been implemented\",\r\n [nestedAppAuthBridgeDisabled]: \"The nested app auth bridge is disabled\",\r\n};\r\n/**\r\n * String constants used by error codes and messages.\r\n * @deprecated Use ClientAuthErrorCodes instead\r\n */\r\nconst ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: clientInfoDecodingError,\r\n desc: ClientAuthErrorMessages[clientInfoDecodingError],\r\n },\r\n clientInfoEmptyError: {\r\n code: clientInfoEmptyError,\r\n desc: ClientAuthErrorMessages[clientInfoEmptyError],\r\n },\r\n tokenParsingError: {\r\n code: tokenParsingError,\r\n desc: ClientAuthErrorMessages[tokenParsingError],\r\n },\r\n nullOrEmptyToken: {\r\n code: nullOrEmptyToken,\r\n desc: ClientAuthErrorMessages[nullOrEmptyToken],\r\n },\r\n endpointResolutionError: {\r\n code: endpointResolutionError,\r\n desc: ClientAuthErrorMessages[endpointResolutionError],\r\n },\r\n networkError: {\r\n code: networkError,\r\n desc: ClientAuthErrorMessages[networkError],\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: openIdConfigError,\r\n desc: ClientAuthErrorMessages[openIdConfigError],\r\n },\r\n hashNotDeserialized: {\r\n code: hashNotDeserialized,\r\n desc: ClientAuthErrorMessages[hashNotDeserialized],\r\n },\r\n invalidStateError: {\r\n code: invalidState,\r\n desc: ClientAuthErrorMessages[invalidState],\r\n },\r\n stateMismatchError: {\r\n code: stateMismatch,\r\n desc: ClientAuthErrorMessages[stateMismatch],\r\n },\r\n stateNotFoundError: {\r\n code: stateNotFound,\r\n desc: ClientAuthErrorMessages[stateNotFound],\r\n },\r\n nonceMismatchError: {\r\n code: nonceMismatch,\r\n desc: ClientAuthErrorMessages[nonceMismatch],\r\n },\r\n authTimeNotFoundError: {\r\n code: authTimeNotFound,\r\n desc: ClientAuthErrorMessages[authTimeNotFound],\r\n },\r\n maxAgeTranspired: {\r\n code: maxAgeTranspired,\r\n desc: ClientAuthErrorMessages[maxAgeTranspired],\r\n },\r\n multipleMatchingTokens: {\r\n code: multipleMatchingTokens,\r\n desc: ClientAuthErrorMessages[multipleMatchingTokens],\r\n },\r\n multipleMatchingAccounts: {\r\n code: multipleMatchingAccounts,\r\n desc: ClientAuthErrorMessages[multipleMatchingAccounts],\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: multipleMatchingAppMetadata,\r\n desc: ClientAuthErrorMessages[multipleMatchingAppMetadata],\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: requestCannotBeMade,\r\n desc: ClientAuthErrorMessages[requestCannotBeMade],\r\n },\r\n removeEmptyScopeError: {\r\n code: cannotRemoveEmptyScope,\r\n desc: ClientAuthErrorMessages[cannotRemoveEmptyScope],\r\n },\r\n appendScopeSetError: {\r\n code: cannotAppendScopeSet,\r\n desc: ClientAuthErrorMessages[cannotAppendScopeSet],\r\n },\r\n emptyInputScopeSetError: {\r\n code: emptyInputScopeSet,\r\n desc: ClientAuthErrorMessages[emptyInputScopeSet],\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: deviceCodePollingCancelled,\r\n desc: ClientAuthErrorMessages[deviceCodePollingCancelled],\r\n },\r\n DeviceCodeExpired: {\r\n code: deviceCodeExpired,\r\n desc: ClientAuthErrorMessages[deviceCodeExpired],\r\n },\r\n DeviceCodeUnknownError: {\r\n code: deviceCodeUnknownError,\r\n desc: ClientAuthErrorMessages[deviceCodeUnknownError],\r\n },\r\n NoAccountInSilentRequest: {\r\n code: noAccountInSilentRequest,\r\n desc: ClientAuthErrorMessages[noAccountInSilentRequest],\r\n },\r\n invalidCacheRecord: {\r\n code: invalidCacheRecord,\r\n desc: ClientAuthErrorMessages[invalidCacheRecord],\r\n },\r\n invalidCacheEnvironment: {\r\n code: invalidCacheEnvironment,\r\n desc: ClientAuthErrorMessages[invalidCacheEnvironment],\r\n },\r\n noAccountFound: {\r\n code: noAccountFound,\r\n desc: ClientAuthErrorMessages[noAccountFound],\r\n },\r\n noCryptoObj: {\r\n code: noCryptoObject,\r\n desc: ClientAuthErrorMessages[noCryptoObject],\r\n },\r\n unexpectedCredentialType: {\r\n code: unexpectedCredentialType,\r\n desc: ClientAuthErrorMessages[unexpectedCredentialType],\r\n },\r\n invalidAssertion: {\r\n code: invalidAssertion,\r\n desc: ClientAuthErrorMessages[invalidAssertion],\r\n },\r\n invalidClientCredential: {\r\n code: invalidClientCredential,\r\n desc: ClientAuthErrorMessages[invalidClientCredential],\r\n },\r\n tokenRefreshRequired: {\r\n code: tokenRefreshRequired,\r\n desc: ClientAuthErrorMessages[tokenRefreshRequired],\r\n },\r\n userTimeoutReached: {\r\n code: userTimeoutReached,\r\n desc: ClientAuthErrorMessages[userTimeoutReached],\r\n },\r\n tokenClaimsRequired: {\r\n code: tokenClaimsCnfRequiredForSignedJwt,\r\n desc: ClientAuthErrorMessages[tokenClaimsCnfRequiredForSignedJwt],\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: authorizationCodeMissingFromServerResponse,\r\n desc: ClientAuthErrorMessages[authorizationCodeMissingFromServerResponse],\r\n },\r\n bindingKeyNotRemovedError: {\r\n code: bindingKeyNotRemoved,\r\n desc: ClientAuthErrorMessages[bindingKeyNotRemoved],\r\n },\r\n logoutNotSupported: {\r\n code: endSessionEndpointNotSupported,\r\n desc: ClientAuthErrorMessages[endSessionEndpointNotSupported],\r\n },\r\n keyIdMissing: {\r\n code: keyIdMissing,\r\n desc: ClientAuthErrorMessages[keyIdMissing],\r\n },\r\n noNetworkConnectivity: {\r\n code: noNetworkConnectivity$1,\r\n desc: ClientAuthErrorMessages[noNetworkConnectivity$1],\r\n },\r\n userCanceledError: {\r\n code: userCanceled,\r\n desc: ClientAuthErrorMessages[userCanceled],\r\n },\r\n missingTenantIdError: {\r\n code: missingTenantIdError,\r\n desc: ClientAuthErrorMessages[missingTenantIdError],\r\n },\r\n nestedAppAuthBridgeDisabled: {\r\n code: nestedAppAuthBridgeDisabled,\r\n desc: ClientAuthErrorMessages[nestedAppAuthBridgeDisabled],\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nclass ClientAuthError extends AuthError {\r\n constructor(errorCode, additionalMessage) {\r\n super(errorCode, additionalMessage\r\n ? `${ClientAuthErrorMessages[errorCode]}: ${additionalMessage}`\r\n : ClientAuthErrorMessages[errorCode]);\r\n this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(this, ClientAuthError.prototype);\r\n }\r\n}\r\nfunction createClientAuthError(errorCode, additionalMessage) {\r\n return new ClientAuthError(errorCode, additionalMessage);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: () => {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n base64Decode: () => {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n base64Encode: () => {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n base64UrlEncode: () => {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n encodeKid: () => {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n async getPublicKeyThumbprint() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n async removeTokenBindingKey() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n async clearKeystore() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n async signJwt() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n async hashString() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nexports.LogLevel = void 0;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(exports.LogLevel || (exports.LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nclass Logger {\r\n constructor(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = exports.LogLevel.Info;\r\n const defaultLoggerCallback = () => {\r\n return;\r\n };\r\n const setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();\r\n this.localCallback =\r\n setLoggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;\r\n this.level =\r\n typeof setLoggerOptions.logLevel === \"number\"\r\n ? setLoggerOptions.logLevel\r\n : exports.LogLevel.Info;\r\n this.correlationId =\r\n setLoggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n static createDefaultLoggerOptions() {\r\n return {\r\n loggerCallback: () => {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: exports.LogLevel.Info,\r\n };\r\n }\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n clone(packageName, packageVersion, correlationId) {\r\n return new Logger({\r\n loggerCallback: this.localCallback,\r\n piiLoggingEnabled: this.piiLoggingEnabled,\r\n logLevel: this.level,\r\n correlationId: correlationId || this.correlationId,\r\n }, packageName, packageVersion);\r\n }\r\n /**\r\n * Log message with required options.\r\n */\r\n logMessage(logMessage, options) {\r\n if (options.logLevel > this.level ||\r\n (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n const timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n const logHeader = `[${timestamp}] : [${options.correlationId || this.correlationId || \"\"}]`;\r\n const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${exports.LogLevel[options.logLevel]} - ${logMessage}`;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n }\r\n /**\r\n * Execute callback with message.\r\n */\r\n executeCallback(level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n }\r\n /**\r\n * Logs error messages.\r\n */\r\n error(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n errorPii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs warning messages.\r\n */\r\n warning(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n warningPii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs info messages.\r\n */\r\n info(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n infoPii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs verbose messages.\r\n */\r\n verbose(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n verbosePii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs trace messages.\r\n */\r\n trace(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n tracePii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: exports.LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n isPiiLoggingEnabled() {\r\n return this.piiLoggingEnabled || false;\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/* eslint-disable header/header */\r\nconst name$1 = \"@azure/msal-common\";\r\nconst version$1 = \"15.0.2\";\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst AzureCloudInstance = {\r\n // AzureCloudInstance is not specified.\r\n None: \"none\",\r\n // Microsoft Azure public cloud\r\n AzurePublic: \"https://login.microsoftonline.com\",\r\n // Microsoft PPE\r\n AzurePpe: \"https://login.windows-ppe.net\",\r\n // Microsoft Chinese national/regional cloud\r\n AzureChina: \"https://login.chinacloudapi.cn\",\r\n // Microsoft German national/regional cloud (\"Black Forest\")\r\n AzureGermany: \"https://login.microsoftonline.de\",\r\n // US Government cloud\r\n AzureUsGovernment: \"https://login.microsoftonline.us\",\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\nfunction extractTokenClaims(encodedToken, base64Decode) {\r\n const jswPayload = getJWSPayload(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n // base64Decode() should throw an error if there is an issue\r\n const base64Decoded = base64Decode(jswPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw createClientAuthError(tokenParsingError);\r\n }\r\n}\r\n/**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\nfunction getJWSPayload(authToken) {\r\n if (!authToken) {\r\n throw createClientAuthError(nullOrEmptyToken);\r\n }\r\n const tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n const matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw createClientAuthError(tokenParsingError);\r\n }\r\n /**\r\n * const crackedToken = {\r\n * header: matches[1],\r\n * JWSPayload: matches[2],\r\n * JWSSig: matches[3],\r\n * };\r\n */\r\n return matches[2];\r\n}\r\n/**\r\n * Determine if the token's max_age has transpired\r\n */\r\nfunction checkMaxAge(authTime, maxAge) {\r\n /*\r\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\r\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\r\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\r\n */\r\n const fiveMinuteSkew = 300000; // five minutes in milliseconds\r\n if (maxAge === 0 || Date.now() - fiveMinuteSkew > authTime + maxAge) {\r\n throw createClientAuthError(maxAgeTranspired);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for managing date and time operations.\r\n */\r\n/**\r\n * return the current time in Unix time (seconds).\r\n */\r\nfunction nowSeconds() {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n}\r\n/**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\nfunction isTokenExpired(expiresOn, offset) {\r\n // check for access token expiry\r\n const expirationSec = Number(expiresOn) || 0;\r\n const offsetCurrentTimeSec = nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return offsetCurrentTimeSec > expirationSec;\r\n}\r\n/**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\nfunction wasClockTurnedBack(cachedAt) {\r\n const cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > nowSeconds();\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Cache Key: <home_account_id>-<environment>-<credential_type>-<client_id or familyId>-<realm>-<scopes>-<claims hash>-<scheme>\r\n * IdToken Example: uid.utid-login.microsoftonline.com-idtoken-app_client_id-contoso.com\r\n * AccessToken Example: uid.utid-login.microsoftonline.com-accesstoken-app_client_id-contoso.com-scope1 scope2--pop\r\n * RefreshToken Example: uid.utid-login.microsoftonline.com-refreshtoken-1-contoso.com\r\n * @param credentialEntity\r\n * @returns\r\n */\r\nfunction generateCredentialKey(credentialEntity) {\r\n const credentialKey = [\r\n generateAccountId(credentialEntity),\r\n generateCredentialId(credentialEntity),\r\n generateTarget(credentialEntity),\r\n generateClaimsHash(credentialEntity),\r\n generateScheme(credentialEntity),\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n}\r\n/**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\nfunction createIdTokenEntity(homeAccountId, environment, idToken, clientId, tenantId) {\r\n const idTokenEntity = {\r\n credentialType: CredentialType.ID_TOKEN,\r\n homeAccountId: homeAccountId,\r\n environment: environment,\r\n clientId: clientId,\r\n secret: idToken,\r\n realm: tenantId,\r\n };\r\n return idTokenEntity;\r\n}\r\n/**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\nfunction createAccessTokenEntity(homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, base64Decode, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {\r\n const atEntity = {\r\n homeAccountId: homeAccountId,\r\n credentialType: CredentialType.ACCESS_TOKEN,\r\n secret: accessToken,\r\n cachedAt: nowSeconds().toString(),\r\n expiresOn: expiresOn.toString(),\r\n extendedExpiresOn: extExpiresOn.toString(),\r\n environment: environment,\r\n clientId: clientId,\r\n realm: tenantId,\r\n target: scopes,\r\n tokenType: tokenType || AuthenticationScheme.BEARER,\r\n };\r\n if (userAssertionHash) {\r\n atEntity.userAssertionHash = userAssertionHash;\r\n }\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n if (requestedClaims) {\r\n atEntity.requestedClaims = requestedClaims;\r\n atEntity.requestedClaimsHash = requestedClaimsHash;\r\n }\r\n /*\r\n * Create Access Token With Auth Scheme instead of regular access token\r\n * Cast to lower to handle \"bearer\" from ADFS\r\n */\r\n if (atEntity.tokenType?.toLowerCase() !==\r\n AuthenticationScheme.BEARER.toLowerCase()) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n switch (atEntity.tokenType) {\r\n case AuthenticationScheme.POP:\r\n // Make sure keyId is present and add it to credential\r\n const tokenClaims = extractTokenClaims(accessToken, base64Decode);\r\n if (!tokenClaims?.cnf?.kid) {\r\n throw createClientAuthError(tokenClaimsCnfRequiredForSignedJwt);\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n break;\r\n case AuthenticationScheme.SSH:\r\n atEntity.keyId = keyId;\r\n }\r\n }\r\n return atEntity;\r\n}\r\n/**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\nfunction createRefreshTokenEntity(homeAccountId, environment, refreshToken, clientId, familyId, userAssertionHash, expiresOn) {\r\n const rtEntity = {\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n homeAccountId: homeAccountId,\r\n environment: environment,\r\n clientId: clientId,\r\n secret: refreshToken,\r\n };\r\n if (userAssertionHash) {\r\n rtEntity.userAssertionHash = userAssertionHash;\r\n }\r\n if (familyId) {\r\n rtEntity.familyId = familyId;\r\n }\r\n if (expiresOn) {\r\n rtEntity.expiresOn = expiresOn.toString();\r\n }\r\n return rtEntity;\r\n}\r\nfunction isCredentialEntity(entity) {\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\"));\r\n}\r\n/**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\nfunction isAccessTokenEntity(entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (isCredentialEntity(entity) &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN ||\r\n entity[\"credentialType\"] ===\r\n CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n}\r\n/**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\nfunction isIdTokenEntity(entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (isCredentialEntity(entity) &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n}\r\n/**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\nfunction isRefreshTokenEntity(entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (isCredentialEntity(entity) &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n}\r\n/**\r\n * Generate Account Id key component as per the schema: <home_account_id>-<environment>\r\n */\r\nfunction generateAccountId(credentialEntity) {\r\n const accountId = [\r\n credentialEntity.homeAccountId,\r\n credentialEntity.environment,\r\n ];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n}\r\n/**\r\n * Generate Credential Id key component as per the schema: <credential_type>-<client_id>-<realm>\r\n */\r\nfunction generateCredentialId(credentialEntity) {\r\n const clientOrFamilyId = credentialEntity.credentialType === CredentialType.REFRESH_TOKEN\r\n ? credentialEntity.familyId || credentialEntity.clientId\r\n : credentialEntity.clientId;\r\n const credentialId = [\r\n credentialEntity.credentialType,\r\n clientOrFamilyId,\r\n credentialEntity.realm || \"\",\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n}\r\n/**\r\n * Generate target key component as per schema: <target>\r\n */\r\nfunction generateTarget(credentialEntity) {\r\n return (credentialEntity.target || \"\").toLowerCase();\r\n}\r\n/**\r\n * Generate requested claims key component as per schema: <requestedClaims>\r\n */\r\nfunction generateClaimsHash(credentialEntity) {\r\n return (credentialEntity.requestedClaimsHash || \"\").toLowerCase();\r\n}\r\n/**\r\n * Generate scheme key componenet as per schema: <scheme>\r\n */\r\nfunction generateScheme(credentialEntity) {\r\n /*\r\n * PoP Tokens and SSH certs include scheme in cache key\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n return credentialEntity.tokenType &&\r\n credentialEntity.tokenType.toLowerCase() !==\r\n AuthenticationScheme.BEARER.toLowerCase()\r\n ? credentialEntity.tokenType.toLowerCase()\r\n : \"\";\r\n}\r\n/**\r\n * validates if a given cache entry is \"Telemetry\", parses <key,value>\r\n * @param key\r\n * @param entity\r\n */\r\nfunction isServerTelemetryEntity(key, entity) {\r\n const validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n let validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n}\r\n/**\r\n * validates if a given cache entry is \"Throttling\", parses <key,value>\r\n * @param key\r\n * @param entity\r\n */\r\nfunction isThrottlingEntity(key, entity) {\r\n let validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n let validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n}\r\n/**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata-<environment>-<client_id>\r\n */\r\nfunction generateAppMetadataKey({ environment, clientId, }) {\r\n const appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray\r\n .join(Separators.CACHE_KEY_SEPARATOR)\r\n .toLowerCase();\r\n}\r\n/*\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\nfunction isAppMetadataEntity(key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n}\r\n/**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\nfunction isAuthorityMetadataEntity(key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\") &&\r\n entity.hasOwnProperty(\"jwks_uri\"));\r\n}\r\n/**\r\n * Reset the exiresAt value\r\n */\r\nfunction generateAuthorityMetadataExpiresAt() {\r\n return (nowSeconds() +\r\n AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS);\r\n}\r\nfunction updateAuthorityEndpointMetadata(authorityMetadata, updatedValues, fromNetwork) {\r\n authorityMetadata.authorization_endpoint =\r\n updatedValues.authorization_endpoint;\r\n authorityMetadata.token_endpoint = updatedValues.token_endpoint;\r\n authorityMetadata.end_session_endpoint = updatedValues.end_session_endpoint;\r\n authorityMetadata.issuer = updatedValues.issuer;\r\n authorityMetadata.endpointsFromNetwork = fromNetwork;\r\n authorityMetadata.jwks_uri = updatedValues.jwks_uri;\r\n}\r\nfunction updateCloudDiscoveryMetadata(authorityMetadata, updatedValues, fromNetwork) {\r\n authorityMetadata.aliases = updatedValues.aliases;\r\n authorityMetadata.preferred_cache = updatedValues.preferred_cache;\r\n authorityMetadata.preferred_network = updatedValues.preferred_network;\r\n authorityMetadata.aliasesFromNetwork = fromNetwork;\r\n}\r\n/**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\nfunction isAuthorityMetadataExpired(metadata) {\r\n return metadata.expiresAt <= nowSeconds();\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst redirectUriEmpty = \"redirect_uri_empty\";\r\nconst claimsRequestParsingError = \"claims_request_parsing_error\";\r\nconst authorityUriInsecure = \"authority_uri_insecure\";\r\nconst urlParseError = \"url_parse_error\";\r\nconst urlEmptyError = \"empty_url_error\";\r\nconst emptyInputScopesError = \"empty_input_scopes_error\";\r\nconst invalidPromptValue = \"invalid_prompt_value\";\r\nconst invalidClaims = \"invalid_claims\";\r\nconst tokenRequestEmpty = \"token_request_empty\";\r\nconst logoutRequestEmpty = \"logout_request_empty\";\r\nconst invalidCodeChallengeMethod = \"invalid_code_challenge_method\";\r\nconst pkceParamsMissing = \"pkce_params_missing\";\r\nconst invalidCloudDiscoveryMetadata = \"invalid_cloud_discovery_metadata\";\r\nconst invalidAuthorityMetadata = \"invalid_authority_metadata\";\r\nconst untrustedAuthority = \"untrusted_authority\";\r\nconst missingSshJwk = \"missing_ssh_jwk\";\r\nconst missingSshKid = \"missing_ssh_kid\";\r\nconst missingNonceAuthenticationHeader = \"missing_nonce_authentication_header\";\r\nconst invalidAuthenticationHeader = \"invalid_authentication_header\";\r\nconst cannotSetOIDCOptions = \"cannot_set_OIDCOptions\";\r\nconst cannotAllowPlatformBroker = \"cannot_allow_platform_broker\";\r\nconst authorityMismatch = \"authority_mismatch\";\n\nvar ClientConfigurationErrorCodes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n authorityMismatch: authorityMismatch,\n authorityUriInsecure: authorityUriInsecure,\n cannotAllowPlatformBroker: cannotAllowPlatformBroker,\n cannotSetOIDCOptions: cannotSetOIDCOptions,\n claimsRequestParsingError: claimsRequestParsingError,\n emptyInputScopesError: emptyInputScopesError,\n invalidAuthenticationHeader: invalidAuthenticationHeader,\n invalidAuthorityMetadata: invalidAuthorityMetadata,\n invalidClaims: invalidClaims,\n invalidCloudDiscoveryMetadata: invalidCloudDiscoveryMetadata,\n invalidCodeChallengeMethod: invalidCodeChallengeMethod,\n invalidPromptValue: invalidPromptValue,\n logoutRequestEmpty: logoutRequestEmpty,\n missingNonceAuthenticationHeader: missingNonceAuthenticationHeader,\n missingSshJwk: missingSshJwk,\n missingSshKid: missingSshKid,\n pkceParamsMissing: pkceParamsMissing,\n redirectUriEmpty: redirectUriEmpty,\n tokenRequestEmpty: tokenRequestEmpty,\n untrustedAuthority: untrustedAuthority,\n urlEmptyError: urlEmptyError,\n urlParseError: urlParseError\n});\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst ClientConfigurationErrorMessages = {\r\n [redirectUriEmpty]: \"A redirect URI is required for all calls, and none has been set.\",\r\n [claimsRequestParsingError]: \"Could not parse the given claims request object.\",\r\n [authorityUriInsecure]: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\",\r\n [urlParseError]: \"URL could not be parsed into appropriate segments.\",\r\n [urlEmptyError]: \"URL was empty or null.\",\r\n [emptyInputScopesError]: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\",\r\n [invalidPromptValue]: \"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n [invalidClaims]: \"Given claims parameter must be a stringified JSON object.\",\r\n [tokenRequestEmpty]: \"Token request was empty and not found in cache.\",\r\n [logoutRequestEmpty]: \"The logout request was null or undefined.\",\r\n [invalidCodeChallengeMethod]: 'code_challenge_method passed is invalid. Valid values are \"plain\" and \"S256\".',\r\n [pkceParamsMissing]: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\",\r\n [invalidCloudDiscoveryMetadata]: \"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields\",\r\n [invalidAuthorityMetadata]: \"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.\",\r\n [untrustedAuthority]: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\",\r\n [missingSshJwk]: \"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.\",\r\n [missingSshKid]: \"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.\",\r\n [missingNonceAuthenticationHeader]: \"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.\",\r\n [invalidAuthenticationHeader]: \"Invalid authentication header provided\",\r\n [cannotSetOIDCOptions]: \"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.\",\r\n [cannotAllowPlatformBroker]: \"Cannot set allowPlatformBroker parameter to true when not in AAD protocol mode.\",\r\n [authorityMismatch]: \"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority.\",\r\n};\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n * @deprecated Use ClientConfigurationErrorCodes instead\r\n */\r\nconst ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: redirectUriEmpty,\r\n desc: ClientConfigurationErrorMessages[redirectUriEmpty],\r\n },\r\n claimsRequestParsingError: {\r\n code: claimsRequestParsingError,\r\n desc: ClientConfigurationErrorMessages[claimsRequestParsingError],\r\n },\r\n authorityUriInsecure: {\r\n code: authorityUriInsecure,\r\n desc: ClientConfigurationErrorMessages[authorityUriInsecure],\r\n },\r\n urlParseError: {\r\n code: urlParseError,\r\n desc: ClientConfigurationErrorMessages[urlParseError],\r\n },\r\n urlEmptyError: {\r\n code: urlEmptyError,\r\n desc: ClientConfigurationErrorMessages[urlEmptyError],\r\n },\r\n emptyScopesError: {\r\n code: emptyInputScopesError,\r\n desc: ClientConfigurationErrorMessages[emptyInputScopesError],\r\n },\r\n invalidPrompt: {\r\n code: invalidPromptValue,\r\n desc: ClientConfigurationErrorMessages[invalidPromptValue],\r\n },\r\n invalidClaimsRequest: {\r\n code: invalidClaims,\r\n desc: ClientConfigurationErrorMessages[invalidClaims],\r\n },\r\n tokenRequestEmptyError: {\r\n code: tokenRequestEmpty,\r\n desc: ClientConfigurationErrorMessages[tokenRequestEmpty],\r\n },\r\n logoutRequestEmptyError: {\r\n code: logoutRequestEmpty,\r\n desc: ClientConfigurationErrorMessages[logoutRequestEmpty],\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: invalidCodeChallengeMethod,\r\n desc: ClientConfigurationErrorMessages[invalidCodeChallengeMethod],\r\n },\r\n invalidCodeChallengeParams: {\r\n code: pkceParamsMissing,\r\n desc: ClientConfigurationErrorMessages[pkceParamsMissing],\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: invalidCloudDiscoveryMetadata,\r\n desc: ClientConfigurationErrorMessages[invalidCloudDiscoveryMetadata],\r\n },\r\n invalidAuthorityMetadata: {\r\n code: invalidAuthorityMetadata,\r\n desc: ClientConfigurationErrorMessages[invalidAuthorityMetadata],\r\n },\r\n untrustedAuthority: {\r\n code: untrustedAuthority,\r\n desc: ClientConfigurationErrorMessages[untrustedAuthority],\r\n },\r\n missingSshJwk: {\r\n code: missingSshJwk,\r\n desc: ClientConfigurationErrorMessages[missingSshJwk],\r\n },\r\n missingSshKid: {\r\n code: missingSshKid,\r\n desc: ClientConfigurationErrorMessages[missingSshKid],\r\n },\r\n missingNonceAuthenticationHeader: {\r\n code: missingNonceAuthenticationHeader,\r\n desc: ClientConfigurationErrorMessages[missingNonceAuthenticationHeader],\r\n },\r\n invalidAuthenticationHeader: {\r\n code: invalidAuthenticationHeader,\r\n desc: ClientConfigurationErrorMessages[invalidAuthenticationHeader],\r\n },\r\n cannotSetOIDCOptions: {\r\n code: cannotSetOIDCOptions,\r\n desc: ClientConfigurationErrorMessages[cannotSetOIDCOptions],\r\n },\r\n cannotAllowPlatformBroker: {\r\n code: cannotAllowPlatformBroker,\r\n desc: ClientConfigurationErrorMessages[cannotAllowPlatformBroker],\r\n },\r\n authorityMismatch: {\r\n code: authorityMismatch,\r\n desc: ClientConfigurationErrorMessages[authorityMismatch],\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nclass ClientConfigurationError extends AuthError {\r\n constructor(errorCode) {\r\n super(errorCode, ClientConfigurationErrorMessages[errorCode]);\r\n this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(this, ClientConfigurationError.prototype);\r\n }\r\n}\r\nfunction createClientConfigurationError(errorCode) {\r\n return new ClientConfigurationError(errorCode);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nclass StringUtils {\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n static isEmptyObj(strObj) {\r\n if (strObj) {\r\n try {\r\n const obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n }\r\n static startsWith(str, search) {\r\n return str.indexOf(search) === 0;\r\n }\r\n static endsWith(str, search) {\r\n return (str.length >= search.length &&\r\n str.lastIndexOf(search) === str.length - search.length);\r\n }\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n static queryStringToObject(query) {\r\n const obj = {};\r\n const params = query.split(\"&\");\r\n const decode = (s) => decodeURIComponent(s.replace(/\\+/g, \" \"));\r\n params.forEach((pair) => {\r\n if (pair.trim()) {\r\n const [key, value] = pair.split(/=(.+)/g, 2); // Split on the first occurence of the '=' character\r\n if (key && value) {\r\n obj[decode(key)] = decode(value);\r\n }\r\n }\r\n });\r\n return obj;\r\n }\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n static trimArrayEntries(arr) {\r\n return arr.map((entry) => entry.trim());\r\n }\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n static removeEmptyStringsFromArray(arr) {\r\n return arr.filter((entry) => {\r\n return !!entry;\r\n });\r\n }\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n static jsonParseHelper(str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n static matchPattern(pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n const regex = new RegExp(pattern\r\n .replace(/\\\\/g, \"\\\\\\\\\")\r\n .replace(/\\*/g, \"[^ ]*\")\r\n .replace(/\\?/g, \"\\\\?\"));\r\n return regex.test(input);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nclass ScopeSet {\r\n constructor(inputScopes) {\r\n // Filter empty string and null/undefined array items\r\n const scopeArr = inputScopes\r\n ? StringUtils.trimArrayEntries([...inputScopes])\r\n : [];\r\n const filteredInput = scopeArr\r\n ? StringUtils.removeEmptyStringsFromArray(scopeArr)\r\n : [];\r\n // Check if scopes array has at least one member\r\n if (!filteredInput || !filteredInput.length) {\r\n throw createClientConfigurationError(emptyInputScopesError);\r\n }\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach((scope) => this.scopes.add(scope));\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n static fromString(inputScopeString) {\r\n const scopeString = inputScopeString || Constants.EMPTY_STRING;\r\n const inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n }\r\n /**\r\n * Creates the set of scopes to search for in cache lookups\r\n * @param inputScopeString\r\n * @returns\r\n */\r\n static createSearchScopes(inputScopeString) {\r\n const scopeSet = new ScopeSet(inputScopeString);\r\n if (!scopeSet.containsOnlyOIDCScopes()) {\r\n scopeSet.removeOIDCScopes();\r\n }\r\n else {\r\n scopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return scopeSet;\r\n }\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n containsScope(scope) {\r\n const lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n const lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return scope\r\n ? lowerCaseScopesSet.scopes.has(scope.toLowerCase())\r\n : false;\r\n }\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n containsScopeSet(scopeSet) {\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size &&\r\n scopeSet.asArray().every((scope) => this.containsScope(scope)));\r\n }\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n containsOnlyOIDCScopes() {\r\n let defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach((defaultScope) => {\r\n if (this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n }\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n appendScope(newScope) {\r\n if (newScope) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n }\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n appendScopes(newScopes) {\r\n try {\r\n newScopes.forEach((newScope) => this.appendScope(newScope));\r\n }\r\n catch (e) {\r\n throw createClientAuthError(cannotAppendScopeSet);\r\n }\r\n }\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n removeScope(scope) {\r\n if (!scope) {\r\n throw createClientAuthError(cannotRemoveEmptyScope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n }\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n removeOIDCScopes() {\r\n OIDC_SCOPES.forEach((defaultScope) => {\r\n this.scopes.delete(defaultScope);\r\n });\r\n }\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n unionScopeSets(otherScopes) {\r\n if (!otherScopes) {\r\n throw createClientAuthError(emptyInputScopeSet);\r\n }\r\n const unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach((scope) => unionScopes.add(scope.toLowerCase()));\r\n this.scopes.forEach((scope) => unionScopes.add(scope.toLowerCase()));\r\n return unionScopes;\r\n }\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n intersectingScopeSets(otherScopes) {\r\n if (!otherScopes) {\r\n throw createClientAuthError(emptyInputScopeSet);\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n const unionScopes = this.unionScopeSets(otherScopes);\r\n const sizeOtherScopes = otherScopes.getScopeCount();\r\n const sizeThisScopes = this.getScopeCount();\r\n const sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < sizeThisScopes + sizeOtherScopes;\r\n }\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n getScopeCount() {\r\n return this.scopes.size;\r\n }\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n asArray() {\r\n const array = [];\r\n this.scopes.forEach((val) => array.push(val));\r\n return array;\r\n }\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n printScopes() {\r\n if (this.scopes) {\r\n const scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return Constants.EMPTY_STRING;\r\n }\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n printScopesLowerCase() {\r\n return this.printScopes().toLowerCase();\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, base64Decode) {\r\n if (!rawClientInfo) {\r\n throw createClientAuthError(clientInfoEmptyError);\r\n }\r\n try {\r\n const decodedClientInfo = base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw createClientAuthError(clientInfoDecodingError);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (!homeAccountId) {\r\n throw createClientAuthError(clientInfoDecodingError);\r\n }\r\n const clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2\r\n ? Constants.EMPTY_STRING\r\n : clientInfoParts[1],\r\n };\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Returns true if tenantId matches the utid portion of homeAccountId\r\n * @param tenantId\r\n * @param homeAccountId\r\n * @returns\r\n */\r\nfunction tenantIdMatchesHomeTenant(tenantId, homeAccountId) {\r\n return (!!tenantId &&\r\n !!homeAccountId &&\r\n tenantId === homeAccountId.split(\".\")[1]);\r\n}\r\n/**\r\n * Build tenant profile\r\n * @param homeAccountId - Home account identifier for this account object\r\n * @param localAccountId - Local account identifer for this account object\r\n * @param tenantId - Full tenant or organizational id that this account belongs to\r\n * @param idTokenClaims - Claims from the ID token\r\n * @returns\r\n */\r\nfunction buildTenantProfile(homeAccountId, localAccountId, tenantId, idTokenClaims) {\r\n if (idTokenClaims) {\r\n const { oid, sub, tid, name, tfp, acr } = idTokenClaims;\r\n /**\r\n * Since there is no way to determine if the authority is AAD or B2C, we exhaust all the possible claims that can serve as tenant ID with the following precedence:\r\n * tid - TenantID claim that identifies the tenant that issued the token in AAD. Expected in all AAD ID tokens, not present in B2C ID Tokens.\r\n * tfp - Trust Framework Policy claim that identifies the policy that was used to authenticate the user. Functions as tenant for B2C scenarios.\r\n * acr - Authentication Context Class Reference claim used only with older B2C policies. Fallback in case tfp is not present, but likely won't be present anyway.\r\n */\r\n const tenantId = tid || tfp || acr || \"\";\r\n return {\r\n tenantId: tenantId,\r\n localAccountId: oid || sub || \"\",\r\n name: name,\r\n isHomeTenant: tenantIdMatchesHomeTenant(tenantId, homeAccountId),\r\n };\r\n }\r\n else {\r\n return {\r\n tenantId,\r\n localAccountId,\r\n isHomeTenant: tenantIdMatchesHomeTenant(tenantId, homeAccountId),\r\n };\r\n }\r\n}\r\n/**\r\n * Replaces account info that varies by tenant profile sourced from the ID token claims passed in with the tenant-specific account info\r\n * @param baseAccountInfo\r\n * @param idTokenClaims\r\n * @returns\r\n */\r\nfunction updateAccountTenantProfileData(baseAccountInfo, tenantProfile, idTokenClaims, idTokenSecret) {\r\n let updatedAccountInfo = baseAccountInfo;\r\n // Tenant Profile overrides passed in account info\r\n if (tenantProfile) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { isHomeTenant, ...tenantProfileOverride } = tenantProfile;\r\n updatedAccountInfo = { ...baseAccountInfo, ...tenantProfileOverride };\r\n }\r\n // ID token claims override passed in account info and tenant profile\r\n if (idTokenClaims) {\r\n // Ignore isHomeTenant, loginHint, and sid which are part of tenant profile but not base account info\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { isHomeTenant, ...claimsSourcedTenantProfile } = buildTenantProfile(baseAccountInfo.homeAccountId, baseAccountInfo.localAccountId, baseAccountInfo.tenantId, idTokenClaims);\r\n updatedAccountInfo = {\r\n ...updatedAccountInfo,\r\n ...claimsSourcedTenantProfile,\r\n idTokenClaims: idTokenClaims,\r\n idToken: idTokenSecret,\r\n };\r\n return updatedAccountInfo;\r\n }\r\n return updatedAccountInfo;\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nconst AuthorityType = {\r\n Default: 0,\r\n Adfs: 1,\r\n Dsts: 2,\r\n Ciam: 3,\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Gets tenantId from available ID token claims to set as credential realm with the following precedence:\r\n * 1. tid - if the token is acquired from an Azure AD tenant tid will be present\r\n * 2. tfp - if the token is acquired from a modern B2C tenant tfp should be present\r\n * 3. acr - if the token is acquired from a legacy B2C tenant acr should be present\r\n * Downcased to match the realm case-insensitive comparison requirements\r\n * @param idTokenClaims\r\n * @returns\r\n */\r\nfunction getTenantIdFromIdTokenClaims(idTokenClaims) {\r\n if (idTokenClaims) {\r\n const tenantId = idTokenClaims.tid || idTokenClaims.tfp || idTokenClaims.acr;\r\n return tenantId || null;\r\n }\r\n return null;\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nconst ProtocolMode = {\r\n AAD: \"AAD\",\r\n OIDC: \"OIDC\",\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: <home_account_id>-<environment>-<realm*>\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * nativeAccountId: Account identifier on the native device\r\n * tenantProfiles: Array of tenant profile objects for each tenant that the account has authenticated with in the browser\r\n * }\r\n * @internal\r\n */\r\nclass AccountEntity {\r\n /**\r\n * Generate Account Id key component as per the schema: <home_account_id>-<environment>\r\n */\r\n generateAccountId() {\r\n const accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n }\r\n /**\r\n * Generate Account Cache Key as per the schema: <home_account_id>-<environment>-<realm*>\r\n */\r\n generateAccountKey() {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n });\r\n }\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n getAccountInfo() {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n nativeAccountId: this.nativeAccountId,\r\n authorityType: this.authorityType,\r\n // Deserialize tenant profiles array into a Map\r\n tenantProfiles: new Map((this.tenantProfiles || []).map((tenantProfile) => {\r\n return [tenantProfile.tenantId, tenantProfile];\r\n })),\r\n };\r\n }\r\n /**\r\n * Returns true if the account entity is in single tenant format (outdated), false otherwise\r\n */\r\n isSingleTenant() {\r\n return !this.tenantProfiles;\r\n }\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n static generateAccountCacheKey(accountInterface) {\r\n const homeTenantId = accountInterface.homeAccountId.split(\".\")[1];\r\n const accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || \"\",\r\n homeTenantId || accountInterface.tenantId || \"\",\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n }\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param accountDetails\r\n */\r\n static createAccount(accountDetails, authority, base64Decode) {\r\n const account = new AccountEntity();\r\n if (authority.authorityType === AuthorityType.Adfs) {\r\n account.authorityType = CacheAccountType.ADFS_ACCOUNT_TYPE;\r\n }\r\n else if (authority.protocolMode === ProtocolMode.AAD) {\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n }\r\n else {\r\n account.authorityType = CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n }\r\n let clientInfo;\r\n if (accountDetails.clientInfo && base64Decode) {\r\n clientInfo = buildClientInfo(accountDetails.clientInfo, base64Decode);\r\n }\r\n account.clientInfo = accountDetails.clientInfo;\r\n account.homeAccountId = accountDetails.homeAccountId;\r\n account.nativeAccountId = accountDetails.nativeAccountId;\r\n const env = accountDetails.environment ||\r\n (authority && authority.getPreferredCache());\r\n if (!env) {\r\n throw createClientAuthError(invalidCacheEnvironment);\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm =\r\n clientInfo?.utid ||\r\n getTenantIdFromIdTokenClaims(accountDetails.idTokenClaims) ||\r\n \"\";\r\n // How do you account for MSA CID here?\r\n account.localAccountId =\r\n clientInfo?.uid ||\r\n accountDetails.idTokenClaims?.oid ||\r\n accountDetails.idTokenClaims?.sub ||\r\n \"\";\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array.\r\n * In most cases it will contain a single email. This field should not be relied upon if a custom\r\n * policy is configured to return more than 1 email.\r\n */\r\n const preferredUsername = accountDetails.idTokenClaims?.preferred_username ||\r\n accountDetails.idTokenClaims?.upn;\r\n const email = accountDetails.idTokenClaims?.emails\r\n ? accountDetails.idTokenClaims.emails[0]\r\n : null;\r\n account.username = preferredUsername || email || \"\";\r\n account.name = accountDetails.idTokenClaims?.name || \"\";\r\n account.cloudGraphHostName = accountDetails.cloudGraphHostName;\r\n account.msGraphHost = accountDetails.msGraphHost;\r\n if (accountDetails.tenantProfiles) {\r\n account.tenantProfiles = accountDetails.tenantProfiles;\r\n }\r\n else {\r\n const tenantProfile = buildTenantProfile(accountDetails.homeAccountId, account.localAccountId, account.realm, accountDetails.idTokenClaims);\r\n account.tenantProfiles = [tenantProfile];\r\n }\r\n return account;\r\n }\r\n /**\r\n * Creates an AccountEntity object from AccountInfo\r\n * @param accountInfo\r\n * @param cloudGraphHostName\r\n * @param msGraphHost\r\n * @returns\r\n */\r\n static createFromAccountInfo(accountInfo, cloudGraphHostName, msGraphHost) {\r\n const account = new AccountEntity();\r\n account.authorityType =\r\n accountInfo.authorityType || CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = accountInfo.homeAccountId;\r\n account.localAccountId = accountInfo.localAccountId;\r\n account.nativeAccountId = accountInfo.nativeAccountId;\r\n account.realm = accountInfo.tenantId;\r\n account.environment = accountInfo.environment;\r\n account.username = accountInfo.username;\r\n account.name = accountInfo.name;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n // Serialize tenant profiles map into an array\r\n account.tenantProfiles = Array.from(accountInfo.tenantProfiles?.values() || []);\r\n return account;\r\n }\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n static generateHomeAccountId(serverClientInfo, authType, logger, cryptoObj, idTokenClaims) {\r\n // since ADFS/DSTS do not have tid and does not set client_info\r\n if (!(authType === AuthorityType.Adfs ||\r\n authType === AuthorityType.Dsts)) {\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n const clientInfo = buildClientInfo(serverClientInfo, cryptoObj.base64Decode);\r\n if (clientInfo.uid && clientInfo.utid) {\r\n return `${clientInfo.uid}.${clientInfo.utid}`;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n logger.warning(\"No client info in response\");\r\n }\r\n // default to \"sub\" claim\r\n return idTokenClaims?.sub || \"\";\r\n }\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n static isAccountEntity(entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n }\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n static accountInfoIsEqual(accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n let claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n const accountAClaims = (accountA.idTokenClaims ||\r\n {});\r\n const accountBClaims = (accountB.idTokenClaims ||\r\n {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch =\r\n accountAClaims.iat === accountBClaims.iat &&\r\n accountAClaims.nonce === accountBClaims.nonce;\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId &&\r\n accountA.localAccountId === accountB.localAccountId &&\r\n accountA.username === accountB.username &&\r\n accountA.tenantId === accountB.tenantId &&\r\n accountA.environment === accountB.environment &&\r\n accountA.nativeAccountId === accountB.nativeAccountId &&\r\n claimsMatch);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\nfunction stripLeadingHashOrQuery(responseString) {\r\n if (responseString.startsWith(\"#/\")) {\r\n return responseString.substring(2);\r\n }\r\n else if (responseString.startsWith(\"#\") ||\r\n responseString.startsWith(\"?\")) {\r\n return responseString.substring(1);\r\n }\r\n return responseString;\r\n}\r\n/**\r\n * Returns URL hash as server auth code response object.\r\n */\r\nfunction getDeserializedResponse(responseString) {\r\n // Check if given hash is empty\r\n if (!responseString || responseString.indexOf(\"=\") < 0) {\r\n return null;\r\n }\r\n try {\r\n // Strip the # or ? symbol if present\r\n const normalizedResponse = stripLeadingHashOrQuery(responseString);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n const deserializedHash = Object.fromEntries(new URLSearchParams(normalizedResponse));\r\n // Check for known response properties\r\n if (deserializedHash.code ||\r\n deserializedHash.error ||\r\n deserializedHash.error_description ||\r\n deserializedHash.state) {\r\n return deserializedHash;\r\n }\r\n }\r\n catch (e) {\r\n throw createClientAuthError(hashNotDeserialized);\r\n }\r\n return null;\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nclass UrlString {\r\n get urlString() {\r\n return this._urlString;\r\n }\r\n constructor(url) {\r\n this._urlString = url;\r\n if (!this._urlString) {\r\n // Throws error if url is empty\r\n throw createClientConfigurationError(urlEmptyError);\r\n }\r\n if (!url.includes(\"#\")) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n static canonicalizeUri(url) {\r\n if (url) {\r\n let lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n }\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n validateAsUri() {\r\n // Attempts to parse url for uri components\r\n let components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw createClientConfigurationError(urlParseError);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw createClientConfigurationError(urlParseError);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol ||\r\n components.Protocol.toLowerCase() !== \"https:\") {\r\n throw createClientConfigurationError(authorityUriInsecure);\r\n }\r\n }\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n static appendQueryString(url, queryString) {\r\n if (!queryString) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0\r\n ? `${url}?${queryString}`\r\n : `${url}&${queryString}`;\r\n }\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n static removeHashFromUrl(url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n }\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n replaceTenantPath(tenantId) {\r\n const urlObject = this.getUrlComponents();\r\n const pathArray = urlObject.PathSegments;\r\n if (tenantId &&\r\n pathArray.length !== 0 &&\r\n (pathArray[0] === AADAuthorityConstants.COMMON ||\r\n pathArray[0] === AADAuthorityConstants.ORGANIZATIONS)) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n }\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n getUrlComponents() {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n const match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw createClientConfigurationError(urlParseError);\r\n }\r\n // Url component object\r\n const urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7],\r\n };\r\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (urlComponents.QueryString &&\r\n urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n }\r\n static getDomainFromUrl(url) {\r\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n const match = url.match(regEx);\r\n if (!match) {\r\n throw createClientConfigurationError(urlParseError);\r\n }\r\n return match[2];\r\n }\r\n static getAbsoluteUrl(relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n const url = new UrlString(baseUrl);\r\n const baseComponents = url.getUrlComponents();\r\n return (baseComponents.Protocol +\r\n \"//\" +\r\n baseComponents.HostNameAndPort +\r\n relativeUrl);\r\n }\r\n return relativeUrl;\r\n }\r\n static constructAuthorityUriFromObject(urlObject) {\r\n return new UrlString(urlObject.Protocol +\r\n \"//\" +\r\n urlObject.HostNameAndPort +\r\n \"/\" +\r\n urlObject.PathSegments.join(\"/\"));\r\n }\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n * @deprecated This API will be removed in a future version\r\n */\r\n static hashContainsKnownProperties(response) {\r\n return !!getDeserializedResponse(response);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst rawMetdataJSON = {\r\n endpointMetadata: {\r\n \"login.microsoftonline.com\": {\r\n token_endpoint: \"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token\",\r\n jwks_uri: \"https://login.microsoftonline.com/{tenantid}/discovery/v2.0/keys\",\r\n issuer: \"https://login.microsoftonline.com/{tenantid}/v2.0\",\r\n authorization_endpoint: \"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize\",\r\n end_session_endpoint: \"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout\",\r\n },\r\n \"login.chinacloudapi.cn\": {\r\n token_endpoint: \"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/token\",\r\n jwks_uri: \"https://login.chinacloudapi.cn/{tenantid}/discovery/v2.0/keys\",\r\n issuer: \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\",\r\n authorization_endpoint: \"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/authorize\",\r\n end_session_endpoint: \"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/logout\",\r\n },\r\n \"login.microsoftonline.us\": {\r\n token_endpoint: \"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/token\",\r\n jwks_uri: \"https://login.microsoftonline.us/{tenantid}/discovery/v2.0/keys\",\r\n issuer: \"https://login.microsoftonline.us/{tenantid}/v2.0\",\r\n authorization_endpoint: \"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize\",\r\n end_session_endpoint: \"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout\",\r\n },\r\n },\r\n instanceDiscoveryMetadata: {\r\n tenant_discovery_endpoint: \"https://{canonicalAuthority}/v2.0/.well-known/openid-configuration\",\r\n metadata: [\r\n {\r\n preferred_network: \"login.microsoftonline.com\",\r\n preferred_cache: \"login.windows.net\",\r\n aliases: [\r\n \"login.microsoftonline.com\",\r\n \"login.windows.net\",\r\n \"login.microsoft.com\",\r\n \"sts.windows.net\",\r\n ],\r\n },\r\n {\r\n preferred_network: \"login.partner.microsoftonline.cn\",\r\n preferred_cache: \"login.partner.microsoftonline.cn\",\r\n aliases: [\r\n \"login.partner.microsoftonline.cn\",\r\n \"login.chinacloudapi.cn\",\r\n ],\r\n },\r\n {\r\n preferred_network: \"login.microsoftonline.de\",\r\n preferred_cache: \"login.microsoftonline.de\",\r\n aliases: [\"login.microsoftonline.de\"],\r\n },\r\n {\r\n preferred_network: \"login.microsoftonline.us\",\r\n preferred_cache: \"login.microsoftonline.us\",\r\n aliases: [\r\n \"login.microsoftonline.us\",\r\n \"login.usgovcloudapi.net\",\r\n ],\r\n },\r\n {\r\n preferred_network: \"login-us.microsoftonline.com\",\r\n preferred_cache: \"login-us.microsoftonline.com\",\r\n aliases: [\"login-us.microsoftonline.com\"],\r\n },\r\n ],\r\n },\r\n};\r\nconst EndpointMetadata = rawMetdataJSON.endpointMetadata;\r\nconst InstanceDiscoveryMetadata = rawMetdataJSON.instanceDiscoveryMetadata;\r\nconst InstanceDiscoveryMetadataAliases = new Set();\r\nInstanceDiscoveryMetadata.metadata.forEach((metadataEntry) => {\r\n metadataEntry.aliases.forEach((alias) => {\r\n InstanceDiscoveryMetadataAliases.add(alias);\r\n });\r\n});\r\n/**\r\n * Attempts to get an aliases array from the static authority metadata sources based on the canonical authority host\r\n * @param staticAuthorityOptions\r\n * @param logger\r\n * @returns\r\n */\r\nfunction getAliasesFromStaticSources(staticAuthorityOptions, logger) {\r\n let staticAliases;\r\n const canonicalAuthority = staticAuthorityOptions.canonicalAuthority;\r\n if (canonicalAuthority) {\r\n const authorityHost = new UrlString(canonicalAuthority).getUrlComponents().HostNameAndPort;\r\n staticAliases =\r\n getAliasesFromMetadata(authorityHost, staticAuthorityOptions.cloudDiscoveryMetadata?.metadata, AuthorityMetadataSource.CONFIG, logger) ||\r\n getAliasesFromMetadata(authorityHost, InstanceDiscoveryMetadata.metadata, AuthorityMetadataSource.HARDCODED_VALUES, logger) ||\r\n staticAuthorityOptions.knownAuthorities;\r\n }\r\n return staticAliases || [];\r\n}\r\n/**\r\n * Returns aliases for from the raw cloud discovery metadata passed in\r\n * @param authorityHost\r\n * @param rawCloudDiscoveryMetadata\r\n * @returns\r\n */\r\nfunction getAliasesFromMetadata(authorityHost, cloudDiscoveryMetadata, source, logger) {\r\n logger?.trace(`getAliasesFromMetadata called with source: ${source}`);\r\n if (authorityHost && cloudDiscoveryMetadata) {\r\n const metadata = getCloudDiscoveryMetadataFromNetworkResponse(cloudDiscoveryMetadata, authorityHost);\r\n if (metadata) {\r\n logger?.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${source}, returning aliases`);\r\n return metadata.aliases;\r\n }\r\n else {\r\n logger?.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${source}`);\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Get cloud discovery metadata for common authorities\r\n */\r\nfunction getCloudDiscoveryMetadataFromHardcodedValues(authorityHost) {\r\n const metadata = getCloudDiscoveryMetadataFromNetworkResponse(InstanceDiscoveryMetadata.metadata, authorityHost);\r\n return metadata;\r\n}\r\n/**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\nfunction getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {\r\n for (let i = 0; i < response.length; i++) {\r\n const metadata = response[i];\r\n if (metadata.aliases.includes(authorityHost)) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst cacheQuotaExceededErrorCode = \"cache_quota_exceeded\";\r\nconst cacheUnknownErrorCode = \"cache_error_unknown\";\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst CacheErrorMessages = {\r\n [cacheQuotaExceededErrorCode]: \"Exceeded cache storage capacity.\",\r\n [cacheUnknownErrorCode]: \"Unexpected error occurred when using cache storage.\",\r\n};\r\n/**\r\n * Error thrown when there is an error with the cache\r\n */\r\nclass CacheError extends Error {\r\n constructor(errorCode, errorMessage) {\r\n const message = errorMessage ||\r\n (CacheErrorMessages[errorCode]\r\n ? CacheErrorMessages[errorCode]\r\n : CacheErrorMessages[cacheUnknownErrorCode]);\r\n super(`${errorCode}: ${message}`);\r\n Object.setPrototypeOf(this, CacheError.prototype);\r\n this.name = \"CacheError\";\r\n this.errorCode = errorCode;\r\n this.errorMessage = message;\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n * @internal\r\n */\r\nclass CacheManager {\r\n constructor(clientId, cryptoImpl, logger, staticAuthorityOptions) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n this.commonLogger = logger.clone(name$1, version$1);\r\n this.staticAuthorityOptions = staticAuthorityOptions;\r\n }\r\n /**\r\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\r\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\r\n * @returns Array of AccountInfo objects in cache\r\n */\r\n getAllAccounts(accountFilter) {\r\n return this.buildTenantProfiles(this.getAccountsFilteredBy(accountFilter || {}), accountFilter);\r\n }\r\n /**\r\n * Gets first tenanted AccountInfo object found based on provided filters\r\n */\r\n getAccountInfoFilteredBy(accountFilter) {\r\n const allAccounts = this.getAllAccounts(accountFilter);\r\n if (allAccounts.length > 1) {\r\n // If one or more accounts are found, prioritize accounts that have an ID token\r\n const sortedAccounts = allAccounts.sort((account) => {\r\n return account.idTokenClaims ? -1 : 1;\r\n });\r\n return sortedAccounts[0];\r\n }\r\n else if (allAccounts.length === 1) {\r\n // If only one account is found, return it regardless of whether a matching ID token was found\r\n return allAccounts[0];\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n /**\r\n * Returns a single matching\r\n * @param accountFilter\r\n * @returns\r\n */\r\n getBaseAccountInfo(accountFilter) {\r\n const accountEntities = this.getAccountsFilteredBy(accountFilter);\r\n if (accountEntities.length > 0) {\r\n return accountEntities[0].getAccountInfo();\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n /**\r\n * Matches filtered account entities with cached ID tokens that match the tenant profile-specific account filters\r\n * and builds the account info objects from the matching ID token's claims\r\n * @param cachedAccounts\r\n * @param accountFilter\r\n * @returns Array of AccountInfo objects that match account and tenant profile filters\r\n */\r\n buildTenantProfiles(cachedAccounts, accountFilter) {\r\n return cachedAccounts.flatMap((accountEntity) => {\r\n return this.getTenantProfilesFromAccountEntity(accountEntity, accountFilter?.tenantId, accountFilter);\r\n });\r\n }\r\n getTenantedAccountInfoByFilter(accountInfo, tokenKeys, tenantProfile, tenantProfileFilter) {\r\n let tenantedAccountInfo = null;\r\n let idTokenClaims;\r\n if (tenantProfileFilter) {\r\n if (!this.tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter)) {\r\n return null;\r\n }\r\n }\r\n const idToken = this.getIdToken(accountInfo, tokenKeys, tenantProfile.tenantId);\r\n if (idToken) {\r\n idTokenClaims = extractTokenClaims(idToken.secret, this.cryptoImpl.base64Decode);\r\n if (!this.idTokenClaimsMatchTenantProfileFilter(idTokenClaims, tenantProfileFilter)) {\r\n // ID token sourced claims don't match so this tenant profile is not a match\r\n return null;\r\n }\r\n }\r\n // Expand tenant profile into account info based on matching tenant profile and if available matching ID token claims\r\n tenantedAccountInfo = updateAccountTenantProfileData(accountInfo, tenantProfile, idTokenClaims, idToken?.secret);\r\n return tenantedAccountInfo;\r\n }\r\n getTenantProfilesFromAccountEntity(accountEntity, targetTenantId, tenantProfileFilter) {\r\n const accountInfo = accountEntity.getAccountInfo();\r\n let searchTenantProfiles = accountInfo.tenantProfiles || new Map();\r\n const tokenKeys = this.getTokenKeys();\r\n // If a tenant ID was provided, only return the tenant profile for that tenant ID if it exists\r\n if (targetTenantId) {\r\n const tenantProfile = searchTenantProfiles.get(targetTenantId);\r\n if (tenantProfile) {\r\n // Reduce search field to just this tenant profile\r\n searchTenantProfiles = new Map([\r\n [targetTenantId, tenantProfile],\r\n ]);\r\n }\r\n else {\r\n // No tenant profile for search tenant ID, return empty array\r\n return [];\r\n }\r\n }\r\n const matchingTenantProfiles = [];\r\n searchTenantProfiles.forEach((tenantProfile) => {\r\n const tenantedAccountInfo = this.getTenantedAccountInfoByFilter(accountInfo, tokenKeys, tenantProfile, tenantProfileFilter);\r\n if (tenantedAccountInfo) {\r\n matchingTenantProfiles.push(tenantedAccountInfo);\r\n }\r\n });\r\n return matchingTenantProfiles;\r\n }\r\n tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter) {\r\n if (!!tenantProfileFilter.localAccountId &&\r\n !this.matchLocalAccountIdFromTenantProfile(tenantProfile, tenantProfileFilter.localAccountId)) {\r\n return false;\r\n }\r\n if (!!tenantProfileFilter.name &&\r\n !(tenantProfile.name === tenantProfileFilter.name)) {\r\n return false;\r\n }\r\n if (tenantProfileFilter.isHomeTenant !== undefined &&\r\n !(tenantProfile.isHomeTenant === tenantProfileFilter.isHomeTenant)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n idTokenClaimsMatchTenantProfileFilter(idTokenClaims, tenantProfileFilter) {\r\n // Tenant Profile filtering\r\n if (tenantProfileFilter) {\r\n if (!!tenantProfileFilter.localAccountId &&\r\n !this.matchLocalAccountIdFromTokenClaims(idTokenClaims, tenantProfileFilter.localAccountId)) {\r\n return false;\r\n }\r\n if (!!tenantProfileFilter.loginHint &&\r\n !this.matchLoginHintFromTokenClaims(idTokenClaims, tenantProfileFilter.loginHint)) {\r\n return false;\r\n }\r\n if (!!tenantProfileFilter.username &&\r\n !this.matchUsername(idTokenClaims.preferred_username, tenantProfileFilter.username)) {\r\n return false;\r\n }\r\n if (!!tenantProfileFilter.name &&\r\n !this.matchName(idTokenClaims, tenantProfileFilter.name)) {\r\n return false;\r\n }\r\n if (!!tenantProfileFilter.sid &&\r\n !this.matchSid(idTokenClaims, tenantProfileFilter.sid)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord {CacheRecord}\r\n * @param storeInCache {?StoreInCache}\r\n * @param correlationId {?string} correlation id\r\n */\r\n async saveCacheRecord(cacheRecord, correlationId, storeInCache) {\r\n if (!cacheRecord) {\r\n throw createClientAuthError(invalidCacheRecord);\r\n }\r\n try {\r\n if (!!cacheRecord.account) {\r\n await this.setAccount(cacheRecord.account, correlationId);\r\n }\r\n if (!!cacheRecord.idToken && storeInCache?.idToken !== false) {\r\n await this.setIdTokenCredential(cacheRecord.idToken, correlationId);\r\n }\r\n if (!!cacheRecord.accessToken &&\r\n storeInCache?.accessToken !== false) {\r\n await this.saveAccessToken(cacheRecord.accessToken, correlationId);\r\n }\r\n if (!!cacheRecord.refreshToken &&\r\n storeInCache?.refreshToken !== false) {\r\n await this.setRefreshTokenCredential(cacheRecord.refreshToken, correlationId);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n }\r\n catch (e) {\r\n this.commonLogger?.error(`CacheManager.saveCacheRecord: failed`);\r\n if (e instanceof Error) {\r\n this.commonLogger?.errorPii(`CacheManager.saveCacheRecord: ${e.message}`, correlationId);\r\n if (e.name === \"QuotaExceededError\" ||\r\n e.name === \"NS_ERROR_DOM_QUOTA_REACHED\" ||\r\n e.message.includes(\"exceeded the quota\")) {\r\n this.commonLogger?.error(`CacheManager.saveCacheRecord: exceeded storage quota`, correlationId);\r\n throw new CacheError(cacheQuotaExceededErrorCode);\r\n }\r\n else {\r\n throw new CacheError(e.name, e.message);\r\n }\r\n }\r\n else {\r\n this.commonLogger?.errorPii(`CacheManager.saveCacheRecord: ${e}`, correlationId);\r\n throw new CacheError(cacheUnknownErrorCode);\r\n }\r\n }\r\n }\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n async saveAccessToken(credential, correlationId) {\r\n const accessTokenFilter = {\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n tokenType: credential.tokenType,\r\n requestedClaimsHash: credential.requestedClaimsHash,\r\n };\r\n const tokenKeys = this.getTokenKeys();\r\n const currentScopes = ScopeSet.fromString(credential.target);\r\n const removedAccessTokens = [];\r\n tokenKeys.accessToken.forEach((key) => {\r\n if (!this.accessTokenKeyMatchesFilter(key, accessTokenFilter, false)) {\r\n return;\r\n }\r\n const tokenEntity = this.getAccessTokenCredential(key);\r\n if (tokenEntity &&\r\n this.credentialMatchesFilter(tokenEntity, accessTokenFilter)) {\r\n const tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n removedAccessTokens.push(this.removeAccessToken(key));\r\n }\r\n }\r\n });\r\n await Promise.all(removedAccessTokens);\r\n await this.setAccessTokenCredential(credential, correlationId);\r\n }\r\n /**\r\n * Retrieve account entities matching all provided tenant-agnostic filters; if no filter is set, get all account entities in the cache\r\n * Not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param accountFilter - An object containing Account properties to filter by\r\n */\r\n getAccountsFilteredBy(accountFilter) {\r\n const allAccountKeys = this.getAccountKeys();\r\n const matchingAccounts = [];\r\n allAccountKeys.forEach((cacheKey) => {\r\n if (!this.isAccountKey(cacheKey, accountFilter.homeAccountId)) {\r\n // Don't parse value if the key doesn't match the account filters\r\n return;\r\n }\r\n const entity = this.getAccount(cacheKey, this.commonLogger);\r\n // Match base account fields\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!accountFilter.homeAccountId &&\r\n !this.matchHomeAccountId(entity, accountFilter.homeAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.username &&\r\n !this.matchUsername(entity.username, accountFilter.username)) {\r\n return;\r\n }\r\n if (!!accountFilter.environment &&\r\n !this.matchEnvironment(entity, accountFilter.environment)) {\r\n return;\r\n }\r\n if (!!accountFilter.realm &&\r\n !this.matchRealm(entity, accountFilter.realm)) {\r\n return;\r\n }\r\n if (!!accountFilter.nativeAccountId &&\r\n !this.matchNativeAccountId(entity, accountFilter.nativeAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.authorityType &&\r\n !this.matchAuthorityType(entity, accountFilter.authorityType)) {\r\n return;\r\n }\r\n // If at least one tenant profile matches the tenant profile filter, add the account to the list of matching accounts\r\n const tenantProfileFilter = {\r\n localAccountId: accountFilter?.localAccountId,\r\n name: accountFilter?.name,\r\n };\r\n const matchingTenantProfiles = entity.tenantProfiles?.filter((tenantProfile) => {\r\n return this.tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter);\r\n });\r\n if (matchingTenantProfiles && matchingTenantProfiles.length === 0) {\r\n // No tenant profile for this account matches filter, don't add to list of matching accounts\r\n return;\r\n }\r\n matchingAccounts.push(entity);\r\n });\r\n return matchingAccounts;\r\n }\r\n /**\r\n * Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided\r\n * @param key\r\n * @param homeAccountId\r\n * @param tenantId\r\n * @returns\r\n */\r\n isAccountKey(key, homeAccountId, tenantId) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 3) {\r\n // Account cache keys contain 3 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n if (homeAccountId &&\r\n !key.toLowerCase().includes(homeAccountId.toLowerCase())) {\r\n return false;\r\n }\r\n if (tenantId && !key.toLowerCase().includes(tenantId.toLowerCase())) {\r\n return false;\r\n }\r\n // Do not check environment as aliasing can cause false negatives\r\n return true;\r\n }\r\n /**\r\n * Returns true if the given key matches our credential key schema.\r\n * @param key\r\n */\r\n isCredentialKey(key) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 6) {\r\n // Credential cache keys contain 6 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n const lowerCaseKey = key.toLowerCase();\r\n // Credential keys must indicate what credential type they represent\r\n if (lowerCaseKey.indexOf(CredentialType.ID_TOKEN.toLowerCase()) ===\r\n -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) ===\r\n -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) ===\r\n -1) {\r\n return false;\r\n }\r\n if (lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) >\r\n -1) {\r\n // Refresh tokens must contain the client id or family id\r\n const clientIdValidation = `${CredentialType.REFRESH_TOKEN}${Separators.CACHE_KEY_SEPARATOR}${this.clientId}${Separators.CACHE_KEY_SEPARATOR}`;\r\n const familyIdValidation = `${CredentialType.REFRESH_TOKEN}${Separators.CACHE_KEY_SEPARATOR}${THE_FAMILY_ID}${Separators.CACHE_KEY_SEPARATOR}`;\r\n if (lowerCaseKey.indexOf(clientIdValidation.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(familyIdValidation.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n }\r\n else if (lowerCaseKey.indexOf(this.clientId.toLowerCase()) === -1) {\r\n // Tokens must contain the clientId\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Returns whether or not the given credential entity matches the filter\r\n * @param entity\r\n * @param filter\r\n * @returns\r\n */\r\n credentialMatchesFilter(entity, filter) {\r\n if (!!filter.clientId && !this.matchClientId(entity, filter.clientId)) {\r\n return false;\r\n }\r\n if (!!filter.userAssertionHash &&\r\n !this.matchUserAssertionHash(entity, filter.userAssertionHash)) {\r\n return false;\r\n }\r\n /*\r\n * homeAccountId can be undefined, and we want to filter out cached items that have a homeAccountId of \"\"\r\n * because we don't want a client_credential request to return a cached token that has a homeAccountId\r\n */\r\n if (typeof filter.homeAccountId === \"string\" &&\r\n !this.matchHomeAccountId(entity, filter.homeAccountId)) {\r\n return false;\r\n }\r\n if (!!filter.environment &&\r\n !this.matchEnvironment(entity, filter.environment)) {\r\n return false;\r\n }\r\n if (!!filter.realm && !this.matchRealm(entity, filter.realm)) {\r\n return false;\r\n }\r\n if (!!filter.credentialType &&\r\n !this.matchCredentialType(entity, filter.credentialType)) {\r\n return false;\r\n }\r\n if (!!filter.familyId && !this.matchFamilyId(entity, filter.familyId)) {\r\n return false;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!filter.target && !this.matchTarget(entity, filter.target)) {\r\n return false;\r\n }\r\n // If request OR cached entity has requested Claims Hash, check if they match\r\n if (filter.requestedClaimsHash || entity.requestedClaimsHash) {\r\n // Don't match if either is undefined or they are different\r\n if (entity.requestedClaimsHash !== filter.requestedClaimsHash) {\r\n return false;\r\n }\r\n }\r\n // Access Token with Auth Scheme specific matching\r\n if (entity.credentialType ===\r\n CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {\r\n if (!!filter.tokenType &&\r\n !this.matchTokenType(entity, filter.tokenType)) {\r\n return false;\r\n }\r\n // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key\r\n if (filter.tokenType === AuthenticationScheme.SSH) {\r\n if (filter.keyId && !this.matchKeyId(entity, filter.keyId)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n getAppMetadataFilteredBy(filter) {\r\n const allCacheKeys = this.getKeys();\r\n const matchingAppMetadata = {};\r\n allCacheKeys.forEach((cacheKey) => {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n const entity = this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!filter.environment &&\r\n !this.matchEnvironment(entity, filter.environment)) {\r\n return;\r\n }\r\n if (!!filter.clientId &&\r\n !this.matchClientId(entity, filter.clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n }\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n getAuthorityMetadataByAlias(host) {\r\n const allCacheKeys = this.getAuthorityMetadataKeys();\r\n let matchedEntity = null;\r\n allCacheKeys.forEach((cacheKey) => {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!this.isAuthorityMetadata(cacheKey) ||\r\n cacheKey.indexOf(this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n const entity = this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n }\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n async removeAllAccounts() {\r\n const allAccountKeys = this.getAccountKeys();\r\n const removedAccounts = [];\r\n allAccountKeys.forEach((cacheKey) => {\r\n removedAccounts.push(this.removeAccount(cacheKey));\r\n });\r\n await Promise.all(removedAccounts);\r\n }\r\n /**\r\n * Removes the account and related tokens for a given account key\r\n * @param account\r\n */\r\n async removeAccount(accountKey) {\r\n const account = this.getAccount(accountKey, this.commonLogger);\r\n if (!account) {\r\n return;\r\n }\r\n await this.removeAccountContext(account);\r\n this.removeItem(accountKey);\r\n }\r\n /**\r\n * Removes credentials associated with the provided account\r\n * @param account\r\n */\r\n async removeAccountContext(account) {\r\n const allTokenKeys = this.getTokenKeys();\r\n const accountId = account.generateAccountId();\r\n const removedCredentials = [];\r\n allTokenKeys.idToken.forEach((key) => {\r\n if (key.indexOf(accountId) === 0) {\r\n this.removeIdToken(key);\r\n }\r\n });\r\n allTokenKeys.accessToken.forEach((key) => {\r\n if (key.indexOf(accountId) === 0) {\r\n removedCredentials.push(this.removeAccessToken(key));\r\n }\r\n });\r\n allTokenKeys.refreshToken.forEach((key) => {\r\n if (key.indexOf(accountId) === 0) {\r\n this.removeRefreshToken(key);\r\n }\r\n });\r\n await Promise.all(removedCredentials);\r\n }\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n async removeAccessToken(key) {\r\n const credential = this.getAccessTokenCredential(key);\r\n if (!credential) {\r\n return;\r\n }\r\n // Remove Token Binding Key from key store for PoP Tokens Credentials\r\n if (credential.credentialType.toLowerCase() ===\r\n CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) {\r\n if (credential.tokenType === AuthenticationScheme.POP) {\r\n const accessTokenWithAuthSchemeEntity = credential;\r\n const kid = accessTokenWithAuthSchemeEntity.keyId;\r\n if (kid) {\r\n try {\r\n await this.cryptoImpl.removeTokenBindingKey(kid);\r\n }\r\n catch (error) {\r\n throw createClientAuthError(bindingKeyNotRemoved);\r\n }\r\n }\r\n }\r\n }\r\n return this.removeItem(key);\r\n }\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n removeAppMetadata() {\r\n const allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach((cacheKey) => {\r\n if (this.isAppMetadata(cacheKey)) {\r\n this.removeItem(cacheKey);\r\n }\r\n });\r\n return true;\r\n }\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n readAccountFromCache(account) {\r\n const accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey, this.commonLogger);\r\n }\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param account {AccountInfo}\r\n * @param tokenKeys {?TokenKeys}\r\n * @param targetRealm {?string}\r\n * @param performanceClient {?IPerformanceClient}\r\n * @param correlationId {?string}\r\n */\r\n getIdToken(account, tokenKeys, targetRealm, performanceClient, correlationId) {\r\n this.commonLogger.trace(\"CacheManager - getIdToken called\");\r\n const idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: this.clientId,\r\n realm: targetRealm,\r\n };\r\n const idTokenMap = this.getIdTokensByFilter(idTokenFilter, tokenKeys);\r\n const numIdTokens = idTokenMap.size;\r\n if (numIdTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - No token found\");\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n let tokensToBeRemoved = idTokenMap;\r\n // Multiple tenant profiles and no tenant specified, pick home account\r\n if (!targetRealm) {\r\n const homeIdTokenMap = new Map();\r\n idTokenMap.forEach((idToken, key) => {\r\n if (idToken.realm === account.tenantId) {\r\n homeIdTokenMap.set(key, idToken);\r\n }\r\n });\r\n const numHomeIdTokens = homeIdTokenMap.size;\r\n if (numHomeIdTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result\");\r\n return idTokenMap.values().next().value;\r\n }\r\n else if (numHomeIdTokens === 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile\");\r\n return homeIdTokenMap.values().next().value;\r\n }\r\n else {\r\n // Multiple ID tokens for home tenant profile, remove all and return null\r\n tokensToBeRemoved = homeIdTokenMap;\r\n }\r\n }\r\n // Multiple tokens for a single tenant profile, remove all and return null\r\n this.commonLogger.info(\"CacheManager:getIdToken - Multiple matching ID tokens found, clearing them\");\r\n tokensToBeRemoved.forEach((idToken, key) => {\r\n this.removeIdToken(key);\r\n });\r\n if (performanceClient && correlationId) {\r\n performanceClient.addFields({ multiMatchedID: idTokenMap.size }, correlationId);\r\n }\r\n return null;\r\n }\r\n this.commonLogger.info(\"CacheManager:getIdToken - Returning ID token\");\r\n return idTokenMap.values().next().value;\r\n }\r\n /**\r\n * Gets all idTokens matching the given filter\r\n * @param filter\r\n * @returns\r\n */\r\n getIdTokensByFilter(filter, tokenKeys) {\r\n const idTokenKeys = (tokenKeys && tokenKeys.idToken) || this.getTokenKeys().idToken;\r\n const idTokens = new Map();\r\n idTokenKeys.forEach((key) => {\r\n if (!this.idTokenKeyMatchesFilter(key, {\r\n clientId: this.clientId,\r\n ...filter,\r\n })) {\r\n return;\r\n }\r\n const idToken = this.getIdTokenCredential(key);\r\n if (idToken && this.credentialMatchesFilter(idToken, filter)) {\r\n idTokens.set(key, idToken);\r\n }\r\n });\r\n return idTokens;\r\n }\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @returns\r\n */\r\n idTokenKeyMatchesFilter(inputKey, filter) {\r\n const key = inputKey.toLowerCase();\r\n if (filter.clientId &&\r\n key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId &&\r\n key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Removes idToken from the cache\r\n * @param key\r\n */\r\n removeIdToken(key) {\r\n this.removeItem(key);\r\n }\r\n /**\r\n * Removes refresh token from the cache\r\n * @param key\r\n */\r\n removeRefreshToken(key) {\r\n this.removeItem(key);\r\n }\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param account {AccountInfo}\r\n * @param request {BaseAuthRequest}\r\n * @param tokenKeys {?TokenKeys}\r\n * @param performanceClient {?IPerformanceClient}\r\n * @param correlationId {?string}\r\n */\r\n getAccessToken(account, request, tokenKeys, targetRealm, performanceClient, correlationId) {\r\n this.commonLogger.trace(\"CacheManager - getAccessToken called\");\r\n const scopes = ScopeSet.createSearchScopes(request.scopes);\r\n const authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n /*\r\n * Distinguish between Bearer and PoP/SSH token cache types\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n const credentialType = authScheme &&\r\n authScheme.toLowerCase() !==\r\n AuthenticationScheme.BEARER.toLowerCase()\r\n ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME\r\n : CredentialType.ACCESS_TOKEN;\r\n const accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: this.clientId,\r\n realm: targetRealm || account.tenantId,\r\n target: scopes,\r\n tokenType: authScheme,\r\n keyId: request.sshKid,\r\n requestedClaimsHash: request.requestedClaimsHash,\r\n };\r\n const accessTokenKeys = (tokenKeys && tokenKeys.accessToken) ||\r\n this.getTokenKeys().accessToken;\r\n const accessTokens = [];\r\n accessTokenKeys.forEach((key) => {\r\n // Validate key\r\n if (this.accessTokenKeyMatchesFilter(key, accessTokenFilter, true)) {\r\n const accessToken = this.getAccessTokenCredential(key);\r\n // Validate value\r\n if (accessToken &&\r\n this.credentialMatchesFilter(accessToken, accessTokenFilter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n }\r\n });\r\n const numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getAccessToken - No token found\");\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n this.commonLogger.info(\"CacheManager:getAccessToken - Multiple access tokens found, clearing them\");\r\n accessTokens.forEach((accessToken) => {\r\n void this.removeAccessToken(generateCredentialKey(accessToken));\r\n });\r\n if (performanceClient && correlationId) {\r\n performanceClient.addFields({ multiMatchedAT: accessTokens.length }, correlationId);\r\n }\r\n return null;\r\n }\r\n this.commonLogger.info(\"CacheManager:getAccessToken - Returning access token\");\r\n return accessTokens[0];\r\n }\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @param keyMustContainAllScopes\r\n * @returns\r\n */\r\n accessTokenKeyMatchesFilter(inputKey, filter, keyMustContainAllScopes) {\r\n const key = inputKey.toLowerCase();\r\n if (filter.clientId &&\r\n key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId &&\r\n key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.realm && key.indexOf(filter.realm.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.requestedClaimsHash &&\r\n key.indexOf(filter.requestedClaimsHash.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.target) {\r\n const scopes = filter.target.asArray();\r\n for (let i = 0; i < scopes.length; i++) {\r\n if (keyMustContainAllScopes &&\r\n !key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache lookup a missing scope would be a cache miss\r\n return false;\r\n }\r\n else if (!keyMustContainAllScopes &&\r\n key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache write, any token with a subset of requested scopes should be replaced\r\n return true;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * Gets all access tokens matching the filter\r\n * @param filter\r\n * @returns\r\n */\r\n getAccessTokensByFilter(filter) {\r\n const tokenKeys = this.getTokenKeys();\r\n const accessTokens = [];\r\n tokenKeys.accessToken.forEach((key) => {\r\n if (!this.accessTokenKeyMatchesFilter(key, filter, true)) {\r\n return;\r\n }\r\n const accessToken = this.getAccessTokenCredential(key);\r\n if (accessToken &&\r\n this.credentialMatchesFilter(accessToken, filter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n });\r\n return accessTokens;\r\n }\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param account {AccountInfo}\r\n * @param familyRT {boolean}\r\n * @param tokenKeys {?TokenKeys}\r\n * @param performanceClient {?IPerformanceClient}\r\n * @param correlationId {?string}\r\n */\r\n getRefreshToken(account, familyRT, tokenKeys, performanceClient, correlationId) {\r\n this.commonLogger.trace(\"CacheManager - getRefreshToken called\");\r\n const id = familyRT ? THE_FAMILY_ID : undefined;\r\n const refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: this.clientId,\r\n familyId: id,\r\n };\r\n const refreshTokenKeys = (tokenKeys && tokenKeys.refreshToken) ||\r\n this.getTokenKeys().refreshToken;\r\n const refreshTokens = [];\r\n refreshTokenKeys.forEach((key) => {\r\n // Validate key\r\n if (this.refreshTokenKeyMatchesFilter(key, refreshTokenFilter)) {\r\n const refreshToken = this.getRefreshTokenCredential(key);\r\n // Validate value\r\n if (refreshToken &&\r\n this.credentialMatchesFilter(refreshToken, refreshTokenFilter)) {\r\n refreshTokens.push(refreshToken);\r\n }\r\n }\r\n });\r\n const numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - No refresh token found.\");\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n if (numRefreshTokens > 1 && performanceClient && correlationId) {\r\n performanceClient.addFields({ multiMatchedRT: numRefreshTokens }, correlationId);\r\n }\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - returning refresh token\");\r\n return refreshTokens[0];\r\n }\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n */\r\n refreshTokenKeyMatchesFilter(inputKey, filter) {\r\n const key = inputKey.toLowerCase();\r\n if (filter.familyId &&\r\n key.indexOf(filter.familyId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n // If familyId is used, clientId is not in the key\r\n if (!filter.familyId &&\r\n filter.clientId &&\r\n key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId &&\r\n key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n readAppMetadataFromCache(environment) {\r\n const appMetadataFilter = {\r\n environment,\r\n clientId: this.clientId,\r\n };\r\n const appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n const appMetadataEntries = Object.keys(appMetadata).map((key) => appMetadata[key]);\r\n const numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw createClientAuthError(multipleMatchingAppMetadata);\r\n }\r\n return appMetadataEntries[0];\r\n }\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n isAppMetadataFOCI(environment) {\r\n const appMetadata = this.readAppMetadataFromCache(environment);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n }\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n matchHomeAccountId(entity, homeAccountId) {\r\n return !!(typeof entity.homeAccountId === \"string\" &&\r\n homeAccountId === entity.homeAccountId);\r\n }\r\n /**\r\n * helper to match account ids\r\n * @param entity\r\n * @param localAccountId\r\n * @returns\r\n */\r\n matchLocalAccountIdFromTokenClaims(tokenClaims, localAccountId) {\r\n const idTokenLocalAccountId = tokenClaims.oid || tokenClaims.sub;\r\n return localAccountId === idTokenLocalAccountId;\r\n }\r\n matchLocalAccountIdFromTenantProfile(tenantProfile, localAccountId) {\r\n return tenantProfile.localAccountId === localAccountId;\r\n }\r\n /**\r\n * helper to match names\r\n * @param entity\r\n * @param name\r\n * @returns true if the downcased name properties are present and match in the filter and the entity\r\n */\r\n matchName(claims, name) {\r\n return !!(name.toLowerCase() === claims.name?.toLowerCase());\r\n }\r\n /**\r\n * helper to match usernames\r\n * @param entity\r\n * @param username\r\n * @returns\r\n */\r\n matchUsername(cachedUsername, filterUsername) {\r\n return !!(cachedUsername &&\r\n typeof cachedUsername === \"string\" &&\r\n filterUsername?.toLowerCase() === cachedUsername.toLowerCase());\r\n }\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n matchUserAssertionHash(entity, userAssertionHash) {\r\n return !!(entity.userAssertionHash &&\r\n userAssertionHash === entity.userAssertionHash);\r\n }\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n matchEnvironment(entity, environment) {\r\n // Check static authority options first for cases where authority metadata has not been resolved and cached yet\r\n if (this.staticAuthorityOptions) {\r\n const staticAliases = getAliasesFromStaticSources(this.staticAuthorityOptions, this.commonLogger);\r\n if (staticAliases.includes(environment) &&\r\n staticAliases.includes(entity.environment)) {\r\n return true;\r\n }\r\n }\r\n // Query metadata cache if no static authority configuration has aliases that match enviroment\r\n const cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata &&\r\n cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n matchCredentialType(entity, credentialType) {\r\n return (entity.credentialType &&\r\n credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n }\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n matchClientId(entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n }\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n matchFamilyId(entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n }\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n matchRealm(entity, realm) {\r\n return !!(entity.realm?.toLowerCase() === realm.toLowerCase());\r\n }\r\n /**\r\n * helper to match nativeAccountId\r\n * @param entity\r\n * @param nativeAccountId\r\n * @returns boolean indicating the match result\r\n */\r\n matchNativeAccountId(entity, nativeAccountId) {\r\n return !!(entity.nativeAccountId && nativeAccountId === entity.nativeAccountId);\r\n }\r\n /**\r\n * helper to match loginHint which can be either:\r\n * 1. login_hint ID token claim\r\n * 2. username in cached account object\r\n * 3. upn in ID token claims\r\n * @param entity\r\n * @param loginHint\r\n * @returns\r\n */\r\n matchLoginHintFromTokenClaims(tokenClaims, loginHint) {\r\n if (tokenClaims.login_hint === loginHint) {\r\n return true;\r\n }\r\n if (tokenClaims.preferred_username === loginHint) {\r\n return true;\r\n }\r\n if (tokenClaims.upn === loginHint) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Helper to match sid\r\n * @param entity\r\n * @param sid\r\n * @returns true if the sid claim is present and matches the filter\r\n */\r\n matchSid(idTokenClaims, sid) {\r\n return idTokenClaims.sid === sid;\r\n }\r\n matchAuthorityType(entity, authorityType) {\r\n return !!(entity.authorityType &&\r\n authorityType.toLowerCase() === entity.authorityType.toLowerCase());\r\n }\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n matchTarget(entity, target) {\r\n const isNotAccessTokenCredential = entity.credentialType !== CredentialType.ACCESS_TOKEN &&\r\n entity.credentialType !==\r\n CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n const entityScopeSet = ScopeSet.fromString(entity.target);\r\n return entityScopeSet.containsScopeSet(target);\r\n }\r\n /**\r\n * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n matchTokenType(entity, tokenType) {\r\n return !!(entity.tokenType && entity.tokenType === tokenType);\r\n }\r\n /**\r\n * Returns true if the credential's keyId matches the one in the request, false otherwise\r\n * @param entity\r\n * @param keyId\r\n */\r\n matchKeyId(entity, keyId) {\r\n return !!(entity.keyId && entity.keyId === keyId);\r\n }\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n isAppMetadata(key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n }\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n isAuthorityMetadata(key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n }\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n generateAuthorityMetadataCacheKey(authority) {\r\n return `${AUTHORITY_METADATA_CONSTANTS.CACHE_KEY}-${this.clientId}-${authority}`;\r\n }\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n static toObject(obj, json) {\r\n for (const propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n }\r\n}\r\n/** @internal */\r\nclass DefaultStorageClass extends CacheManager {\r\n async setAccount() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getAccount() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n async setIdTokenCredential() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getIdTokenCredential() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n async setAccessTokenCredential() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getAccessTokenCredential() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n async setRefreshTokenCredential() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getRefreshTokenCredential() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n setAppMetadata() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getAppMetadata() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n setServerTelemetry() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getServerTelemetry() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n setAuthorityMetadata() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getAuthorityMetadata() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getAuthorityMetadataKeys() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n setThrottlingCache() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getThrottlingCache() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n removeItem() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getKeys() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getAccountKeys() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n getTokenKeys() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false,\r\n};\r\nconst DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: () => {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: exports.LogLevel.Info,\r\n correlationId: Constants.EMPTY_STRING,\r\n};\r\nconst DEFAULT_CACHE_OPTIONS = {\r\n claimsBasedCachingEnabled: false,\r\n};\r\nconst DEFAULT_NETWORK_IMPLEMENTATION = {\r\n async sendGetRequestAsync() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n async sendPostRequestAsync() {\r\n throw createClientAuthError(methodNotImplemented);\r\n },\r\n};\r\nconst DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version$1,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING,\r\n};\r\nconst DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: Constants.EMPTY_STRING,\r\n clientAssertion: undefined,\r\n};\r\nconst DEFAULT_AZURE_CLOUD_OPTIONS = {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: `${Constants.DEFAULT_COMMON_TENANT}`,\r\n};\r\nconst DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: \"\",\r\n appVersion: \"\",\r\n },\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {\r\n const loggerOptions = {\r\n ...DEFAULT_LOGGER_IMPLEMENTATION,\r\n ...userLoggerOption,\r\n };\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },\r\n loggerOptions: loggerOptions,\r\n cacheOptions: { ...DEFAULT_CACHE_OPTIONS, ...userCacheOptions },\r\n storageInterface: storageImplementation ||\r\n new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },\r\n telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null,\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return {\r\n clientCapabilities: [],\r\n azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,\r\n skipAuthorityMetadataCache: false,\r\n instanceAware: false,\r\n ...authOptions,\r\n };\r\n}\r\n/**\r\n * Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise\r\n * @param ClientConfiguration\r\n */\r\nfunction isOidcProtocolMode(config) {\r\n return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst CcsCredentialType = {\r\n HOME_ACCOUNT_ID: \"home_account_id\",\r\n UPN: \"UPN\",\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst CLIENT_ID = \"client_id\";\r\nconst REDIRECT_URI = \"redirect_uri\";\r\nconst RESPONSE_TYPE = \"response_type\";\r\nconst RESPONSE_MODE = \"response_mode\";\r\nconst GRANT_TYPE = \"grant_type\";\r\nconst CLAIMS = \"claims\";\r\nconst SCOPE = \"scope\";\r\nconst REFRESH_TOKEN = \"refresh_token\";\r\nconst STATE = \"state\";\r\nconst NONCE = \"nonce\";\r\nconst PROMPT = \"prompt\";\r\nconst CODE = \"code\";\r\nconst CODE_CHALLENGE = \"code_challenge\";\r\nconst CODE_CHALLENGE_METHOD = \"code_challenge_method\";\r\nconst CODE_VERIFIER = \"code_verifier\";\r\nconst CLIENT_REQUEST_ID = \"client-request-id\";\r\nconst X_CLIENT_SKU = \"x-client-SKU\";\r\nconst X_CLIENT_VER = \"x-client-VER\";\r\nconst X_CLIENT_OS = \"x-client-OS\";\r\nconst X_CLIENT_CPU = \"x-client-CPU\";\r\nconst X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\";\r\nconst X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\";\r\nconst X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\";\r\nconst X_APP_NAME = \"x-app-name\";\r\nconst X_APP_VER = \"x-app-ver\";\r\nconst POST_LOGOUT_URI = \"post_logout_redirect_uri\";\r\nconst ID_TOKEN_HINT = \"id_token_hint\";\r\nconst DEVICE_CODE = \"device_code\";\r\nconst CLIENT_SECRET = \"client_secret\";\r\nconst CLIENT_ASSERTION = \"client_assertion\";\r\nconst CLIENT_ASSERTION_TYPE = \"client_assertion_type\";\r\nconst TOKEN_TYPE = \"token_type\";\r\nconst REQ_CNF = \"req_cnf\";\r\nconst OBO_ASSERTION = \"assertion\";\r\nconst REQUESTED_TOKEN_USE = \"requested_token_use\";\r\nconst RETURN_SPA_CODE = \"return_spa_code\";\r\nconst NATIVE_BROKER = \"nativebroker\";\r\nconst LOGOUT_HINT = \"logout_hint\";\r\nconst SID = \"sid\";\r\nconst LOGIN_HINT = \"login_hint\";\r\nconst DOMAIN_HINT = \"domain_hint\";\r\nconst X_CLIENT_EXTRA_SKU = \"x-client-xtra-sku\";\r\nconst BROKER_CLIENT_ID = \"brk_client_id\";\r\nconst BROKER_REDIRECT_URI = \"brk_redirect_uri\";\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nclass RequestValidator {\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n static validateRedirectUri(redirectUri) {\r\n if (!redirectUri) {\r\n throw createClientConfigurationError(redirectUriEmpty);\r\n }\r\n }\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n static validatePrompt(prompt) {\r\n const promptValues = [];\r\n for (const value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw createClientConfigurationError(invalidPromptValue);\r\n }\r\n }\r\n static validateClaims(claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw createClientConfigurationError(invalidClaims);\r\n }\r\n }\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n static validateCodeChallengeParams(codeChallenge, codeChallengeMethod) {\r\n if (!codeChallenge || !codeChallengeMethod) {\r\n throw createClientConfigurationError(pkceParamsMissing);\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n }\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n static validateCodeChallengeMethod(codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256,\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw createClientConfigurationError(invalidCodeChallengeMethod);\r\n }\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction instrumentBrokerParams(parameters, correlationId, performanceClient) {\r\n if (!correlationId) {\r\n return;\r\n }\r\n const clientId = parameters.get(CLIENT_ID);\r\n if (clientId && parameters.has(BROKER_CLIENT_ID)) {\r\n performanceClient?.addFields({\r\n embeddedClientId: clientId,\r\n embeddedRedirectUri: parameters.get(REDIRECT_URI),\r\n }, correlationId);\r\n }\r\n}\r\n/** @internal */\r\nclass RequestParameterBuilder {\r\n constructor(correlationId, performanceClient) {\r\n this.parameters = new Map();\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n addResponseTypeCode() {\r\n this.parameters.set(RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n }\r\n /**\r\n * add response_type = token id_token\r\n */\r\n addResponseTypeForTokenAndIdToken() {\r\n this.parameters.set(RESPONSE_TYPE, encodeURIComponent(`${Constants.TOKEN_RESPONSE_TYPE} ${Constants.ID_TOKEN_RESPONSE_TYPE}`));\r\n }\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n addResponseMode(responseMode) {\r\n this.parameters.set(RESPONSE_MODE, encodeURIComponent(responseMode ? responseMode : ResponseMode.QUERY));\r\n }\r\n /**\r\n * Add flag to indicate STS should attempt to use WAM if available\r\n */\r\n addNativeBroker() {\r\n this.parameters.set(NATIVE_BROKER, encodeURIComponent(\"1\"));\r\n }\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n addScopes(scopes, addOidcScopes = true, defaultScopes = OIDC_DEFAULT_SCOPES) {\r\n // Always add openid to the scopes when adding OIDC scopes\r\n if (addOidcScopes &&\r\n !defaultScopes.includes(\"openid\") &&\r\n !scopes.includes(\"openid\")) {\r\n defaultScopes.push(\"openid\");\r\n }\r\n const requestScopes = addOidcScopes\r\n ? [...(scopes || []), ...defaultScopes]\r\n : scopes || [];\r\n const scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n }\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n addClientId(clientId) {\r\n this.parameters.set(CLIENT_ID, encodeURIComponent(clientId));\r\n }\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n addRedirectUri(redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(REDIRECT_URI, encodeURIComponent(redirectUri));\r\n }\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n addPostLogoutRedirectUri(redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n }\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n addIdTokenHint(idTokenHint) {\r\n this.parameters.set(ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n }\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n addDomainHint(domainHint) {\r\n this.parameters.set(DOMAIN_HINT, encodeURIComponent(domainHint));\r\n }\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n addLoginHint(loginHint) {\r\n this.parameters.set(LOGIN_HINT, encodeURIComponent(loginHint));\r\n }\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n addCcsUpn(loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`UPN:${loginHint}`));\r\n }\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n addCcsOid(clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`Oid:${clientInfo.uid}@${clientInfo.utid}`));\r\n }\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n addSid(sid) {\r\n this.parameters.set(SID, encodeURIComponent(sid));\r\n }\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n addClaims(claims, clientCapabilities) {\r\n const mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(CLAIMS, encodeURIComponent(mergedClaims));\r\n }\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n addCorrelationId(correlationId) {\r\n this.parameters.set(CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n }\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n addLibraryInfo(libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(X_CLIENT_VER, libraryInfo.version);\r\n if (libraryInfo.os) {\r\n this.parameters.set(X_CLIENT_OS, libraryInfo.os);\r\n }\r\n if (libraryInfo.cpu) {\r\n this.parameters.set(X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n }\r\n /**\r\n * Add client telemetry parameters\r\n * @param appTelemetry\r\n */\r\n addApplicationTelemetry(appTelemetry) {\r\n if (appTelemetry?.appName) {\r\n this.parameters.set(X_APP_NAME, appTelemetry.appName);\r\n }\r\n if (appTelemetry?.appVersion) {\r\n this.parameters.set(X_APP_VER, appTelemetry.appVersion);\r\n }\r\n }\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n addPrompt(prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(`${PROMPT}`, encodeURIComponent(prompt));\r\n }\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n addState(state) {\r\n if (state) {\r\n this.parameters.set(STATE, encodeURIComponent(state));\r\n }\r\n }\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n addNonce(nonce) {\r\n this.parameters.set(NONCE, encodeURIComponent(nonce));\r\n }\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n addCodeChallengeParams(codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw createClientConfigurationError(pkceParamsMissing);\r\n }\r\n }\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n addAuthorizationCode(code) {\r\n this.parameters.set(CODE, encodeURIComponent(code));\r\n }\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n addDeviceCode(code) {\r\n this.parameters.set(DEVICE_CODE, encodeURIComponent(code));\r\n }\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n addRefreshToken(refreshToken) {\r\n this.parameters.set(REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n }\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n addCodeVerifier(codeVerifier) {\r\n this.parameters.set(CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n }\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n addClientSecret(clientSecret) {\r\n this.parameters.set(CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n }\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n addClientAssertion(clientAssertion) {\r\n if (clientAssertion) {\r\n this.parameters.set(CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n }\r\n }\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n addClientAssertionType(clientAssertionType) {\r\n if (clientAssertionType) {\r\n this.parameters.set(CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n }\r\n }\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n addOboAssertion(oboAssertion) {\r\n this.parameters.set(OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n }\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n addRequestTokenUse(tokenUse) {\r\n this.parameters.set(REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n }\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n addGrantType(grantType) {\r\n this.parameters.set(GRANT_TYPE, encodeURIComponent(grantType));\r\n }\r\n /**\r\n * add client info\r\n *\r\n */\r\n addClientInfo() {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n }\r\n /**\r\n * add extraQueryParams\r\n * @param eQParams\r\n */\r\n addExtraQueryParameters(eQParams) {\r\n Object.entries(eQParams).forEach(([key, value]) => {\r\n if (!this.parameters.has(key) && value) {\r\n this.parameters.set(key, value);\r\n }\r\n });\r\n }\r\n addClientCapabilitiesToClaims(claims, clientCapabilities) {\r\n let mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw createClientConfigurationError(invalidClaims);\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities,\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n }\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n addUsername(username) {\r\n this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));\r\n }\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n addPassword(password) {\r\n this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));\r\n }\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n addPopToken(cnfString) {\r\n if (cnfString) {\r\n this.parameters.set(TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n }\r\n /**\r\n * add SSH JWK and key ID to query params\r\n */\r\n addSshJwk(sshJwkString) {\r\n if (sshJwkString) {\r\n this.parameters.set(TOKEN_TYPE, AuthenticationScheme.SSH);\r\n this.parameters.set(REQ_CNF, encodeURIComponent(sshJwkString));\r\n }\r\n }\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n addServerTelemetry(serverTelemetryManager) {\r\n this.parameters.set(X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n }\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n addThrottling() {\r\n this.parameters.set(X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n }\r\n /**\r\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\r\n */\r\n addLogoutHint(logoutHint) {\r\n this.parameters.set(LOGOUT_HINT, encodeURIComponent(logoutHint));\r\n }\r\n addBrokerParameters(params) {\r\n const brokerParams = {};\r\n brokerParams[BROKER_CLIENT_ID] =\r\n params.brokerClientId;\r\n brokerParams[BROKER_REDIRECT_URI] =\r\n params.brokerRedirectUri;\r\n this.addExtraQueryParameters(brokerParams);\r\n }\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n createQueryString() {\r\n const queryParameterArray = new Array();\r\n this.parameters.forEach((value, key) => {\r\n queryParameterArray.push(`${key}=${value}`);\r\n });\r\n instrumentBrokerParams(this.parameters, this.correlationId, this.performanceClient);\r\n return queryParameterArray.join(\"&\");\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\") &&\r\n response.hasOwnProperty(\"jwks_uri\"));\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryErrorResponse(response) {\r\n return (response.hasOwnProperty(\"error\") &&\r\n response.hasOwnProperty(\"error_description\"));\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nconst PerformanceEvents = {\r\n /**\r\n * acquireTokenByCode API (msal-browser and msal-node).\r\n * Used to acquire tokens by trading an authorization code against the token endpoint.\r\n */\r\n AcquireTokenByCode: \"acquireTokenByCode\",\r\n /**\r\n * acquireTokenByRefreshToken API (msal-browser and msal-node).\r\n * Used to renew an access token using a refresh token against the token endpoint.\r\n */\r\n AcquireTokenByRefreshToken: \"acquireTokenByRefreshToken\",\r\n /**\r\n * acquireTokenSilent API (msal-browser and msal-node).\r\n * Used to silently acquire a new access token (from the cache or the network).\r\n */\r\n AcquireTokenSilent: \"acquireTokenSilent\",\r\n /**\r\n * acquireTokenSilentAsync (msal-browser).\r\n * Internal API for acquireTokenSilent.\r\n */\r\n AcquireTokenSilentAsync: \"acquireTokenSilentAsync\",\r\n /**\r\n * acquireTokenPopup (msal-browser).\r\n * Used to acquire a new access token interactively through pop ups\r\n */\r\n AcquireTokenPopup: \"acquireTokenPopup\",\r\n /**\r\n * acquireTokenPreRedirect (msal-browser).\r\n * First part of the redirect flow.\r\n * Used to acquire a new access token interactively through redirects.\r\n */\r\n AcquireTokenPreRedirect: \"acquireTokenPreRedirect\",\r\n /**\r\n * acquireTokenRedirect (msal-browser).\r\n * Second part of the redirect flow.\r\n * Used to acquire a new access token interactively through redirects.\r\n */\r\n AcquireTokenRedirect: \"acquireTokenRedirect\",\r\n /**\r\n * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).\r\n * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.\r\n */\r\n CryptoOptsGetPublicKeyThumbprint: \"cryptoOptsGetPublicKeyThumbprint\",\r\n /**\r\n * signJwt API in CryptoOpts class (msal-browser).\r\n * Used to signed a pop token.\r\n */\r\n CryptoOptsSignJwt: \"cryptoOptsSignJwt\",\r\n /**\r\n * acquireToken API in the SilentCacheClient class (msal-browser).\r\n * Used to read access tokens from the cache.\r\n */\r\n SilentCacheClientAcquireToken: \"silentCacheClientAcquireToken\",\r\n /**\r\n * acquireToken API in the SilentIframeClient class (msal-browser).\r\n * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.\r\n */\r\n SilentIframeClientAcquireToken: \"silentIframeClientAcquireToken\",\r\n AwaitConcurrentIframe: \"awaitConcurrentIframe\",\r\n /**\r\n * acquireToken API in SilentRereshClient (msal-browser).\r\n * Used to acquire a new set of tokens from the token endpoint using a refresh token.\r\n */\r\n SilentRefreshClientAcquireToken: \"silentRefreshClientAcquireToken\",\r\n /**\r\n * ssoSilent API (msal-browser).\r\n * Used to silently acquire an authorization code and set of tokens using a hidden iframe.\r\n */\r\n SsoSilent: \"ssoSilent\",\r\n /**\r\n * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).\r\n * Used to load authority metadata for a request.\r\n */\r\n StandardInteractionClientGetDiscoveredAuthority: \"standardInteractionClientGetDiscoveredAuthority\",\r\n /**\r\n * acquireToken APIs in msal-browser.\r\n * Used to make an /authorize endpoint call with native brokering enabled.\r\n */\r\n FetchAccountIdWithNativeBroker: \"fetchAccountIdWithNativeBroker\",\r\n /**\r\n * acquireToken API in NativeInteractionClient class (msal-browser).\r\n * Used to acquire a token from Native component when native brokering is enabled.\r\n */\r\n NativeInteractionClientAcquireToken: \"nativeInteractionClientAcquireToken\",\r\n /**\r\n * Time spent creating default headers for requests to token endpoint\r\n */\r\n BaseClientCreateTokenRequestHeaders: \"baseClientCreateTokenRequestHeaders\",\r\n /**\r\n * Time spent sending/waiting for the response of a request to the token endpoint\r\n */\r\n NetworkClientSendPostRequestAsync: \"networkClientSendPostRequestAsync\",\r\n RefreshTokenClientExecutePostToTokenEndpoint: \"refreshTokenClientExecutePostToTokenEndpoint\",\r\n AuthorizationCodeClientExecutePostToTokenEndpoint: \"authorizationCodeClientExecutePostToTokenEndpoint\",\r\n /**\r\n * Used to measure the time taken for completing embedded-broker handshake (PW-Broker).\r\n */\r\n BrokerHandhshake: \"brokerHandshake\",\r\n /**\r\n * acquireTokenByRefreshToken API in BrokerClientApplication (PW-Broker) .\r\n */\r\n AcquireTokenByRefreshTokenInBroker: \"acquireTokenByRefreshTokenInBroker\",\r\n /**\r\n * Time taken for token acquisition by broker\r\n */\r\n AcquireTokenByBroker: \"acquireTokenByBroker\",\r\n /**\r\n * Time spent on the network for refresh token acquisition\r\n */\r\n RefreshTokenClientExecuteTokenRequest: \"refreshTokenClientExecuteTokenRequest\",\r\n /**\r\n * Time taken for acquiring refresh token , records RT size\r\n */\r\n RefreshTokenClientAcquireToken: \"refreshTokenClientAcquireToken\",\r\n /**\r\n * Time taken for acquiring cached refresh token\r\n */\r\n RefreshTokenClientAcquireTokenWithCachedRefreshToken: \"refreshTokenClientAcquireTokenWithCachedRefreshToken\",\r\n /**\r\n * acquireTokenByRefreshToken API in RefreshTokenClient (msal-common).\r\n */\r\n RefreshTokenClientAcquireTokenByRefreshToken: \"refreshTokenClientAcquireTokenByRefreshToken\",\r\n /**\r\n * Helper function to create token request body in RefreshTokenClient (msal-common).\r\n */\r\n RefreshTokenClientCreateTokenRequestBody: \"refreshTokenClientCreateTokenRequestBody\",\r\n /**\r\n * acquireTokenFromCache (msal-browser).\r\n * Internal API for acquiring token from cache\r\n */\r\n AcquireTokenFromCache: \"acquireTokenFromCache\",\r\n SilentFlowClientAcquireCachedToken: \"silentFlowClientAcquireCachedToken\",\r\n SilentFlowClientGenerateResultFromCacheRecord: \"silentFlowClientGenerateResultFromCacheRecord\",\r\n /**\r\n * acquireTokenBySilentIframe (msal-browser).\r\n * Internal API for acquiring token by silent Iframe\r\n */\r\n AcquireTokenBySilentIframe: \"acquireTokenBySilentIframe\",\r\n /**\r\n * Internal API for initializing base request in BaseInteractionClient (msal-browser)\r\n */\r\n InitializeBaseRequest: \"initializeBaseRequest\",\r\n /**\r\n * Internal API for initializing silent request in SilentCacheClient (msal-browser)\r\n */\r\n InitializeSilentRequest: \"initializeSilentRequest\",\r\n InitializeClientApplication: \"initializeClientApplication\",\r\n InitializeCache: \"initializeCache\",\r\n /**\r\n * Helper function in SilentIframeClient class (msal-browser).\r\n */\r\n SilentIframeClientTokenHelper: \"silentIframeClientTokenHelper\",\r\n /**\r\n * SilentHandler\r\n */\r\n SilentHandlerInitiateAuthRequest: \"silentHandlerInitiateAuthRequest\",\r\n SilentHandlerMonitorIframeForHash: \"silentHandlerMonitorIframeForHash\",\r\n SilentHandlerLoadFrame: \"silentHandlerLoadFrame\",\r\n SilentHandlerLoadFrameSync: \"silentHandlerLoadFrameSync\",\r\n /**\r\n * Helper functions in StandardInteractionClient class (msal-browser)\r\n */\r\n StandardInteractionClientCreateAuthCodeClient: \"standardInteractionClientCreateAuthCodeClient\",\r\n StandardInteractionClientGetClientConfiguration: \"standardInteractionClientGetClientConfiguration\",\r\n StandardInteractionClientInitializeAuthorizationRequest: \"standardInteractionClientInitializeAuthorizationRequest\",\r\n StandardInteractionClientInitializeAuthorizationCodeRequest: \"standardInteractionClientInitializeAuthorizationCodeRequest\",\r\n /**\r\n * getAuthCodeUrl API (msal-browser and msal-node).\r\n */\r\n GetAuthCodeUrl: \"getAuthCodeUrl\",\r\n /**\r\n * Functions from InteractionHandler (msal-browser)\r\n */\r\n HandleCodeResponseFromServer: \"handleCodeResponseFromServer\",\r\n HandleCodeResponse: \"handleCodeResponse\",\r\n UpdateTokenEndpointAuthority: \"updateTokenEndpointAuthority\",\r\n /**\r\n * APIs in Authorization Code Client (msal-common)\r\n */\r\n AuthClientAcquireToken: \"authClientAcquireToken\",\r\n AuthClientExecuteTokenRequest: \"authClientExecuteTokenRequest\",\r\n AuthClientCreateTokenRequestBody: \"authClientCreateTokenRequestBody\",\r\n AuthClientCreateQueryString: \"authClientCreateQueryString\",\r\n /**\r\n * Generate functions in PopTokenGenerator (msal-common)\r\n */\r\n PopTokenGenerateCnf: \"popTokenGenerateCnf\",\r\n PopTokenGenerateKid: \"popTokenGenerateKid\",\r\n /**\r\n * handleServerTokenResponse API in ResponseHandler (msal-common)\r\n */\r\n HandleServerTokenResponse: \"handleServerTokenResponse\",\r\n DeserializeResponse: \"deserializeResponse\",\r\n /**\r\n * Authority functions\r\n */\r\n AuthorityFactoryCreateDiscoveredInstance: \"authorityFactoryCreateDiscoveredInstance\",\r\n AuthorityResolveEndpointsAsync: \"authorityResolveEndpointsAsync\",\r\n AuthorityResolveEndpointsFromLocalSources: \"authorityResolveEndpointsFromLocalSources\",\r\n AuthorityGetCloudDiscoveryMetadataFromNetwork: \"authorityGetCloudDiscoveryMetadataFromNetwork\",\r\n AuthorityUpdateCloudDiscoveryMetadata: \"authorityUpdateCloudDiscoveryMetadata\",\r\n AuthorityGetEndpointMetadataFromNetwork: \"authorityGetEndpointMetadataFromNetwork\",\r\n AuthorityUpdateEndpointMetadata: \"authorityUpdateEndpointMetadata\",\r\n AuthorityUpdateMetadataWithRegionalInformation: \"authorityUpdateMetadataWithRegionalInformation\",\r\n /**\r\n * Region Discovery functions\r\n */\r\n RegionDiscoveryDetectRegion: \"regionDiscoveryDetectRegion\",\r\n RegionDiscoveryGetRegionFromIMDS: \"regionDiscoveryGetRegionFromIMDS\",\r\n RegionDiscoveryGetCurrentVersion: \"regionDiscoveryGetCurrentVersion\",\r\n AcquireTokenByCodeAsync: \"acquireTokenByCodeAsync\",\r\n GetEndpointMetadataFromNetwork: \"getEndpointMetadataFromNetwork\",\r\n GetCloudDiscoveryMetadataFromNetworkMeasurement: \"getCloudDiscoveryMetadataFromNetworkMeasurement\",\r\n HandleRedirectPromiseMeasurement: \"handleRedirectPromise\",\r\n HandleNativeRedirectPromiseMeasurement: \"handleNativeRedirectPromise\",\r\n UpdateCloudDiscoveryMetadataMeasurement: \"updateCloudDiscoveryMetadataMeasurement\",\r\n UsernamePasswordClientAcquireToken: \"usernamePasswordClientAcquireToken\",\r\n NativeMessageHandlerHandshake: \"nativeMessageHandlerHandshake\",\r\n NativeGenerateAuthResult: \"nativeGenerateAuthResult\",\r\n RemoveHiddenIframe: \"removeHiddenIframe\",\r\n /**\r\n * Cache operations\r\n */\r\n ClearTokensAndKeysWithClaims: \"clearTokensAndKeysWithClaims\",\r\n CacheManagerGetRefreshToken: \"cacheManagerGetRefreshToken\",\r\n ImportExistingCache: \"importExistingCache\",\r\n SetUserData: \"setUserData\",\r\n /**\r\n * Crypto Operations\r\n */\r\n GeneratePkceCodes: \"generatePkceCodes\",\r\n GenerateCodeVerifier: \"generateCodeVerifier\",\r\n GenerateCodeChallengeFromVerifier: \"generateCodeChallengeFromVerifier\",\r\n Sha256Digest: \"sha256Digest\",\r\n GetRandomValues: \"getRandomValues\",\r\n GenerateHKDF: \"generateHKDF\",\r\n GenerateBaseKey: \"generateBaseKey\",\r\n Base64Decode: \"base64Decode\",\r\n UrlEncodeArr: \"urlEncodeArr\",\r\n Encrypt: \"encrypt\",\r\n Decrypt: \"decrypt\",\r\n};\r\nconst PerformanceEventAbbreviations = new Map([\r\n [PerformanceEvents.AcquireTokenByCode, \"ATByCode\"],\r\n [PerformanceEvents.AcquireTokenByRefreshToken, \"ATByRT\"],\r\n [PerformanceEvents.AcquireTokenSilent, \"ATS\"],\r\n [PerformanceEvents.AcquireTokenSilentAsync, \"ATSAsync\"],\r\n [PerformanceEvents.AcquireTokenPopup, \"ATPopup\"],\r\n [PerformanceEvents.AcquireTokenRedirect, \"ATRedirect\"],\r\n [\r\n PerformanceEvents.CryptoOptsGetPublicKeyThumbprint,\r\n \"CryptoGetPKThumb\",\r\n ],\r\n [PerformanceEvents.CryptoOptsSignJwt, \"CryptoSignJwt\"],\r\n [PerformanceEvents.SilentCacheClientAcquireToken, \"SltCacheClientAT\"],\r\n [PerformanceEvents.SilentIframeClientAcquireToken, \"SltIframeClientAT\"],\r\n [PerformanceEvents.SilentRefreshClientAcquireToken, \"SltRClientAT\"],\r\n [PerformanceEvents.SsoSilent, \"SsoSlt\"],\r\n [\r\n PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority,\r\n \"StdIntClientGetDiscAuth\",\r\n ],\r\n [\r\n PerformanceEvents.FetchAccountIdWithNativeBroker,\r\n \"FetchAccIdWithNtvBroker\",\r\n ],\r\n [\r\n PerformanceEvents.NativeInteractionClientAcquireToken,\r\n \"NtvIntClientAT\",\r\n ],\r\n [\r\n PerformanceEvents.BaseClientCreateTokenRequestHeaders,\r\n \"BaseClientCreateTReqHead\",\r\n ],\r\n [\r\n PerformanceEvents.NetworkClientSendPostRequestAsync,\r\n \"NetClientSendPost\",\r\n ],\r\n [\r\n PerformanceEvents.RefreshTokenClientExecutePostToTokenEndpoint,\r\n \"RTClientExecPost\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorizationCodeClientExecutePostToTokenEndpoint,\r\n \"AuthCodeClientExecPost\",\r\n ],\r\n [PerformanceEvents.BrokerHandhshake, \"BrokerHandshake\"],\r\n [\r\n PerformanceEvents.AcquireTokenByRefreshTokenInBroker,\r\n \"ATByRTInBroker\",\r\n ],\r\n [PerformanceEvents.AcquireTokenByBroker, \"ATByBroker\"],\r\n [\r\n PerformanceEvents.RefreshTokenClientExecuteTokenRequest,\r\n \"RTClientExecTReq\",\r\n ],\r\n [PerformanceEvents.RefreshTokenClientAcquireToken, \"RTClientAT\"],\r\n [\r\n PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken,\r\n \"RTClientATWithCachedRT\",\r\n ],\r\n [\r\n PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken,\r\n \"RTClientATByRT\",\r\n ],\r\n [\r\n PerformanceEvents.RefreshTokenClientCreateTokenRequestBody,\r\n \"RTClientCreateTReqBody\",\r\n ],\r\n [PerformanceEvents.AcquireTokenFromCache, \"ATFromCache\"],\r\n [\r\n PerformanceEvents.SilentFlowClientAcquireCachedToken,\r\n \"SltFlowClientATCached\",\r\n ],\r\n [\r\n PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord,\r\n \"SltFlowClientGenResFromCache\",\r\n ],\r\n [PerformanceEvents.AcquireTokenBySilentIframe, \"ATBySltIframe\"],\r\n [PerformanceEvents.InitializeBaseRequest, \"InitBaseReq\"],\r\n [PerformanceEvents.InitializeSilentRequest, \"InitSltReq\"],\r\n [\r\n PerformanceEvents.InitializeClientApplication,\r\n \"InitClientApplication\",\r\n ],\r\n [PerformanceEvents.InitializeCache, \"InitCache\"],\r\n [PerformanceEvents.ImportExistingCache, \"importCache\"],\r\n [PerformanceEvents.SetUserData, \"setUserData\"],\r\n [PerformanceEvents.SilentIframeClientTokenHelper, \"SIClientTHelper\"],\r\n [\r\n PerformanceEvents.SilentHandlerInitiateAuthRequest,\r\n \"SHandlerInitAuthReq\",\r\n ],\r\n [\r\n PerformanceEvents.SilentHandlerMonitorIframeForHash,\r\n \"SltHandlerMonitorIframeForHash\",\r\n ],\r\n [PerformanceEvents.SilentHandlerLoadFrame, \"SHandlerLoadFrame\"],\r\n [PerformanceEvents.SilentHandlerLoadFrameSync, \"SHandlerLoadFrameSync\"],\r\n [\r\n PerformanceEvents.StandardInteractionClientCreateAuthCodeClient,\r\n \"StdIntClientCreateAuthCodeClient\",\r\n ],\r\n [\r\n PerformanceEvents.StandardInteractionClientGetClientConfiguration,\r\n \"StdIntClientGetClientConf\",\r\n ],\r\n [\r\n PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest,\r\n \"StdIntClientInitAuthReq\",\r\n ],\r\n [\r\n PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest,\r\n \"StdIntClientInitAuthCodeReq\",\r\n ],\r\n [PerformanceEvents.GetAuthCodeUrl, \"GetAuthCodeUrl\"],\r\n [\r\n PerformanceEvents.HandleCodeResponseFromServer,\r\n \"HandleCodeResFromServer\",\r\n ],\r\n [PerformanceEvents.HandleCodeResponse, \"HandleCodeResp\"],\r\n [PerformanceEvents.UpdateTokenEndpointAuthority, \"UpdTEndpointAuth\"],\r\n [PerformanceEvents.AuthClientAcquireToken, \"AuthClientAT\"],\r\n [PerformanceEvents.AuthClientExecuteTokenRequest, \"AuthClientExecTReq\"],\r\n [\r\n PerformanceEvents.AuthClientCreateTokenRequestBody,\r\n \"AuthClientCreateTReqBody\",\r\n ],\r\n [\r\n PerformanceEvents.AuthClientCreateQueryString,\r\n \"AuthClientCreateQueryStr\",\r\n ],\r\n [PerformanceEvents.PopTokenGenerateCnf, \"PopTGenCnf\"],\r\n [PerformanceEvents.PopTokenGenerateKid, \"PopTGenKid\"],\r\n [PerformanceEvents.HandleServerTokenResponse, \"HandleServerTRes\"],\r\n [PerformanceEvents.DeserializeResponse, \"DeserializeRes\"],\r\n [\r\n PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance,\r\n \"AuthFactCreateDiscInst\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityResolveEndpointsAsync,\r\n \"AuthResolveEndpointsAsync\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityResolveEndpointsFromLocalSources,\r\n \"AuthResolveEndpointsFromLocal\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork,\r\n \"AuthGetCDMetaFromNet\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata,\r\n \"AuthUpdCDMeta\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork,\r\n \"AuthUpdCDMetaFromNet\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityUpdateEndpointMetadata,\r\n \"AuthUpdEndpointMeta\",\r\n ],\r\n [\r\n PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation,\r\n \"AuthUpdMetaWithRegInfo\",\r\n ],\r\n [PerformanceEvents.RegionDiscoveryDetectRegion, \"RegDiscDetectReg\"],\r\n [\r\n PerformanceEvents.RegionDiscoveryGetRegionFromIMDS,\r\n \"RegDiscGetRegFromIMDS\",\r\n ],\r\n [\r\n PerformanceEvents.RegionDiscoveryGetCurrentVersion,\r\n \"RegDiscGetCurrentVer\",\r\n ],\r\n [PerformanceEvents.AcquireTokenByCodeAsync, \"ATByCodeAsync\"],\r\n [\r\n PerformanceEvents.GetEndpointMetadataFromNetwork,\r\n \"GetEndpointMetaFromNet\",\r\n ],\r\n [\r\n PerformanceEvents.GetCloudDiscoveryMetadataFromNetworkMeasurement,\r\n \"GetCDMetaFromNet\",\r\n ],\r\n [\r\n PerformanceEvents.HandleRedirectPromiseMeasurement,\r\n \"HandleRedirectPromise\",\r\n ],\r\n [\r\n PerformanceEvents.HandleNativeRedirectPromiseMeasurement,\r\n \"HandleNtvRedirectPromise\",\r\n ],\r\n [\r\n PerformanceEvents.UpdateCloudDiscoveryMetadataMeasurement,\r\n \"UpdateCDMeta\",\r\n ],\r\n [\r\n PerformanceEvents.UsernamePasswordClientAcquireToken,\r\n \"UserPassClientAT\",\r\n ],\r\n [\r\n PerformanceEvents.NativeMessageHandlerHandshake,\r\n \"NtvMsgHandlerHandshake\",\r\n ],\r\n [PerformanceEvents.NativeGenerateAuthResult, \"NtvGenAuthRes\"],\r\n [PerformanceEvents.RemoveHiddenIframe, \"RemoveHiddenIframe\"],\r\n [\r\n PerformanceEvents.ClearTokensAndKeysWithClaims,\r\n \"ClearTAndKeysWithClaims\",\r\n ],\r\n [PerformanceEvents.CacheManagerGetRefreshToken, \"CacheManagerGetRT\"],\r\n [PerformanceEvents.GeneratePkceCodes, \"GenPkceCodes\"],\r\n [PerformanceEvents.GenerateCodeVerifier, \"GenCodeVerifier\"],\r\n [\r\n PerformanceEvents.GenerateCodeChallengeFromVerifier,\r\n \"GenCodeChallengeFromVerifier\",\r\n ],\r\n [PerformanceEvents.Sha256Digest, \"Sha256Digest\"],\r\n [PerformanceEvents.GetRandomValues, \"GetRandomValues\"],\r\n [PerformanceEvents.GenerateHKDF, \"genHKDF\"],\r\n [PerformanceEvents.GenerateBaseKey, \"genBaseKey\"],\r\n [PerformanceEvents.Base64Decode, \"b64Decode\"],\r\n [PerformanceEvents.UrlEncodeArr, \"urlEncArr\"],\r\n [PerformanceEvents.Encrypt, \"encrypt\"],\r\n [PerformanceEvents.Decrypt, \"decrypt\"],\r\n]);\r\n/**\r\n * State of the performance event.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nconst PerformanceEventStatus = {\r\n NotStarted: 0,\r\n InProgress: 1,\r\n Completed: 2,\r\n};\r\nconst IntFields = new Set([\r\n \"accessTokenSize\",\r\n \"durationMs\",\r\n \"idTokenSize\",\r\n \"matsSilentStatus\",\r\n \"matsHttpStatus\",\r\n \"refreshTokenSize\",\r\n \"queuedTimeMs\",\r\n \"startTimeMs\",\r\n \"status\",\r\n \"multiMatchedAT\",\r\n \"multiMatchedID\",\r\n \"multiMatchedRT\",\r\n \"unencryptedCacheCount\",\r\n \"encryptedCacheExpiredCount\",\r\n]);\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Wraps a function with a performance measurement.\r\n * Usage: invoke(functionToCall, performanceClient, \"EventName\", \"correlationId\")(...argsToPassToFunction)\r\n * @param callback\r\n * @param eventName\r\n * @param logger\r\n * @param telemetryClient\r\n * @param correlationId\r\n * @returns\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst invoke = (callback, eventName, logger, telemetryClient, correlationId) => {\r\n return (...args) => {\r\n logger.trace(`Executing function ${eventName}`);\r\n const inProgressEvent = telemetryClient?.startMeasurement(eventName, correlationId);\r\n if (correlationId) {\r\n // Track number of times this API is called in a single request\r\n const eventCount = eventName + \"CallCount\";\r\n telemetryClient?.incrementFields({ [eventCount]: 1 }, correlationId);\r\n }\r\n try {\r\n const result = callback(...args);\r\n inProgressEvent?.end({\r\n success: true,\r\n });\r\n logger.trace(`Returning result from ${eventName}`);\r\n return result;\r\n }\r\n catch (e) {\r\n logger.trace(`Error occurred in ${eventName}`);\r\n try {\r\n logger.trace(JSON.stringify(e));\r\n }\r\n catch (e) {\r\n logger.trace(\"Unable to print error message.\");\r\n }\r\n inProgressEvent?.end({\r\n success: false,\r\n }, e);\r\n throw e;\r\n }\r\n };\r\n};\r\n/**\r\n * Wraps an async function with a performance measurement.\r\n * Usage: invokeAsync(functionToCall, performanceClient, \"EventName\", \"correlationId\")(...argsToPassToFunction)\r\n * @param callback\r\n * @param eventName\r\n * @param logger\r\n * @param telemetryClient\r\n * @param correlationId\r\n * @returns\r\n * @internal\r\n *\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst invokeAsync = (callback, eventName, logger, telemetryClient, correlationId) => {\r\n return (...args) => {\r\n logger.trace(`Executing function ${eventName}`);\r\n const inProgressEvent = telemetryClient?.startMeasurement(eventName, correlationId);\r\n if (correlationId) {\r\n // Track number of times this API is called in a single request\r\n const eventCount = eventName + \"CallCount\";\r\n telemetryClient?.incrementFields({ [eventCount]: 1 }, correlationId);\r\n }\r\n telemetryClient?.setPreQueueTime(eventName, correlationId);\r\n return callback(...args)\r\n .then((response) => {\r\n logger.trace(`Returning result from ${eventName}`);\r\n inProgressEvent?.end({\r\n success: true,\r\n });\r\n return response;\r\n })\r\n .catch((e) => {\r\n logger.trace(`Error occurred in ${eventName}`);\r\n try {\r\n logger.trace(JSON.stringify(e));\r\n }\r\n catch (e) {\r\n logger.trace(\"Unable to print error message.\");\r\n }\r\n inProgressEvent?.end({\r\n success: false,\r\n }, e);\r\n throw e;\r\n });\r\n };\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass RegionDiscovery {\r\n constructor(networkInterface, logger, performanceClient, correlationId) {\r\n this.networkInterface = networkInterface;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise<string | null>\r\n */\r\n async detectRegion(environmentRegion, regionDiscoveryMetadata) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n // Initialize auto detected region with the region from the envrionment\r\n let autodetectedRegionName = environmentRegion;\r\n // Check if a region was detected from the environment, if not, attempt to get the region from IMDS\r\n if (!autodetectedRegionName) {\r\n const options = RegionDiscovery.IMDS_OPTIONS;\r\n try {\r\n const localIMDSVersionResponse = await invokeAsync(this.getRegionFromIMDS.bind(this), PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.logger, this.performanceClient, this.correlationId)(Constants.IMDS_VERSION, options);\r\n if (localIMDSVersionResponse.status ===\r\n ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source =\r\n RegionDiscoverySources.IMDS;\r\n }\r\n // If the response using the local IMDS version failed, try to fetch the current version of IMDS and retry.\r\n if (localIMDSVersionResponse.status ===\r\n ResponseCodes.httpBadRequest) {\r\n const currentIMDSVersion = await invokeAsync(this.getCurrentVersion.bind(this), PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.logger, this.performanceClient, this.correlationId)(options);\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source =\r\n RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return null;\r\n }\r\n const currentIMDSVersionResponse = await invokeAsync(this.getRegionFromIMDS.bind(this), PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.logger, this.performanceClient, this.correlationId)(currentIMDSVersion, options);\r\n if (currentIMDSVersionResponse.status ===\r\n ResponseCodes.httpSuccess) {\r\n autodetectedRegionName =\r\n currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source =\r\n RegionDiscoverySources.IMDS;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n regionDiscoveryMetadata.region_source =\r\n RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return null;\r\n }\r\n }\r\n else {\r\n regionDiscoveryMetadata.region_source =\r\n RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n }\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source =\r\n RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return autodetectedRegionName || null;\r\n }\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise<NetworkResponse<string>>\r\n */\r\n async getRegionFromIMDS(version, options) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return this.networkInterface.sendGetRequestAsync(`${Constants.IMDS_ENDPOINT}?api-version=${version}&format=text`, options, Constants.IMDS_TIMEOUT);\r\n }\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise<string | null>\r\n */\r\n async getCurrentVersion(options) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n try {\r\n const response = await this.networkInterface.sendGetRequestAsync(`${Constants.IMDS_ENDPOINT}?format=json`, options);\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest &&\r\n response.body &&\r\n response.body[\"newest-versions\"] &&\r\n response.body[\"newest-versions\"].length > 0) {\r\n return response.body[\"newest-versions\"][0];\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n}\r\n// Options for the IMDS endpoint request\r\nRegionDiscovery.IMDS_OPTIONS = {\r\n headers: {\r\n Metadata: \"true\",\r\n },\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n * @internal\r\n */\r\nclass Authority {\r\n constructor(authority, networkInterface, cacheManager, authorityOptions, logger, correlationId, performanceClient, managedIdentity) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscoveryMetadata = {\r\n region_used: undefined,\r\n region_source: undefined,\r\n region_outcome: undefined,\r\n };\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n this.managedIdentity = managedIdentity || false;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface, this.logger, this.performanceClient, this.correlationId);\r\n }\r\n /**\r\n * Get {@link AuthorityType}\r\n * @param authorityUri {@link IUri}\r\n * @private\r\n */\r\n getAuthorityType(authorityUri) {\r\n // CIAM auth url pattern is being standardized as: <tenant>.ciamlogin.com\r\n if (authorityUri.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {\r\n return AuthorityType.Ciam;\r\n }\r\n const pathSegments = authorityUri.PathSegments;\r\n if (pathSegments.length) {\r\n switch (pathSegments[0].toLowerCase()) {\r\n case Constants.ADFS:\r\n return AuthorityType.Adfs;\r\n case Constants.DSTS:\r\n return AuthorityType.Dsts;\r\n }\r\n }\r\n return AuthorityType.Default;\r\n }\r\n // See above for AuthorityType\r\n get authorityType() {\r\n return this.getAuthorityType(this.canonicalAuthorityUrlComponents);\r\n }\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get protocolMode() {\r\n return this.authorityOptions.protocolMode;\r\n }\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get options() {\r\n return this.authorityOptions;\r\n }\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get canonicalAuthority() {\r\n return this._canonicalAuthority.urlString;\r\n }\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set canonicalAuthority(url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n }\r\n /**\r\n * Get authority components.\r\n */\r\n get canonicalAuthorityUrlComponents() {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents =\r\n this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n }\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get hostnameAndPort() {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n }\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get tenant() {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n }\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get authorizationEndpoint() {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.authorization_endpoint);\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get tokenEndpoint() {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.token_endpoint);\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n get deviceCodeEndpoint() {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get endSessionEndpoint() {\r\n if (this.discoveryComplete()) {\r\n // ROPC policies may not have end_session_endpoint set\r\n if (!this.metadata.end_session_endpoint) {\r\n throw createClientAuthError(endSessionEndpointNotSupported);\r\n }\r\n return this.replacePath(this.metadata.end_session_endpoint);\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get selfSignedJwtAudience() {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.issuer);\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n /**\r\n * Jwks_uri for token signing keys\r\n */\r\n get jwksUri() {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.jwks_uri);\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n /**\r\n * Returns a flag indicating that tenant name can be replaced in authority {@link IUri}\r\n * @param authorityUri {@link IUri}\r\n * @private\r\n */\r\n canReplaceTenant(authorityUri) {\r\n return (authorityUri.PathSegments.length === 1 &&\r\n !Authority.reservedTenantDomains.has(authorityUri.PathSegments[0]) &&\r\n this.getAuthorityType(authorityUri) === AuthorityType.Default &&\r\n this.protocolMode === ProtocolMode.AAD);\r\n }\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n replaceTenant(urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n }\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n replacePath(urlString) {\r\n let endpoint = urlString;\r\n const cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n const cachedAuthorityUrlComponents = cachedAuthorityUrl.getUrlComponents();\r\n const cachedAuthorityParts = cachedAuthorityUrlComponents.PathSegments;\r\n const currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach((currentPart, index) => {\r\n let cachedPart = cachedAuthorityParts[index];\r\n if (index === 0 &&\r\n this.canReplaceTenant(cachedAuthorityUrlComponents)) {\r\n const tenantId = new UrlString(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];\r\n /**\r\n * Check if AAD canonical authority contains tenant domain name, for example \"testdomain.onmicrosoft.com\",\r\n * by comparing its first path segment to the corresponding authorization endpoint path segment, which is\r\n * always resolved with tenant id by OIDC.\r\n */\r\n if (cachedPart !== tenantId) {\r\n this.logger.verbose(`Replacing tenant domain name ${cachedPart} with id ${tenantId}`);\r\n cachedPart = tenantId;\r\n }\r\n }\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(`/${cachedPart}/`, `/${currentPart}/`);\r\n }\r\n });\r\n return this.replaceTenant(endpoint);\r\n }\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get defaultOpenIdConfigurationEndpoint() {\r\n const canonicalAuthorityHost = this.hostnameAndPort;\r\n if (this.canonicalAuthority.endsWith(\"v2.0/\") ||\r\n this.authorityType === AuthorityType.Adfs ||\r\n (this.protocolMode !== ProtocolMode.AAD &&\r\n !this.isAliasOfKnownMicrosoftAuthority(canonicalAuthorityHost))) {\r\n return `${this.canonicalAuthority}.well-known/openid-configuration`;\r\n }\r\n return `${this.canonicalAuthority}v2.0/.well-known/openid-configuration`;\r\n }\r\n /**\r\n * Boolean that returns whether or not tenant discovery has been completed.\r\n */\r\n discoveryComplete() {\r\n return !!this.metadata;\r\n }\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n async resolveEndpointsAsync() {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityResolveEndpointsAsync, this.correlationId);\r\n const metadataEntity = this.getCurrentMetadataEntity();\r\n const cloudDiscoverySource = await invokeAsync(this.updateCloudDiscoveryMetadata.bind(this), PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.logger, this.performanceClient, this.correlationId)(metadataEntity);\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n const endpointSource = await invokeAsync(this.updateEndpointMetadata.bind(this), PerformanceEvents.AuthorityUpdateEndpointMetadata, this.logger, this.performanceClient, this.correlationId)(metadataEntity);\r\n this.updateCachedMetadata(metadataEntity, cloudDiscoverySource, {\r\n source: endpointSource,\r\n });\r\n this.performanceClient?.addFields({\r\n cloudDiscoverySource: cloudDiscoverySource,\r\n authorityEndpointSource: endpointSource,\r\n }, this.correlationId);\r\n }\r\n /**\r\n * Returns metadata entity from cache if it exists, otherwiser returns a new metadata entity built\r\n * from the configured canonical authority\r\n * @returns\r\n */\r\n getCurrentMetadataEntity() {\r\n let metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = {\r\n aliases: [],\r\n preferred_cache: this.hostnameAndPort,\r\n preferred_network: this.hostnameAndPort,\r\n canonical_authority: this.canonicalAuthority,\r\n authorization_endpoint: \"\",\r\n token_endpoint: \"\",\r\n end_session_endpoint: \"\",\r\n issuer: \"\",\r\n aliasesFromNetwork: false,\r\n endpointsFromNetwork: false,\r\n expiresAt: generateAuthorityMetadataExpiresAt(),\r\n jwks_uri: \"\",\r\n };\r\n }\r\n return metadataEntity;\r\n }\r\n /**\r\n * Updates cached metadata based on metadata source and sets the instance's metadata\r\n * property to the same value\r\n * @param metadataEntity\r\n * @param cloudDiscoverySource\r\n * @param endpointMetadataResult\r\n */\r\n updateCachedMetadata(metadataEntity, cloudDiscoverySource, endpointMetadataResult) {\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE &&\r\n endpointMetadataResult?.source !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.expiresAt =\r\n generateAuthorityMetadataExpiresAt();\r\n metadataEntity.canonical_authority = this.canonicalAuthority;\r\n }\r\n const cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n }\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n async updateEndpointMetadata(metadataEntity) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n const localMetadata = this.updateEndpointMetadataFromLocalSources(metadataEntity);\r\n // Further update may be required for hardcoded metadata if regional metadata is preferred\r\n if (localMetadata) {\r\n if (localMetadata.source ===\r\n AuthorityMetadataSource.HARDCODED_VALUES) {\r\n // If the user prefers to use an azure region replace the global endpoints with regional information.\r\n if (this.authorityOptions.azureRegionConfiguration?.azureRegion) {\r\n if (localMetadata.metadata) {\r\n const hardcodedMetadata = await invokeAsync(this.updateMetadataWithRegionalInformation.bind(this), PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.logger, this.performanceClient, this.correlationId)(localMetadata.metadata);\r\n updateAuthorityEndpointMetadata(metadataEntity, hardcodedMetadata, false);\r\n metadataEntity.canonical_authority =\r\n this.canonicalAuthority;\r\n }\r\n }\r\n }\r\n return localMetadata.source;\r\n }\r\n // Get metadata from network if local sources aren't available\r\n let metadata = await invokeAsync(this.getEndpointMetadataFromNetwork.bind(this), PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.logger, this.performanceClient, this.correlationId)();\r\n if (metadata) {\r\n // If the user prefers to use an azure region replace the global endpoints with regional information.\r\n if (this.authorityOptions.azureRegionConfiguration?.azureRegion) {\r\n metadata = await invokeAsync(this.updateMetadataWithRegionalInformation.bind(this), PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.logger, this.performanceClient, this.correlationId)(metadata);\r\n }\r\n updateAuthorityEndpointMetadata(metadataEntity, metadata, true);\r\n return AuthorityMetadataSource.NETWORK;\r\n }\r\n else {\r\n // Metadata could not be obtained from the config, cache, network or hardcoded values\r\n throw createClientAuthError(openIdConfigError, this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n }\r\n /**\r\n * Updates endpoint metadata from local sources and returns where the information was retrieved from and the metadata config\r\n * response if the source is hardcoded metadata\r\n * @param metadataEntity\r\n * @returns\r\n */\r\n updateEndpointMetadataFromLocalSources(metadataEntity) {\r\n this.logger.verbose(\"Attempting to get endpoint metadata from authority configuration\");\r\n const configMetadata = this.getEndpointMetadataFromConfig();\r\n if (configMetadata) {\r\n this.logger.verbose(\"Found endpoint metadata in authority configuration\");\r\n updateAuthorityEndpointMetadata(metadataEntity, configMetadata, false);\r\n return {\r\n source: AuthorityMetadataSource.CONFIG,\r\n };\r\n }\r\n this.logger.verbose(\"Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values.\");\r\n // skipAuthorityMetadataCache is used to bypass hardcoded authority metadata and force a network metadata cache lookup and network metadata request if no cached response is available.\r\n if (this.authorityOptions.skipAuthorityMetadataCache) {\r\n this.logger.verbose(\"Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.\");\r\n }\r\n else {\r\n const hardcodedMetadata = this.getEndpointMetadataFromHardcodedValues();\r\n if (hardcodedMetadata) {\r\n updateAuthorityEndpointMetadata(metadataEntity, hardcodedMetadata, false);\r\n return {\r\n source: AuthorityMetadataSource.HARDCODED_VALUES,\r\n metadata: hardcodedMetadata,\r\n };\r\n }\r\n else {\r\n this.logger.verbose(\"Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.\");\r\n }\r\n }\r\n // Check cached metadata entity expiration status\r\n const metadataEntityExpired = isAuthorityMetadataExpired(metadataEntity);\r\n if (this.isAuthoritySameType(metadataEntity) &&\r\n metadataEntity.endpointsFromNetwork &&\r\n !metadataEntityExpired) {\r\n // No need to update\r\n this.logger.verbose(\"Found endpoint metadata in the cache.\");\r\n return { source: AuthorityMetadataSource.CACHE };\r\n }\r\n else if (metadataEntityExpired) {\r\n this.logger.verbose(\"The metadata entity is expired.\");\r\n }\r\n return null;\r\n }\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached\r\n * authority metadata can be used for the requested authority. Protects against same domain different\r\n * authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n isAuthoritySameType(metadataEntity) {\r\n const cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n const cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return (cachedParts.length ===\r\n this.canonicalAuthorityUrlComponents.PathSegments.length);\r\n }\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n getEndpointMetadataFromConfig() {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw createClientConfigurationError(invalidAuthorityMetadata);\r\n }\r\n }\r\n return null;\r\n }\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n async getEndpointMetadataFromNetwork() {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n const options = {};\r\n /*\r\n * TODO: Add a timeout if the authority exists in our library's\r\n * hardcoded list of metadata\r\n */\r\n const openIdConfigurationEndpoint = this.defaultOpenIdConfigurationEndpoint;\r\n this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${openIdConfigurationEndpoint}`);\r\n try {\r\n const response = await this.networkInterface.sendGetRequestAsync(openIdConfigurationEndpoint, options);\r\n const isValidResponse = isOpenIdConfigResponse(response.body);\r\n if (isValidResponse) {\r\n return response.body;\r\n }\r\n else {\r\n this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration`);\r\n return null;\r\n }\r\n }\r\n catch (e) {\r\n this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${e}`);\r\n return null;\r\n }\r\n }\r\n /**\r\n * Get OAuth endpoints for common authorities.\r\n */\r\n getEndpointMetadataFromHardcodedValues() {\r\n if (this.hostnameAndPort in EndpointMetadata) {\r\n return EndpointMetadata[this.hostnameAndPort];\r\n }\r\n return null;\r\n }\r\n /**\r\n * Update the retrieved metadata with regional information.\r\n * User selected Azure region will be used if configured.\r\n */\r\n async updateMetadataWithRegionalInformation(metadata) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n const userConfiguredAzureRegion = this.authorityOptions.azureRegionConfiguration?.azureRegion;\r\n if (userConfiguredAzureRegion) {\r\n if (userConfiguredAzureRegion !==\r\n Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome =\r\n RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n this.regionDiscoveryMetadata.region_used =\r\n userConfiguredAzureRegion;\r\n return Authority.replaceWithRegionalInformation(metadata, userConfiguredAzureRegion);\r\n }\r\n const autodetectedRegionName = await invokeAsync(this.regionDiscovery.detectRegion.bind(this.regionDiscovery), PerformanceEvents.RegionDiscoveryDetectRegion, this.logger, this.performanceClient, this.correlationId)(this.authorityOptions.azureRegionConfiguration\r\n ?.environmentRegion, this.regionDiscoveryMetadata);\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome =\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL;\r\n this.regionDiscoveryMetadata.region_used =\r\n autodetectedRegionName;\r\n return Authority.replaceWithRegionalInformation(metadata, autodetectedRegionName);\r\n }\r\n this.regionDiscoveryMetadata.region_outcome =\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n }\r\n return metadata;\r\n }\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache\r\n * and returns where the information was retrieved from\r\n * @param metadataEntity\r\n * @returns AuthorityMetadataSource\r\n */\r\n async updateCloudDiscoveryMetadata(metadataEntity) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n const localMetadataSource = this.updateCloudDiscoveryMetadataFromLocalSources(metadataEntity);\r\n if (localMetadataSource) {\r\n return localMetadataSource;\r\n }\r\n // Fallback to network as metadata source\r\n const metadata = await invokeAsync(this.getCloudDiscoveryMetadataFromNetwork.bind(this), PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.logger, this.performanceClient, this.correlationId)();\r\n if (metadata) {\r\n updateCloudDiscoveryMetadata(metadataEntity, metadata, true);\r\n return AuthorityMetadataSource.NETWORK;\r\n }\r\n // Metadata could not be obtained from the config, cache, network or hardcoded values\r\n throw createClientConfigurationError(untrustedAuthority);\r\n }\r\n updateCloudDiscoveryMetadataFromLocalSources(metadataEntity) {\r\n this.logger.verbose(\"Attempting to get cloud discovery metadata from authority configuration\");\r\n this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities ||\r\n Constants.NOT_APPLICABLE}`);\r\n this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata ||\r\n Constants.NOT_APPLICABLE}`);\r\n this.logger.verbosePii(`Canonical Authority: ${metadataEntity.canonical_authority || Constants.NOT_APPLICABLE}`);\r\n const metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n this.logger.verbose(\"Found cloud discovery metadata in authority configuration\");\r\n updateCloudDiscoveryMetadata(metadataEntity, metadata, false);\r\n return AuthorityMetadataSource.CONFIG;\r\n }\r\n // If the cached metadata came from config but that config was not passed to this instance, we must go to hardcoded values\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values.\");\r\n if (this.options.skipAuthorityMetadataCache) {\r\n this.logger.verbose(\"Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.\");\r\n }\r\n else {\r\n const hardcodedMetadata = getCloudDiscoveryMetadataFromHardcodedValues(this.hostnameAndPort);\r\n if (hardcodedMetadata) {\r\n this.logger.verbose(\"Found cloud discovery metadata from hardcoded values.\");\r\n updateCloudDiscoveryMetadata(metadataEntity, hardcodedMetadata, false);\r\n return AuthorityMetadataSource.HARDCODED_VALUES;\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.\");\r\n }\r\n const metadataEntityExpired = isAuthorityMetadataExpired(metadataEntity);\r\n if (this.isAuthoritySameType(metadataEntity) &&\r\n metadataEntity.aliasesFromNetwork &&\r\n !metadataEntityExpired) {\r\n this.logger.verbose(\"Found cloud discovery metadata in the cache.\");\r\n // No need to update\r\n return AuthorityMetadataSource.CACHE;\r\n }\r\n else if (metadataEntityExpired) {\r\n this.logger.verbose(\"The metadata entity is expired.\");\r\n }\r\n return null;\r\n }\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n getCloudDiscoveryMetadataFromConfig() {\r\n // CIAM does not support cloud discovery metadata\r\n if (this.authorityType === AuthorityType.Ciam) {\r\n this.logger.verbose(\"CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n this.logger.verbose(\"The cloud discovery metadata has been provided as a network response, in the config.\");\r\n try {\r\n this.logger.verbose(\"Attempting to parse the cloud discovery metadata.\");\r\n const parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n const metadata = getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n this.logger.verbose(\"Parsed the cloud discovery metadata.\");\r\n if (metadata) {\r\n this.logger.verbose(\"There is returnable metadata attached to the parsed cloud discovery metadata.\");\r\n return metadata;\r\n }\r\n else {\r\n this.logger.verbose(\"There is no metadata attached to the parsed cloud discovery metadata.\");\r\n }\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error.\");\r\n throw createClientConfigurationError(invalidCloudDiscoveryMetadata);\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n this.logger.verbose(\"The host is included in knownAuthorities. Creating new cloud discovery metadata from the host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n async getCloudDiscoveryMetadataFromNetwork() {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n const instanceDiscoveryEndpoint = `${Constants.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`;\r\n const options = {};\r\n /*\r\n * TODO: Add a timeout if the authority exists in our library's\r\n * hardcoded list of metadata\r\n */\r\n let match = null;\r\n try {\r\n const response = await this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint, options);\r\n let typedResponseBody;\r\n let metadata;\r\n if (isCloudInstanceDiscoveryResponse(response.body)) {\r\n typedResponseBody =\r\n response.body;\r\n metadata = typedResponseBody.metadata;\r\n this.logger.verbosePii(`tenant_discovery_endpoint is: ${typedResponseBody.tenant_discovery_endpoint}`);\r\n }\r\n else if (isCloudInstanceDiscoveryErrorResponse(response.body)) {\r\n this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${response.status}`);\r\n typedResponseBody =\r\n response.body;\r\n if (typedResponseBody.error === Constants.INVALID_INSTANCE) {\r\n this.logger.error(\"The CloudInstanceDiscoveryErrorResponse error is invalid_instance.\");\r\n return null;\r\n }\r\n this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${typedResponseBody.error}`);\r\n this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${typedResponseBody.error_description}`);\r\n this.logger.warning(\"Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []\");\r\n metadata = [];\r\n }\r\n else {\r\n this.logger.error(\"AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse\");\r\n return null;\r\n }\r\n this.logger.verbose(\"Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n match = getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n }\r\n catch (error) {\r\n if (error instanceof AuthError) {\r\n this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata.\\nError: ${error.errorCode}\\nError Description: ${error.errorMessage}`);\r\n }\r\n else {\r\n const typedError = error;\r\n this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\\nError: ${typedError.name}\\nError Description: ${typedError.message}`);\r\n }\r\n return null;\r\n }\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n if (!match) {\r\n this.logger.warning(\"The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n this.logger.verbose(\"Creating custom Authority for custom domain scenario.\");\r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return match;\r\n }\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n isInKnownAuthorities() {\r\n const matches = this.authorityOptions.knownAuthorities.filter((authority) => {\r\n return (authority &&\r\n UrlString.getDomainFromUrl(authority).toLowerCase() ===\r\n this.hostnameAndPort);\r\n });\r\n return matches.length > 0;\r\n }\r\n /**\r\n * helper function to populate the authority based on azureCloudOptions\r\n * @param authorityString\r\n * @param azureCloudOptions\r\n */\r\n static generateAuthority(authorityString, azureCloudOptions) {\r\n let authorityAzureCloudInstance;\r\n if (azureCloudOptions &&\r\n azureCloudOptions.azureCloudInstance !== AzureCloudInstance.None) {\r\n const tenant = azureCloudOptions.tenant\r\n ? azureCloudOptions.tenant\r\n : Constants.DEFAULT_COMMON_TENANT;\r\n authorityAzureCloudInstance = `${azureCloudOptions.azureCloudInstance}/${tenant}/`;\r\n }\r\n return authorityAzureCloudInstance\r\n ? authorityAzureCloudInstance\r\n : authorityString;\r\n }\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n static createCloudDiscoveryMetadataFromHost(host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host],\r\n };\r\n }\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n getPreferredCache() {\r\n if (this.managedIdentity) {\r\n return Constants.DEFAULT_AUTHORITY_HOST;\r\n }\r\n else if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n }\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n isAlias(host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n }\r\n /**\r\n * Returns whether or not the provided host is an alias of a known Microsoft authority for purposes of endpoint discovery\r\n * @param host\r\n */\r\n isAliasOfKnownMicrosoftAuthority(host) {\r\n return InstanceDiscoveryMetadataAliases.has(host);\r\n }\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n static isPublicCloudAuthority(host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n }\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n static buildRegionalAuthorityString(host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n const authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n const authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n let hostNameAndPort = `${region}.${authorityUrlParts.HostNameAndPort}`;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = `${region}.${Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`;\r\n }\r\n // Include the query string portion of the url\r\n const url = UrlString.constructAuthorityUriFromObject({\r\n ...authorityUrlInstance.getUrlComponents(),\r\n HostNameAndPort: hostNameAndPort,\r\n }).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return `${url}?${queryString}`;\r\n return url;\r\n }\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n static replaceWithRegionalInformation(metadata, azureRegion) {\r\n const regionalMetadata = { ...metadata };\r\n regionalMetadata.authorization_endpoint =\r\n Authority.buildRegionalAuthorityString(regionalMetadata.authorization_endpoint, azureRegion);\r\n regionalMetadata.token_endpoint =\r\n Authority.buildRegionalAuthorityString(regionalMetadata.token_endpoint, azureRegion);\r\n if (regionalMetadata.end_session_endpoint) {\r\n regionalMetadata.end_session_endpoint =\r\n Authority.buildRegionalAuthorityString(regionalMetadata.end_session_endpoint, azureRegion);\r\n }\r\n return regionalMetadata;\r\n }\r\n /**\r\n * Transform CIAM_AUTHORIY as per the below rules:\r\n * If no path segments found and it is a CIAM authority (hostname ends with .ciamlogin.com), then transform it\r\n *\r\n * NOTE: The transformation path should go away once STS supports CIAM with the format: `tenantIdorDomain.ciamlogin.com`\r\n * `ciamlogin.com` can also change in the future and we should accommodate the same\r\n *\r\n * @param authority\r\n */\r\n static transformCIAMAuthority(authority) {\r\n let ciamAuthority = authority;\r\n const authorityUrl = new UrlString(authority);\r\n const authorityUrlComponents = authorityUrl.getUrlComponents();\r\n // check if transformation is needed\r\n if (authorityUrlComponents.PathSegments.length === 0 &&\r\n authorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {\r\n const tenantIdOrDomain = authorityUrlComponents.HostNameAndPort.split(\".\")[0];\r\n ciamAuthority = `${ciamAuthority}${tenantIdOrDomain}${Constants.AAD_TENANT_DOMAIN_SUFFIX}`;\r\n }\r\n return ciamAuthority;\r\n }\r\n}\r\n// Reserved tenant domain names that will not be replaced with tenant id\r\nAuthority.reservedTenantDomains = new Set([\r\n \"{tenant}\",\r\n \"{tenantid}\",\r\n AADAuthorityConstants.COMMON,\r\n AADAuthorityConstants.CONSUMERS,\r\n AADAuthorityConstants.ORGANIZATIONS,\r\n]);\r\n/**\r\n * Extract tenantId from authority\r\n */\r\nfunction getTenantFromAuthorityString(authority) {\r\n const authorityUrl = new UrlString(authority);\r\n const authorityUrlComponents = authorityUrl.getUrlComponents();\r\n /**\r\n * For credential matching purposes, tenantId is the last path segment of the authority URL:\r\n * AAD Authority - domain/tenantId -> Credentials are cached with realm = tenantId\r\n * B2C Authority - domain/{tenantId}?/.../policy -> Credentials are cached with realm = policy\r\n * tenantId is downcased because B2C policies can have mixed case but tfp claim is downcased\r\n *\r\n * Note that we may not have any path segments in certain OIDC scenarios.\r\n */\r\n const tenantId = authorityUrlComponents.PathSegments.slice(-1)[0]?.toLowerCase();\r\n switch (tenantId) {\r\n case AADAuthorityConstants.COMMON:\r\n case AADAuthorityConstants.ORGANIZATIONS:\r\n case AADAuthorityConstants.CONSUMERS:\r\n return undefined;\r\n default:\r\n return tenantId;\r\n }\r\n}\r\nfunction formatAuthorityUri(authorityUri) {\r\n return authorityUri.endsWith(Constants.FORWARD_SLASH)\r\n ? authorityUri\r\n : `${authorityUri}${Constants.FORWARD_SLASH}`;\r\n}\r\nfunction buildStaticAuthorityOptions(authOptions) {\r\n const rawCloudDiscoveryMetadata = authOptions.cloudDiscoveryMetadata;\r\n let cloudDiscoveryMetadata = undefined;\r\n if (rawCloudDiscoveryMetadata) {\r\n try {\r\n cloudDiscoveryMetadata = JSON.parse(rawCloudDiscoveryMetadata);\r\n }\r\n catch (e) {\r\n throw createClientConfigurationError(invalidCloudDiscoveryMetadata);\r\n }\r\n }\r\n return {\r\n canonicalAuthority: authOptions.authority\r\n ? formatAuthorityUri(authOptions.authority)\r\n : undefined,\r\n knownAuthorities: authOptions.knownAuthorities,\r\n cloudDiscoveryMetadata: cloudDiscoveryMetadata,\r\n };\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n * @internal\r\n */\r\nasync function createDiscoveredInstance(authorityUri, networkClient, cacheManager, authorityOptions, logger, correlationId, performanceClient) {\r\n performanceClient?.addQueueMeasurement(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, correlationId);\r\n const authorityUriFinal = Authority.transformCIAMAuthority(formatAuthorityUri(authorityUri));\r\n // Initialize authority and perform discovery endpoint check.\r\n const acquireTokenAuthority = new Authority(authorityUriFinal, networkClient, cacheManager, authorityOptions, logger, correlationId, performanceClient);\r\n try {\r\n await invokeAsync(acquireTokenAuthority.resolveEndpointsAsync.bind(acquireTokenAuthority), PerformanceEvents.AuthorityResolveEndpointsAsync, logger, performanceClient, correlationId)();\r\n return acquireTokenAuthority;\r\n }\r\n catch (e) {\r\n throw createClientAuthError(endpointResolutionError);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nclass ServerError extends AuthError {\r\n constructor(errorCode, errorMessage, subError, errorNo, status) {\r\n super(errorCode, errorMessage, subError);\r\n this.name = \"ServerError\";\r\n this.errorNo = errorNo;\r\n this.status = status;\r\n Object.setPrototypeOf(this, ServerError.prototype);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/** @internal */\r\nclass ThrottlingUtils {\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n static generateThrottlingStorageKey(thumbprint) {\r\n return `${ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(thumbprint)}`;\r\n }\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n static preProcess(cacheManager, thumbprint) {\r\n const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n const value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key);\r\n return;\r\n }\r\n throw new ServerError(value.errorCodes?.join(\" \") || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n }\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n static postProcess(cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) ||\r\n ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n const thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror,\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n }\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n static checkResponseStatus(response) {\r\n return (response.status === 429 ||\r\n (response.status >= 500 && response.status < 600));\r\n }\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n static checkResponseForRetryAfter(response) {\r\n if (response.headers) {\r\n return (response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) &&\r\n (response.status < 200 || response.status >= 300));\r\n }\r\n return false;\r\n }\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n static calculateThrottleTime(throttleTime) {\r\n const time = throttleTime <= 0 ? 0 : throttleTime;\r\n const currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds +\r\n (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds +\r\n ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n }\r\n static removeThrottle(cacheManager, clientId, request, homeAccountIdentifier) {\r\n const thumbprint = {\r\n clientId: clientId,\r\n authority: request.authority,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: homeAccountIdentifier,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid,\r\n };\r\n const key = this.generateThrottlingStorageKey(thumbprint);\r\n cacheManager.removeItem(key);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Represents network related errors\r\n */\r\nclass NetworkError extends AuthError {\r\n constructor(error, httpStatus, responseHeaders) {\r\n super(error.errorCode, error.errorMessage, error.subError);\r\n Object.setPrototypeOf(this, NetworkError.prototype);\r\n this.name = \"NetworkError\";\r\n this.error = error;\r\n this.httpStatus = httpStatus;\r\n this.responseHeaders = responseHeaders;\r\n }\r\n}\r\n/**\r\n * Creates NetworkError object for a failed network request\r\n * @param error - Error to be thrown back to the caller\r\n * @param httpStatus - Status code of the network request\r\n * @param responseHeaders - Response headers of the network request, when available\r\n * @returns NetworkError object\r\n */\r\nfunction createNetworkError(error, httpStatus, responseHeaders) {\r\n return new NetworkError(error, httpStatus, responseHeaders);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n * @internal\r\n */\r\nclass BaseClient {\r\n constructor(configuration, performanceClient) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name$1, version$1);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n // set performance telemetry client\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n createTokenRequestHeaders(ccsCred) {\r\n const headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n const clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = `Oid:${clientInfo.uid}@${clientInfo.utid}`;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" +\r\n e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = `UPN: ${ccsCred.credential}`;\r\n break;\r\n }\r\n }\r\n return headers;\r\n }\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n async executePostToTokenEndpoint(tokenEndpoint, queryString, headers, thumbprint, correlationId, queuedEvent) {\r\n if (queuedEvent) {\r\n this.performanceClient?.addQueueMeasurement(queuedEvent, correlationId);\r\n }\r\n const response = await this.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers }, correlationId);\r\n if (this.config.serverTelemetryManager &&\r\n response.status < 500 &&\r\n response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return response;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint - Request thumbprint for throttling\r\n * @param tokenEndpoint - Endpoint to make the POST to\r\n * @param options - Body and Headers to include on the POST request\r\n * @param correlationId - CorrelationId for telemetry\r\n */\r\n async sendPostRequest(thumbprint, tokenEndpoint, options, correlationId) {\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n let response;\r\n try {\r\n response = await invokeAsync((this.networkClient.sendPostRequestAsync.bind(this.networkClient)), PerformanceEvents.NetworkClientSendPostRequestAsync, this.logger, this.performanceClient, correlationId)(tokenEndpoint, options);\r\n const responseHeaders = response.headers || {};\r\n this.performanceClient?.addFields({\r\n refreshTokenSize: response.body.refresh_token?.length || 0,\r\n httpVerToken: responseHeaders[HeaderNames.X_MS_HTTP_VERSION] || \"\",\r\n requestId: responseHeaders[HeaderNames.X_MS_REQUEST_ID] || \"\",\r\n }, correlationId);\r\n }\r\n catch (e) {\r\n if (e instanceof NetworkError) {\r\n const responseHeaders = e.responseHeaders;\r\n if (responseHeaders) {\r\n this.performanceClient?.addFields({\r\n httpVerToken: responseHeaders[HeaderNames.X_MS_HTTP_VERSION] || \"\",\r\n requestId: responseHeaders[HeaderNames.X_MS_REQUEST_ID] ||\r\n \"\",\r\n contentTypeHeader: responseHeaders[HeaderNames.CONTENT_TYPE] ||\r\n undefined,\r\n contentLengthHeader: responseHeaders[HeaderNames.CONTENT_LENGTH] ||\r\n undefined,\r\n httpStatus: e.httpStatus,\r\n }, correlationId);\r\n }\r\n throw e.error;\r\n }\r\n if (e instanceof AuthError) {\r\n throw e;\r\n }\r\n else {\r\n throw createClientAuthError(networkError);\r\n }\r\n }\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return response;\r\n }\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n async updateAuthority(cloudInstanceHostname, correlationId) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, correlationId);\r\n const cloudInstanceAuthorityUri = `https://${cloudInstanceHostname}/${this.authority.tenant}/`;\r\n const cloudInstanceAuthority = await createDiscoveredInstance(cloudInstanceAuthorityUri, this.networkClient, this.cacheManager, this.authority.options, this.logger, correlationId, this.performanceClient);\r\n this.authority = cloudInstanceAuthority;\r\n }\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n createTokenQueryParameters(request) {\r\n const parameterBuilder = new RequestParameterBuilder(request.correlationId, this.performanceClient);\r\n if (request.embeddedClientId) {\r\n parameterBuilder.addBrokerParameters({\r\n brokerClientId: this.config.authOptions.clientId,\r\n brokerRedirectUri: this.config.authOptions.redirectUri,\r\n });\r\n }\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n return parameterBuilder.createQueryString();\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Codes defined by MSAL\r\nconst noTokensFound = \"no_tokens_found\";\r\nconst nativeAccountUnavailable = \"native_account_unavailable\";\r\nconst refreshTokenExpired = \"refresh_token_expired\";\r\n// Codes potentially returned by server\r\nconst interactionRequired = \"interaction_required\";\r\nconst consentRequired = \"consent_required\";\r\nconst loginRequired = \"login_required\";\r\nconst badToken = \"bad_token\";\n\nvar InteractionRequiredAuthErrorCodes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n badToken: badToken,\n consentRequired: consentRequired,\n interactionRequired: interactionRequired,\n loginRequired: loginRequired,\n nativeAccountUnavailable: nativeAccountUnavailable,\n noTokensFound: noTokensFound,\n refreshTokenExpired: refreshTokenExpired\n});\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nconst InteractionRequiredServerErrorMessage = [\r\n interactionRequired,\r\n consentRequired,\r\n loginRequired,\r\n badToken,\r\n];\r\nconst InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\",\r\n \"bad_token\",\r\n];\r\nconst InteractionRequiredAuthErrorMessages = {\r\n [noTokensFound]: \"No refresh token found in the cache. Please sign-in.\",\r\n [nativeAccountUnavailable]: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\",\r\n [refreshTokenExpired]: \"Refresh token has expired.\",\r\n [badToken]: \"Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.\",\r\n};\r\n/**\r\n * Interaction required errors defined by the SDK\r\n * @deprecated Use InteractionRequiredAuthErrorCodes instead\r\n */\r\nconst InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: noTokensFound,\r\n desc: InteractionRequiredAuthErrorMessages[noTokensFound],\r\n },\r\n native_account_unavailable: {\r\n code: nativeAccountUnavailable,\r\n desc: InteractionRequiredAuthErrorMessages[nativeAccountUnavailable],\r\n },\r\n bad_token: {\r\n code: badToken,\r\n desc: InteractionRequiredAuthErrorMessages[badToken],\r\n },\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nclass InteractionRequiredAuthError extends AuthError {\r\n constructor(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims, errorNo) {\r\n super(errorCode, errorMessage, subError);\r\n Object.setPrototypeOf(this, InteractionRequiredAuthError.prototype);\r\n this.timestamp = timestamp || Constants.EMPTY_STRING;\r\n this.traceId = traceId || Constants.EMPTY_STRING;\r\n this.correlationId = correlationId || Constants.EMPTY_STRING;\r\n this.claims = claims || Constants.EMPTY_STRING;\r\n this.name = \"InteractionRequiredAuthError\";\r\n this.errorNo = errorNo;\r\n }\r\n}\r\n/**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\nfunction isInteractionRequiredError(errorCode, errorString, subError) {\r\n const isInteractionRequiredErrorCode = !!errorCode &&\r\n InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n const isInteractionRequiredSubError = !!subError &&\r\n InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n const isInteractionRequiredErrorDesc = !!errorString &&\r\n InteractionRequiredServerErrorMessage.some((irErrorCode) => {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return (isInteractionRequiredErrorCode ||\r\n isInteractionRequiredErrorDesc ||\r\n isInteractionRequiredSubError);\r\n}\r\n/**\r\n * Creates an InteractionRequiredAuthError\r\n */\r\nfunction createInteractionRequiredAuthError(errorCode) {\r\n return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nclass ProtocolUtils {\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n static setRequestState(cryptoObj, userState, meta) {\r\n const libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return userState\r\n ? `${libraryState}${Constants.RESOURCE_DELIM}${userState}`\r\n : libraryState;\r\n }\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n static generateLibraryState(cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw createClientAuthError(noCryptoObject);\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n const stateObj = {\r\n id: cryptoObj.createNewGuid(),\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n const stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n }\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n static parseRequestState(cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw createClientAuthError(noCryptoObject);\r\n }\r\n if (!state) {\r\n throw createClientAuthError(invalidState);\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n const splitState = state.split(Constants.RESOURCE_DELIM);\r\n const libraryState = splitState[0];\r\n const userState = splitState.length > 1\r\n ? splitState.slice(1).join(Constants.RESOURCE_DELIM)\r\n : Constants.EMPTY_STRING;\r\n const libraryStateString = cryptoObj.base64Decode(libraryState);\r\n const libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: userState || Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj,\r\n };\r\n }\r\n catch (e) {\r\n throw createClientAuthError(invalidState);\r\n }\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst KeyLocation = {\r\n SW: \"sw\",\r\n UHW: \"uhw\",\r\n};\r\n/** @internal */\r\nclass PopTokenGenerator {\r\n constructor(cryptoUtils, performanceClient) {\r\n this.cryptoUtils = cryptoUtils;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters\r\n * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash\r\n * @param request\r\n * @returns\r\n */\r\n async generateCnf(request, logger) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n const reqCnf = await invokeAsync(this.generateKid.bind(this), PerformanceEvents.PopTokenGenerateCnf, logger, this.performanceClient, request.correlationId)(request);\r\n const reqCnfString = this.cryptoUtils.base64UrlEncode(JSON.stringify(reqCnf));\r\n return {\r\n kid: reqCnf.kid,\r\n reqCnfString,\r\n };\r\n }\r\n /**\r\n * Generates key_id for a SHR token request\r\n * @param request\r\n * @returns\r\n */\r\n async generateKid(request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n const kidThumbprint = await this.cryptoUtils.getPublicKeyThumbprint(request);\r\n return {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW,\r\n };\r\n }\r\n /**\r\n * Signs the POP access_token with the local generated key-pair\r\n * @param accessToken\r\n * @param request\r\n * @returns\r\n */\r\n async signPopToken(accessToken, keyId, request) {\r\n return this.signPayload(accessToken, keyId, request);\r\n }\r\n /**\r\n * Utility function to generate the signed JWT for an access_token\r\n * @param payload\r\n * @param kid\r\n * @param request\r\n * @param claims\r\n * @returns\r\n */\r\n async signPayload(payload, keyId, request, claims) {\r\n // Deconstruct request to extract SHR parameters\r\n const { resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, shrOptions, } = request;\r\n const resourceUrlString = resourceRequestUri\r\n ? new UrlString(resourceRequestUri)\r\n : undefined;\r\n const resourceUrlComponents = resourceUrlString?.getUrlComponents();\r\n return this.cryptoUtils.signJwt({\r\n at: payload,\r\n ts: nowSeconds(),\r\n m: resourceRequestMethod?.toUpperCase(),\r\n u: resourceUrlComponents?.HostNameAndPort,\r\n nonce: shrNonce || this.cryptoUtils.createNewGuid(),\r\n p: resourceUrlComponents?.AbsolutePath,\r\n q: resourceUrlComponents?.QueryString\r\n ? [[], resourceUrlComponents.QueryString]\r\n : undefined,\r\n client_claims: shrClaims || undefined,\r\n ...claims,\r\n }, keyId, shrOptions, request.correlationId);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ class TokenCacheContext {\r\n constructor(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get cacheHasChanged() {\r\n return this.hasChanged;\r\n }\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get tokenCache() {\r\n return this.cache;\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction parseServerErrorNo(serverResponse) {\r\n const errorCodePrefix = \"code=\";\r\n const errorCodePrefixIndex = serverResponse.error_uri?.lastIndexOf(errorCodePrefix);\r\n return errorCodePrefixIndex && errorCodePrefixIndex >= 0\r\n ? serverResponse.error_uri?.substring(errorCodePrefixIndex + errorCodePrefix.length)\r\n : undefined;\r\n}\r\n/**\r\n * Class that handles response parsing.\r\n * @internal\r\n */\r\nclass ResponseHandler {\r\n constructor(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin, performanceClient) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param requestState\r\n * @param cryptoObj\r\n */\r\n validateServerAuthorizationCodeResponse(serverResponse, requestState) {\r\n if (!serverResponse.state || !requestState) {\r\n throw serverResponse.state\r\n ? createClientAuthError(stateNotFound, \"Cached State\")\r\n : createClientAuthError(stateNotFound, \"Server State\");\r\n }\r\n let decodedServerResponseState;\r\n let decodedRequestState;\r\n try {\r\n decodedServerResponseState = decodeURIComponent(serverResponse.state);\r\n }\r\n catch (e) {\r\n throw createClientAuthError(invalidState, serverResponse.state);\r\n }\r\n try {\r\n decodedRequestState = decodeURIComponent(requestState);\r\n }\r\n catch (e) {\r\n throw createClientAuthError(invalidState, serverResponse.state);\r\n }\r\n if (decodedServerResponseState !== decodedRequestState) {\r\n throw createClientAuthError(stateMismatch);\r\n }\r\n // Check for error\r\n if (serverResponse.error ||\r\n serverResponse.error_description ||\r\n serverResponse.suberror) {\r\n const serverErrorNo = parseServerErrorNo(serverResponse);\r\n if (isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error || \"\", serverResponse.error_description, serverResponse.suberror, serverResponse.timestamp || \"\", serverResponse.trace_id || \"\", serverResponse.correlation_id || \"\", serverResponse.claims || \"\", serverErrorNo);\r\n }\r\n throw new ServerError(serverResponse.error || \"\", serverResponse.error_description, serverResponse.suberror, serverErrorNo);\r\n }\r\n }\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n * @param refreshAccessToken\r\n */\r\n validateTokenResponse(serverResponse, refreshAccessToken) {\r\n // Check for error\r\n if (serverResponse.error ||\r\n serverResponse.error_description ||\r\n serverResponse.suberror) {\r\n const errString = `Error(s): ${serverResponse.error_codes || Constants.NOT_AVAILABLE} - Timestamp: ${serverResponse.timestamp || Constants.NOT_AVAILABLE} - Description: ${serverResponse.error_description || Constants.NOT_AVAILABLE} - Correlation ID: ${serverResponse.correlation_id || Constants.NOT_AVAILABLE} - Trace ID: ${serverResponse.trace_id || Constants.NOT_AVAILABLE}`;\r\n const serverErrorNo = serverResponse.error_codes?.length\r\n ? serverResponse.error_codes[0]\r\n : undefined;\r\n const serverError = new ServerError(serverResponse.error, errString, serverResponse.suberror, serverErrorNo, serverResponse.status);\r\n // check if 500 error\r\n if (refreshAccessToken &&\r\n serverResponse.status &&\r\n serverResponse.status >= HttpStatus.SERVER_ERROR_RANGE_START &&\r\n serverResponse.status <= HttpStatus.SERVER_ERROR_RANGE_END) {\r\n this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently unavailable and the access token is unable to be refreshed.\\n${serverError}`);\r\n // don't throw an exception, but alert the user via a log that the token was unable to be refreshed\r\n return;\r\n // check if 400 error\r\n }\r\n else if (refreshAccessToken &&\r\n serverResponse.status &&\r\n serverResponse.status >= HttpStatus.CLIENT_ERROR_RANGE_START &&\r\n serverResponse.status <= HttpStatus.CLIENT_ERROR_RANGE_END) {\r\n this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently available but is unable to refresh the access token.\\n${serverError}`);\r\n // don't throw an exception, but alert the user via a log that the token was unable to be refreshed\r\n return;\r\n }\r\n if (isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror, serverResponse.timestamp || Constants.EMPTY_STRING, serverResponse.trace_id || Constants.EMPTY_STRING, serverResponse.correlation_id || Constants.EMPTY_STRING, serverResponse.claims || Constants.EMPTY_STRING, serverErrorNo);\r\n }\r\n throw serverError;\r\n }\r\n }\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n async handleServerTokenResponse(serverTokenResponse, authority, reqTimestamp, request, authCodePayload, userAssertionHash, handlingRefreshTokenResponse, forceCacheRefreshTokenResponse, serverRequestId) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.HandleServerTokenResponse, serverTokenResponse.correlation_id);\r\n // create an idToken object (not entity)\r\n let idTokenClaims;\r\n if (serverTokenResponse.id_token) {\r\n idTokenClaims = extractTokenClaims(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj.base64Decode);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && authCodePayload.nonce) {\r\n if (idTokenClaims.nonce !== authCodePayload.nonce) {\r\n throw createClientAuthError(nonceMismatch);\r\n }\r\n }\r\n // token max_age check\r\n if (request.maxAge || request.maxAge === 0) {\r\n const authTime = idTokenClaims.auth_time;\r\n if (!authTime) {\r\n throw createClientAuthError(authTimeNotFound);\r\n }\r\n checkMaxAge(authTime, request.maxAge);\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenClaims);\r\n // save the response tokens\r\n let requestStateObj;\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n // Add keyId from request to serverTokenResponse if defined\r\n serverTokenResponse.key_id =\r\n serverTokenResponse.key_id || request.sshKid || undefined;\r\n const cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenClaims, userAssertionHash, authCodePayload);\r\n let cacheContext;\r\n try {\r\n if (this.persistencePlugin && this.serializableCache) {\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n await this.persistencePlugin.beforeCacheAccess(cacheContext);\r\n }\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal, unless explicitly flagged by\r\n * the developer, as in the case of refresh token flow used in ADAL Node to MSAL Node migration.\r\n */\r\n if (handlingRefreshTokenResponse &&\r\n !forceCacheRefreshTokenResponse &&\r\n cacheRecord.account) {\r\n const key = cacheRecord.account.generateAccountKey();\r\n const account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return await ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenClaims, requestStateObj, undefined, serverRequestId);\r\n }\r\n }\r\n await this.cacheStorage.saveCacheRecord(cacheRecord, request.correlationId, request.storeInCache);\r\n }\r\n finally {\r\n if (this.persistencePlugin &&\r\n this.serializableCache &&\r\n cacheContext) {\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n await this.persistencePlugin.afterCacheAccess(cacheContext);\r\n }\r\n }\r\n return ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenClaims, requestStateObj, serverTokenResponse, serverRequestId);\r\n }\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenClaims, userAssertionHash, authCodePayload) {\r\n const env = authority.getPreferredCache();\r\n if (!env) {\r\n throw createClientAuthError(invalidCacheEnvironment);\r\n }\r\n const claimsTenantId = getTenantIdFromIdTokenClaims(idTokenClaims);\r\n // IdToken: non AAD scenarios can have empty realm\r\n let cachedIdToken;\r\n let cachedAccount;\r\n if (serverTokenResponse.id_token && !!idTokenClaims) {\r\n cachedIdToken = createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token, this.clientId, claimsTenantId || \"\");\r\n cachedAccount = buildAccountToCache(this.cacheStorage, authority, this.homeAccountIdentifier, this.cryptoObj.base64Decode, idTokenClaims, serverTokenResponse.client_info, env, claimsTenantId, authCodePayload, undefined, // nativeAccountId\r\n this.logger);\r\n }\r\n // AccessToken\r\n let cachedAccessToken = null;\r\n if (serverTokenResponse.access_token) {\r\n // If scopes not returned in server response, use request scopes\r\n const responseScopes = serverTokenResponse.scope\r\n ? ScopeSet.fromString(serverTokenResponse.scope)\r\n : new ScopeSet(request.scopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n const expiresIn = (typeof serverTokenResponse.expires_in === \"string\"\r\n ? parseInt(serverTokenResponse.expires_in, 10)\r\n : serverTokenResponse.expires_in) || 0;\r\n const extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\"\r\n ? parseInt(serverTokenResponse.ext_expires_in, 10)\r\n : serverTokenResponse.ext_expires_in) || 0;\r\n const refreshIn = (typeof serverTokenResponse.refresh_in === \"string\"\r\n ? parseInt(serverTokenResponse.refresh_in, 10)\r\n : serverTokenResponse.refresh_in) || undefined;\r\n const tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n const extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n const refreshOnSeconds = refreshIn && refreshIn > 0\r\n ? reqTimestamp + refreshIn\r\n : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token, this.clientId, claimsTenantId || authority.tenant || \"\", responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj.base64Decode, refreshOnSeconds, serverTokenResponse.token_type, userAssertionHash, serverTokenResponse.key_id, request.claims, request.requestedClaimsHash);\r\n }\r\n // refreshToken\r\n let cachedRefreshToken = null;\r\n if (serverTokenResponse.refresh_token) {\r\n let rtExpiresOn;\r\n if (serverTokenResponse.refresh_token_expires_in) {\r\n const rtExpiresIn = typeof serverTokenResponse.refresh_token_expires_in ===\r\n \"string\"\r\n ? parseInt(serverTokenResponse.refresh_token_expires_in, 10)\r\n : serverTokenResponse.refresh_token_expires_in;\r\n rtExpiresOn = reqTimestamp + rtExpiresIn;\r\n }\r\n cachedRefreshToken = createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token, this.clientId, serverTokenResponse.foci, userAssertionHash, rtExpiresOn);\r\n }\r\n // appMetadata\r\n let cachedAppMetadata = null;\r\n if (serverTokenResponse.foci) {\r\n cachedAppMetadata = {\r\n clientId: this.clientId,\r\n environment: env,\r\n familyId: serverTokenResponse.foci,\r\n };\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n }\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n static async generateAuthenticationResult(cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenClaims, requestState, serverTokenResponse, requestId) {\r\n let accessToken = Constants.EMPTY_STRING;\r\n let responseScopes = [];\r\n let expiresOn = null;\r\n let extExpiresOn;\r\n let refreshOn;\r\n let familyId = Constants.EMPTY_STRING;\r\n if (cacheRecord.accessToken) {\r\n /*\r\n * if the request object has `popKid` property, `signPopToken` will be set to false and\r\n * the token will be returned unsigned\r\n */\r\n if (cacheRecord.accessToken.tokenType ===\r\n AuthenticationScheme.POP &&\r\n !request.popKid) {\r\n const popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n const { secret, keyId } = cacheRecord.accessToken;\r\n if (!keyId) {\r\n throw createClientAuthError(keyIdMissing);\r\n }\r\n accessToken = await popTokenGenerator.signPopToken(secret, keyId, request);\r\n }\r\n else {\r\n accessToken = cacheRecord.accessToken.secret;\r\n }\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n if (cacheRecord.accessToken.refreshOn) {\r\n refreshOn = new Date(Number(cacheRecord.accessToken.refreshOn) * 1000);\r\n }\r\n }\r\n if (cacheRecord.appMetadata) {\r\n familyId =\r\n cacheRecord.appMetadata.familyId === THE_FAMILY_ID\r\n ? THE_FAMILY_ID\r\n : \"\";\r\n }\r\n const uid = idTokenClaims?.oid || idTokenClaims?.sub || \"\";\r\n const tid = idTokenClaims?.tid || \"\";\r\n // for hybrid + native bridge enablement, send back the native account Id\r\n if (serverTokenResponse?.spa_accountid && !!cacheRecord.account) {\r\n cacheRecord.account.nativeAccountId =\r\n serverTokenResponse?.spa_accountid;\r\n }\r\n const accountInfo = cacheRecord.account\r\n ? updateAccountTenantProfileData(cacheRecord.account.getAccountInfo(), undefined, // tenantProfile optional\r\n idTokenClaims, cacheRecord.idToken?.secret)\r\n : null;\r\n return {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: accountInfo,\r\n idToken: cacheRecord?.idToken?.secret || \"\",\r\n idTokenClaims: idTokenClaims || {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n extExpiresOn: extExpiresOn,\r\n refreshOn: refreshOn,\r\n correlationId: request.correlationId,\r\n requestId: requestId || Constants.EMPTY_STRING,\r\n familyId: familyId,\r\n tokenType: cacheRecord.accessToken?.tokenType || Constants.EMPTY_STRING,\r\n state: requestState\r\n ? requestState.userRequestState\r\n : Constants.EMPTY_STRING,\r\n cloudGraphHostName: cacheRecord.account?.cloudGraphHostName ||\r\n Constants.EMPTY_STRING,\r\n msGraphHost: cacheRecord.account?.msGraphHost || Constants.EMPTY_STRING,\r\n code: serverTokenResponse?.spa_code,\r\n fromNativeBroker: false,\r\n };\r\n }\r\n}\r\nfunction buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decode, idTokenClaims, clientInfo, environment, claimsTenantId, authCodePayload, nativeAccountId, logger) {\r\n logger?.verbose(\"setCachedAccount called\");\r\n // Check if base account is already cached\r\n const accountKeys = cacheStorage.getAccountKeys();\r\n const baseAccountKey = accountKeys.find((accountKey) => {\r\n return accountKey.startsWith(homeAccountId);\r\n });\r\n let cachedAccount = null;\r\n if (baseAccountKey) {\r\n cachedAccount = cacheStorage.getAccount(baseAccountKey);\r\n }\r\n const baseAccount = cachedAccount ||\r\n AccountEntity.createAccount({\r\n homeAccountId,\r\n idTokenClaims,\r\n clientInfo,\r\n environment,\r\n cloudGraphHostName: authCodePayload?.cloud_graph_host_name,\r\n msGraphHost: authCodePayload?.msgraph_host,\r\n nativeAccountId: nativeAccountId,\r\n }, authority, base64Decode);\r\n const tenantProfiles = baseAccount.tenantProfiles || [];\r\n const tenantId = claimsTenantId || baseAccount.realm;\r\n if (tenantId &&\r\n !tenantProfiles.find((tenantProfile) => {\r\n return tenantProfile.tenantId === tenantId;\r\n })) {\r\n const newTenantProfile = buildTenantProfile(homeAccountId, baseAccount.localAccountId, tenantId, idTokenClaims);\r\n tenantProfiles.push(newTenantProfile);\r\n }\r\n baseAccount.tenantProfiles = tenantProfiles;\r\n return baseAccount;\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nasync function getClientAssertion(clientAssertion, clientId, tokenEndpoint) {\r\n if (typeof clientAssertion === \"string\") {\r\n return clientAssertion;\r\n }\r\n else {\r\n const config = {\r\n clientId: clientId,\r\n tokenEndpoint: tokenEndpoint,\r\n };\r\n return clientAssertion(config);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n * @internal\r\n */\r\nclass AuthorizationCodeClient extends BaseClient {\r\n constructor(configuration, performanceClient) {\r\n super(configuration, performanceClient);\r\n // Flag to indicate if client is for hybrid spa auth code redemption\r\n this.includeRedirectUri = true;\r\n this.oidcDefaultScopes =\r\n this.config.authOptions.authority.options.OIDCOptions?.defaultScopes;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n async getAuthCodeUrl(request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.GetAuthCodeUrl, request.correlationId);\r\n const queryString = await invokeAsync(this.createAuthCodeUrlQueryString.bind(this), PerformanceEvents.AuthClientCreateQueryString, this.logger, this.performanceClient, request.correlationId)(request);\r\n return UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString);\r\n }\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n async acquireToken(request, authCodePayload) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthClientAcquireToken, request.correlationId);\r\n if (!request.code) {\r\n throw createClientAuthError(requestCannotBeMade);\r\n }\r\n const reqTimestamp = nowSeconds();\r\n const response = await invokeAsync(this.executeTokenRequest.bind(this), PerformanceEvents.AuthClientExecuteTokenRequest, this.logger, this.performanceClient, request.correlationId)(this.authority, request);\r\n // Retrieve requestId from response headers\r\n const requestId = response.headers?.[HeaderNames.X_MS_REQUEST_ID];\r\n const responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin, this.performanceClient);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n return invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), PerformanceEvents.HandleServerTokenResponse, this.logger, this.performanceClient, request.correlationId)(response.body, this.authority, reqTimestamp, request, authCodePayload, undefined, undefined, undefined, requestId);\r\n }\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n handleFragmentResponse(serverParams, cachedState) {\r\n // Handle responses.\r\n const responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw createClientAuthError(authorizationCodeMissingFromServerResponse);\r\n }\r\n return serverParams;\r\n }\r\n /**\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n getLogoutUri(logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw createClientConfigurationError(logoutRequestEmpty);\r\n }\r\n const queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n }\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n async executeTokenRequest(authority, request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n const queryParametersString = this.createTokenQueryParameters(request);\r\n const endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n const requestBody = await invokeAsync(this.createTokenRequestBody.bind(this), PerformanceEvents.AuthClientCreateTokenRequestBody, this.logger, this.performanceClient, request.correlationId)(request);\r\n let ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n const clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils.base64Decode);\r\n ccsCredential = {\r\n credential: `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID,\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n const headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n const thumbprint = {\r\n clientId: request.tokenBodyParameters?.clientId ||\r\n this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid,\r\n };\r\n return invokeAsync(this.executePostToTokenEndpoint.bind(this), PerformanceEvents.AuthorizationCodeClientExecutePostToTokenEndpoint, this.logger, this.performanceClient, request.correlationId)(endpoint, requestBody, headers, thumbprint, request.correlationId, PerformanceEvents.AuthorizationCodeClientExecutePostToTokenEndpoint);\r\n }\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n async createTokenRequestBody(request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n const parameterBuilder = new RequestParameterBuilder(request.correlationId, this.performanceClient);\r\n parameterBuilder.addClientId(request.embeddedClientId ||\r\n request.tokenBodyParameters?.[CLIENT_ID] ||\r\n this.config.authOptions.clientId);\r\n /*\r\n * For hybrid spa flow, there will be a code but no verifier\r\n * In this scenario, don't include redirect uri as auth code will not be bound to redirect URI\r\n */\r\n if (!this.includeRedirectUri) {\r\n // Just validate\r\n RequestValidator.validateRedirectUri(request.redirectUri);\r\n }\r\n else {\r\n // Validate and include redirect uri\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes, true, this.oidcDefaultScopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager && !isOidcProtocolMode(this.config)) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n const clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(await getClientAssertion(clientAssertion.assertion, this.config.authOptions.clientId, request.resourceRequestUri));\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (request.authenticationScheme === AuthenticationScheme.POP) {\r\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n let reqCnfData;\r\n if (!request.popKid) {\r\n const generatedReqCnfData = await invokeAsync(popTokenGenerator.generateCnf.bind(popTokenGenerator), PerformanceEvents.PopTokenGenerateCnf, this.logger, this.performanceClient, request.correlationId)(request, this.logger);\r\n reqCnfData = generatedReqCnfData.reqCnfString;\r\n }\r\n else {\r\n reqCnfData = this.cryptoUtils.encodeKid(request.popKid);\r\n }\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData);\r\n }\r\n else if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw createClientConfigurationError(missingSshJwk);\r\n }\r\n }\r\n if (!StringUtils.isEmptyObj(request.claims) ||\r\n (this.config.authOptions.clientCapabilities &&\r\n this.config.authOptions.clientCapabilities.length > 0)) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n let ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n const clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils.base64Decode);\r\n ccsCred = {\r\n credential: `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID,\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n const clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" +\r\n e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n if (request.embeddedClientId) {\r\n parameterBuilder.addBrokerParameters({\r\n brokerClientId: this.config.authOptions.clientId,\r\n brokerRedirectUri: this.config.authOptions.redirectUri,\r\n });\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n // Add hybrid spa parameters if not already provided\r\n if (request.enableSpaAuthorizationCode &&\r\n (!request.tokenBodyParameters ||\r\n !request.tokenBodyParameters[RETURN_SPA_CODE])) {\r\n parameterBuilder.addExtraQueryParameters({\r\n [RETURN_SPA_CODE]: \"1\",\r\n });\r\n }\r\n return parameterBuilder.createQueryString();\r\n }\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n async createAuthCodeUrlQueryString(request) {\r\n // generate the correlationId if not set by the user and add\r\n const correlationId = request.correlationId ||\r\n this.config.cryptoInterface.createNewGuid();\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.AuthClientCreateQueryString, correlationId);\r\n const parameterBuilder = new RequestParameterBuilder(correlationId, this.performanceClient);\r\n parameterBuilder.addClientId(request.embeddedClientId ||\r\n request.extraQueryParameters?.[CLIENT_ID] ||\r\n this.config.authOptions.clientId);\r\n const requestScopes = [\r\n ...(request.scopes || []),\r\n ...(request.extraScopesToConsent || []),\r\n ];\r\n parameterBuilder.addScopes(requestScopes, true, this.oidcDefaultScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n if (!isOidcProtocolMode(this.config)) {\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n }\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for login_hint claim (in request) -> sid -> loginHint (upn/email) -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n const accountSid = this.extractAccountSid(request.account);\r\n let accountLoginHintClaim = this.extractLoginHint(request.account);\r\n if (accountLoginHintClaim && request.domainHint) {\r\n this.logger.warning(`AuthorizationCodeClient.createAuthCodeUrlQueryString: \"domainHint\" param is set, skipping opaque \"login_hint\" claim. Please consider not passing domainHint`);\r\n accountLoginHintClaim = null;\r\n }\r\n // If login_hint claim is present, use it over sid/username\r\n if (accountLoginHintClaim) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: login_hint claim present on account\");\r\n parameterBuilder.addLoginHint(accountLoginHintClaim);\r\n try {\r\n const clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (accountSid && request.prompt === PromptValue.NONE) {\r\n /*\r\n * If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n * SessionId is only used in silent calls\r\n */\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n const clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n const clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.claims ||\r\n (this.config.authOptions.clientCapabilities &&\r\n this.config.authOptions.clientCapabilities.length > 0)) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.embeddedClientId) {\r\n parameterBuilder.addBrokerParameters({\r\n brokerClientId: this.config.authOptions.clientId,\r\n brokerRedirectUri: this.config.authOptions.redirectUri,\r\n });\r\n }\r\n this.addExtraQueryParams(request, parameterBuilder);\r\n if (request.platformBroker) {\r\n // signal ests that this is a WAM call\r\n parameterBuilder.addNativeBroker();\r\n // pass the req_cnf for POP\r\n if (request.authenticationScheme === AuthenticationScheme.POP) {\r\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n // req_cnf is always sent as a string for SPAs\r\n let reqCnfData;\r\n if (!request.popKid) {\r\n const generatedReqCnfData = await invokeAsync(popTokenGenerator.generateCnf.bind(popTokenGenerator), PerformanceEvents.PopTokenGenerateCnf, this.logger, this.performanceClient, request.correlationId)(request, this.logger);\r\n reqCnfData = generatedReqCnfData.reqCnfString;\r\n }\r\n else {\r\n reqCnfData = this.cryptoUtils.encodeKid(request.popKid);\r\n }\r\n parameterBuilder.addPopToken(reqCnfData);\r\n }\r\n }\r\n return parameterBuilder.createQueryString();\r\n }\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n createLogoutUrlQueryString(request) {\r\n const parameterBuilder = new RequestParameterBuilder(request.correlationId, this.performanceClient);\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.logoutHint) {\r\n parameterBuilder.addLogoutHint(request.logoutHint);\r\n }\r\n this.addExtraQueryParams(request, parameterBuilder);\r\n return parameterBuilder.createQueryString();\r\n }\r\n addExtraQueryParams(request, parameterBuilder) {\r\n const hasRequestInstanceAware = request.extraQueryParameters &&\r\n request.extraQueryParameters.hasOwnProperty(\"instance_aware\");\r\n // Set instance_aware flag if config auth param is set\r\n if (!hasRequestInstanceAware && this.config.authOptions.instanceAware) {\r\n request.extraQueryParameters = request.extraQueryParameters || {};\r\n request.extraQueryParameters[\"instance_aware\"] = \"true\";\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n }\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n extractAccountSid(account) {\r\n return account.idTokenClaims?.sid || null;\r\n }\r\n extractLoginHint(account) {\r\n return account.idTokenClaims?.login_hint || null;\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst DEFAULT_REFRESH_TOKEN_EXPIRATION_OFFSET_SECONDS = 300; // 5 Minutes\r\n/**\r\n * OAuth2.0 refresh token client\r\n * @internal\r\n */\r\nclass RefreshTokenClient extends BaseClient {\r\n constructor(configuration, performanceClient) {\r\n super(configuration, performanceClient);\r\n }\r\n async acquireToken(request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n const reqTimestamp = nowSeconds();\r\n const response = await invokeAsync(this.executeTokenRequest.bind(this), PerformanceEvents.RefreshTokenClientExecuteTokenRequest, this.logger, this.performanceClient, request.correlationId)(request, this.authority);\r\n // Retrieve requestId from response headers\r\n const requestId = response.headers?.[HeaderNames.X_MS_REQUEST_ID];\r\n const responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n return invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), PerformanceEvents.HandleServerTokenResponse, this.logger, this.performanceClient, request.correlationId)(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId);\r\n }\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n async acquireTokenByRefreshToken(request) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw createClientConfigurationError(tokenRequestEmpty);\r\n }\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw createClientAuthError(noAccountInSilentRequest);\r\n }\r\n // try checking if FOCI is enabled for the given application\r\n const isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n return await invokeAsync(this.acquireTokenWithCachedRefreshToken.bind(this), PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, this.logger, this.performanceClient, request.correlationId)(request, true);\r\n }\r\n catch (e) {\r\n const noFamilyRTInCache = e instanceof InteractionRequiredAuthError &&\r\n e.errorCode ===\r\n noTokensFound;\r\n const clientMismatchErrorWithFamilyRT = e instanceof ServerError &&\r\n e.errorCode === Errors.INVALID_GRANT_ERROR &&\r\n e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n return invokeAsync(this.acquireTokenWithCachedRefreshToken.bind(this), PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, this.logger, this.performanceClient, request.correlationId)(request, false);\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n return invokeAsync(this.acquireTokenWithCachedRefreshToken.bind(this), PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, this.logger, this.performanceClient, request.correlationId)(request, false);\r\n }\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n async acquireTokenWithCachedRefreshToken(request, foci) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n // fetches family RT or application RT based on FOCI value\r\n const refreshToken = invoke(this.cacheManager.getRefreshToken.bind(this.cacheManager), PerformanceEvents.CacheManagerGetRefreshToken, this.logger, this.performanceClient, request.correlationId)(request.account, foci, undefined, this.performanceClient, request.correlationId);\r\n if (!refreshToken) {\r\n throw createInteractionRequiredAuthError(noTokensFound);\r\n }\r\n if (refreshToken.expiresOn &&\r\n isTokenExpired(refreshToken.expiresOn, request.refreshTokenExpirationOffsetSeconds ||\r\n DEFAULT_REFRESH_TOKEN_EXPIRATION_OFFSET_SECONDS)) {\r\n throw createInteractionRequiredAuthError(refreshTokenExpired);\r\n }\r\n // attach cached RT size to the current measurement\r\n const refreshTokenRequest = {\r\n ...request,\r\n refreshToken: refreshToken.secret,\r\n authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,\r\n ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID,\r\n },\r\n };\r\n try {\r\n return await invokeAsync(this.acquireToken.bind(this), PerformanceEvents.RefreshTokenClientAcquireToken, this.logger, this.performanceClient, request.correlationId)(refreshTokenRequest);\r\n }\r\n catch (e) {\r\n if (e instanceof InteractionRequiredAuthError &&\r\n e.subError === badToken) {\r\n // Remove bad refresh token from cache\r\n this.logger.verbose(\"acquireTokenWithRefreshToken: bad refresh token, removing from cache\");\r\n const badRefreshTokenKey = generateCredentialKey(refreshToken);\r\n this.cacheManager.removeRefreshToken(badRefreshTokenKey);\r\n }\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n async executeTokenRequest(request, authority) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n const queryParametersString = this.createTokenQueryParameters(request);\r\n const endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n const requestBody = await invokeAsync(this.createTokenRequestBody.bind(this), PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, this.logger, this.performanceClient, request.correlationId)(request);\r\n const headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n const thumbprint = {\r\n clientId: request.tokenBodyParameters?.clientId ||\r\n this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid,\r\n };\r\n return invokeAsync(this.executePostToTokenEndpoint.bind(this), PerformanceEvents.RefreshTokenClientExecutePostToTokenEndpoint, this.logger, this.performanceClient, request.correlationId)(endpoint, requestBody, headers, thumbprint, request.correlationId, PerformanceEvents.RefreshTokenClientExecutePostToTokenEndpoint);\r\n }\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n async createTokenRequestBody(request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n const correlationId = request.correlationId;\r\n const parameterBuilder = new RequestParameterBuilder(correlationId, this.performanceClient);\r\n parameterBuilder.addClientId(request.embeddedClientId ||\r\n request.tokenBodyParameters?.[CLIENT_ID] ||\r\n this.config.authOptions.clientId);\r\n if (request.redirectUri) {\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n parameterBuilder.addScopes(request.scopes, true, this.config.authOptions.authority.options.OIDCOptions?.defaultScopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager && !isOidcProtocolMode(this.config)) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n const clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(await getClientAssertion(clientAssertion.assertion, this.config.authOptions.clientId, request.resourceRequestUri));\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (request.authenticationScheme === AuthenticationScheme.POP) {\r\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n let reqCnfData;\r\n if (!request.popKid) {\r\n const generatedReqCnfData = await invokeAsync(popTokenGenerator.generateCnf.bind(popTokenGenerator), PerformanceEvents.PopTokenGenerateCnf, this.logger, this.performanceClient, request.correlationId)(request, this.logger);\r\n reqCnfData = generatedReqCnfData.reqCnfString;\r\n }\r\n else {\r\n reqCnfData = this.cryptoUtils.encodeKid(request.popKid);\r\n }\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData);\r\n }\r\n else if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw createClientConfigurationError(missingSshJwk);\r\n }\r\n }\r\n if (!StringUtils.isEmptyObj(request.claims) ||\r\n (this.config.authOptions.clientCapabilities &&\r\n this.config.authOptions.clientCapabilities.length > 0)) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight &&\r\n request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n const clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" +\r\n e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n if (request.embeddedClientId) {\r\n parameterBuilder.addBrokerParameters({\r\n brokerClientId: this.config.authOptions.clientId,\r\n brokerRedirectUri: this.config.authOptions.redirectUri,\r\n });\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/** @internal */\r\nclass SilentFlowClient extends BaseClient {\r\n constructor(configuration, performanceClient) {\r\n super(configuration, performanceClient);\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n async acquireToken(request) {\r\n try {\r\n const [authResponse, cacheOutcome] = await this.acquireCachedToken({\r\n ...request,\r\n scopes: request.scopes?.length\r\n ? request.scopes\r\n : [...OIDC_DEFAULT_SCOPES],\r\n });\r\n // if the token is not expired but must be refreshed; get a new one in the background\r\n if (cacheOutcome === CacheOutcome.PROACTIVELY_REFRESHED) {\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.\");\r\n // refresh the access token in the background\r\n const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);\r\n refreshTokenClient\r\n .acquireTokenByRefreshToken(request)\r\n .catch(() => {\r\n // do nothing, this is running in the background and no action is to be taken upon success or failure\r\n });\r\n }\r\n // return the cached token\r\n return authResponse;\r\n }\r\n catch (e) {\r\n if (e instanceof ClientAuthError &&\r\n e.errorCode === tokenRefreshRequired) {\r\n const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);\r\n return refreshTokenClient.acquireTokenByRefreshToken(request);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n async acquireCachedToken(request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientAcquireCachedToken, request.correlationId);\r\n let lastCacheOutcome = CacheOutcome.NOT_APPLICABLE;\r\n if (request.forceRefresh ||\r\n (!this.config.cacheOptions.claimsBasedCachingEnabled &&\r\n !StringUtils.isEmptyObj(request.claims))) {\r\n // Must refresh due to present force_refresh flag.\r\n this.setCacheOutcome(CacheOutcome.FORCE_REFRESH_OR_CLAIMS, request.correlationId);\r\n throw createClientAuthError(tokenRefreshRequired);\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw createClientAuthError(noAccountInSilentRequest);\r\n }\r\n const requestTenantId = request.account.tenantId ||\r\n getTenantFromAuthorityString(request.authority);\r\n const tokenKeys = this.cacheManager.getTokenKeys();\r\n const cachedAccessToken = this.cacheManager.getAccessToken(request.account, request, tokenKeys, requestTenantId, this.performanceClient, request.correlationId);\r\n if (!cachedAccessToken) {\r\n // must refresh due to non-existent access_token\r\n this.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN, request.correlationId);\r\n throw createClientAuthError(tokenRefreshRequired);\r\n }\r\n else if (wasClockTurnedBack(cachedAccessToken.cachedAt) ||\r\n isTokenExpired(cachedAccessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // must refresh due to the expires_in value\r\n this.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED, request.correlationId);\r\n throw createClientAuthError(tokenRefreshRequired);\r\n }\r\n else if (cachedAccessToken.refreshOn &&\r\n isTokenExpired(cachedAccessToken.refreshOn, 0)) {\r\n // must refresh (in the background) due to the refresh_in value\r\n lastCacheOutcome = CacheOutcome.PROACTIVELY_REFRESHED;\r\n // don't throw ClientAuthError.createRefreshRequiredError(), return cached token instead\r\n }\r\n const environment = request.authority || this.authority.getPreferredCache();\r\n const cacheRecord = {\r\n account: this.cacheManager.readAccountFromCache(request.account),\r\n accessToken: cachedAccessToken,\r\n idToken: this.cacheManager.getIdToken(request.account, tokenKeys, requestTenantId, this.performanceClient, request.correlationId),\r\n refreshToken: null,\r\n appMetadata: this.cacheManager.readAppMetadataFromCache(environment),\r\n };\r\n this.setCacheOutcome(lastCacheOutcome, request.correlationId);\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [\r\n await invokeAsync(this.generateResultFromCacheRecord.bind(this), PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, this.logger, this.performanceClient, request.correlationId)(cacheRecord, request),\r\n lastCacheOutcome,\r\n ];\r\n }\r\n setCacheOutcome(cacheOutcome, correlationId) {\r\n this.serverTelemetryManager?.setCacheOutcome(cacheOutcome);\r\n this.performanceClient?.addFields({\r\n cacheOutcome: cacheOutcome,\r\n }, correlationId);\r\n if (cacheOutcome !== CacheOutcome.NOT_APPLICABLE) {\r\n this.logger.info(`Token refresh is required due to cache outcome: ${cacheOutcome}`);\r\n }\r\n }\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n async generateResultFromCacheRecord(cacheRecord, request) {\r\n this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, request.correlationId);\r\n let idTokenClaims;\r\n if (cacheRecord.idToken) {\r\n idTokenClaims = extractTokenClaims(cacheRecord.idToken.secret, this.config.cryptoInterface.base64Decode);\r\n }\r\n // token max_age check\r\n if (request.maxAge || request.maxAge === 0) {\r\n const authTime = idTokenClaims?.auth_time;\r\n if (!authTime) {\r\n throw createClientAuthError(authTimeNotFound);\r\n }\r\n checkMaxAge(authTime, request.maxAge);\r\n }\r\n return ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenClaims);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst StubbedNetworkModule = {\r\n sendGetRequestAsync: () => {\r\n return Promise.reject(createClientAuthError(methodNotImplemented));\r\n },\r\n sendPostRequestAsync: () => {\r\n return Promise.reject(createClientAuthError(methodNotImplemented));\r\n },\r\n};\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This is a helper class that parses supported HTTP response authentication headers to extract and return\r\n * header challenge values that can be used outside the basic authorization flows.\r\n */\r\nclass AuthenticationHeaderParser {\r\n constructor(headers) {\r\n this.headers = headers;\r\n }\r\n /**\r\n * This method parses the SHR nonce value out of either the Authentication-Info or WWW-Authenticate authentication headers.\r\n * @returns\r\n */\r\n getShrNonce() {\r\n // Attempt to parse nonce from Authentiacation-Info\r\n const authenticationInfo = this.headers[HeaderNames.AuthenticationInfo];\r\n if (authenticationInfo) {\r\n const authenticationInfoChallenges = this.parseChallenges(authenticationInfo);\r\n if (authenticationInfoChallenges.nextnonce) {\r\n return authenticationInfoChallenges.nextnonce;\r\n }\r\n throw createClientConfigurationError(invalidAuthenticationHeader);\r\n }\r\n // Attempt to parse nonce from WWW-Authenticate\r\n const wwwAuthenticate = this.headers[HeaderNames.WWWAuthenticate];\r\n if (wwwAuthenticate) {\r\n const wwwAuthenticateChallenges = this.parseChallenges(wwwAuthenticate);\r\n if (wwwAuthenticateChallenges.nonce) {\r\n return wwwAuthenticateChallenges.nonce;\r\n }\r\n throw createClientConfigurationError(invalidAuthenticationHeader);\r\n }\r\n // If neither header is present, throw missing headers error\r\n throw createClientConfigurationError(missingNonceAuthenticationHeader);\r\n }\r\n /**\r\n * Parses an HTTP header's challenge set into a key/value map.\r\n * @param header\r\n * @returns\r\n */\r\n parseChallenges(header) {\r\n const schemeSeparator = header.indexOf(\" \");\r\n const challenges = header.substr(schemeSeparator + 1).split(\",\");\r\n const challengeMap = {};\r\n challenges.forEach((challenge) => {\r\n const [key, value] = challenge.split(\"=\");\r\n // Remove escaped quotation marks (', \") from challenge string to keep only the challenge value\r\n challengeMap[key] = unescape(value.replace(/['\"]+/g, Constants.EMPTY_STRING));\r\n });\r\n return challengeMap;\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst skuGroupSeparator = \",\";\r\nconst skuValueSeparator = \"|\";\r\nfunction makeExtraSkuString(params) {\r\n const { skus, libraryName, libraryVersion, extensionName, extensionVersion, } = params;\r\n const skuMap = new Map([\r\n [0, [libraryName, libraryVersion]],\r\n [2, [extensionName, extensionVersion]],\r\n ]);\r\n let skuArr = [];\r\n if (skus?.length) {\r\n skuArr = skus.split(skuGroupSeparator);\r\n // Ignore invalid input sku param\r\n if (skuArr.length < 4) {\r\n return skus;\r\n }\r\n }\r\n else {\r\n skuArr = Array.from({ length: 4 }, () => skuValueSeparator);\r\n }\r\n skuMap.forEach((value, key) => {\r\n if (value.length === 2 && value[0]?.length && value[1]?.length) {\r\n setSku({\r\n skuArr,\r\n index: key,\r\n skuName: value[0],\r\n skuVersion: value[1],\r\n });\r\n }\r\n });\r\n return skuArr.join(skuGroupSeparator);\r\n}\r\nfunction setSku(params) {\r\n const { skuArr, index, skuName, skuVersion } = params;\r\n if (index >= skuArr.length) {\r\n return;\r\n }\r\n skuArr[index] = [skuName, skuVersion].join(skuValueSeparator);\r\n}\r\n/** @internal */\r\nclass ServerTelemetryManager {\r\n constructor(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NOT_APPLICABLE;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey =\r\n SERVER_TELEM_CONSTANTS.CACHE_KEY +\r\n Separators.CACHE_KEY_SEPARATOR +\r\n telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n generateCurrentRequestHeaderValue() {\r\n const request = `${this.apiId}${SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`;\r\n const platformFieldsArr = [this.wrapperSKU, this.wrapperVer];\r\n const nativeBrokerErrorCode = this.getNativeBrokerErrorCode();\r\n if (nativeBrokerErrorCode?.length) {\r\n platformFieldsArr.push(`broker_error=${nativeBrokerErrorCode}`);\r\n }\r\n const platformFields = platformFieldsArr.join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n const requestWithRegionDiscoveryFields = [\r\n request,\r\n regionDiscoveryFields,\r\n ].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [\r\n SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,\r\n requestWithRegionDiscoveryFields,\r\n platformFields,\r\n ].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n }\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n generateLastRequestHeaderValue() {\r\n const lastRequests = this.getLastRequests();\r\n const maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n const failedRequests = lastRequests.failedRequests\r\n .slice(0, 2 * maxErrors)\r\n .join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const errors = lastRequests.errors\r\n .slice(0, maxErrors)\r\n .join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n const overflow = maxErrors < errorCount\r\n ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE\r\n : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n const platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [\r\n SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,\r\n lastRequests.cacheHits,\r\n failedRequests,\r\n errors,\r\n platformFields,\r\n ].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n }\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n cacheFailedRequest(error) {\r\n const lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >=\r\n SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (error instanceof Error && !!error && error.toString()) {\r\n if (error instanceof AuthError) {\r\n if (error.subError) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (error.errorCode) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n }\r\n else {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n }\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n incrementCacheHits() {\r\n const lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n }\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n getLastRequests() {\r\n const initialValue = {\r\n failedRequests: [],\r\n errors: [],\r\n cacheHits: 0,\r\n };\r\n const lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n }\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n clearTelemetryCache() {\r\n const lastRequests = this.getLastRequests();\r\n const numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n const errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n const serverTelemEntity = {\r\n failedRequests: lastRequests.failedRequests.slice(numErrorsFlushed * 2),\r\n errors: lastRequests.errors.slice(numErrorsFlushed),\r\n cacheHits: 0,\r\n };\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n }\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n static maxErrorsToSend(serverTelemetryEntity) {\r\n let i;\r\n let maxErrors = 0;\r\n let dataSize = 0;\r\n const errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n const apiId = serverTelemetryEntity.failedRequests[2 * i] ||\r\n Constants.EMPTY_STRING;\r\n const correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] ||\r\n Constants.EMPTY_STRING;\r\n const errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize +=\r\n apiId.toString().length +\r\n correlationId.toString().length +\r\n errorCode.length +\r\n 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n }\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n getRegionDiscoveryFields() {\r\n const regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n }\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n updateRegionDiscoveryMetadata(regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n }\r\n /**\r\n * Set cache outcome\r\n */\r\n setCacheOutcome(cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n }\r\n setNativeBrokerErrorCode(errorCode) {\r\n const lastRequests = this.getLastRequests();\r\n lastRequests.nativeBrokerErrorCode = errorCode;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n }\r\n getNativeBrokerErrorCode() {\r\n return this.getLastRequests().nativeBrokerErrorCode;\r\n }\r\n clearNativeBrokerErrorCode() {\r\n const lastRequests = this.getLastRequests();\r\n delete lastRequests.nativeBrokerErrorCode;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n }\r\n static makeExtraSkuString(params) {\r\n return makeExtraSkuString(params);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst missingKidError = \"missing_kid_error\";\r\nconst missingAlgError = \"missing_alg_error\";\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst JoseHeaderErrorMessages = {\r\n [missingKidError]: \"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.\",\r\n [missingAlgError]: \"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided.\",\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nclass JoseHeaderError extends AuthError {\r\n constructor(errorCode, errorMessage) {\r\n super(errorCode, errorMessage);\r\n this.name = \"JoseHeaderError\";\r\n Object.setPrototypeOf(this, JoseHeaderError.prototype);\r\n }\r\n}\r\n/** Returns JoseHeaderError object */\r\nfunction createJoseHeaderError(code) {\r\n return new JoseHeaderError(code, JoseHeaderErrorMessages[code]);\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/** @internal */\r\nclass JoseHeader {\r\n constructor(options) {\r\n this.typ = options.typ;\r\n this.alg = options.alg;\r\n this.kid = options.kid;\r\n }\r\n /**\r\n * Builds SignedHttpRequest formatted JOSE Header from the\r\n * JOSE Header options provided or previously set on the object and returns\r\n * the stringified header object.\r\n * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.\r\n * @param shrHeaderOptions\r\n * @returns\r\n */\r\n static getShrHeaderString(shrHeaderOptions) {\r\n // KeyID is required on the SHR header\r\n if (!shrHeaderOptions.kid) {\r\n throw createJoseHeaderError(missingKidError);\r\n }\r\n // Alg is required on the SHR header\r\n if (!shrHeaderOptions.alg) {\r\n throw createJoseHeaderError(missingAlgError);\r\n }\r\n const shrHeader = new JoseHeader({\r\n // Access Token PoP headers must have type pop, but the type header can be overriden for special cases\r\n typ: shrHeaderOptions.typ || JsonWebTokenTypes.Pop,\r\n kid: shrHeaderOptions.kid,\r\n alg: shrHeaderOptions.alg,\r\n });\r\n return JSON.stringify(shrHeader);\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass StubPerformanceMeasurement {\r\n startMeasurement() {\r\n return;\r\n }\r\n endMeasurement() {\r\n return;\r\n }\r\n flushMeasurement() {\r\n return null;\r\n }\r\n}\r\nclass StubPerformanceClient {\r\n generateId() {\r\n return \"callback-id\";\r\n }\r\n startMeasurement(measureName, correlationId) {\r\n return {\r\n end: () => null,\r\n discard: () => { },\r\n add: () => { },\r\n increment: () => { },\r\n event: {\r\n eventId: this.generateId(),\r\n status: PerformanceEventStatus.InProgress,\r\n authority: \"\",\r\n libraryName: \"\",\r\n libraryVersion: \"\",\r\n clientId: \"\",\r\n name: measureName,\r\n startTimeMs: Date.now(),\r\n correlationId: correlationId || \"\",\r\n },\r\n measurement: new StubPerformanceMeasurement(),\r\n };\r\n }\r\n startPerformanceMeasurement() {\r\n return new StubPerformanceMeasurement();\r\n }\r\n calculateQueuedTime() {\r\n return 0;\r\n }\r\n addQueueMeasurement() {\r\n return;\r\n }\r\n setPreQueueTime() {\r\n return;\r\n }\r\n endMeasurement() {\r\n return null;\r\n }\r\n discardMeasurements() {\r\n return;\r\n }\r\n removePerformanceCallback() {\r\n return true;\r\n }\r\n addPerformanceCallback() {\r\n return \"\";\r\n }\r\n emitEvents() {\r\n return;\r\n }\r\n addFields() {\r\n return;\r\n }\r\n incrementFields() {\r\n return;\r\n }\r\n cacheEventByCorrelationId() {\r\n return;\r\n }\r\n}\n\n/*! @azure/msal-common v15.0.2 2025-01-22 */\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Starts context by adding payload to the stack\r\n * @param event {PerformanceEvent}\r\n * @param abbreviations {Map<string, string>} event name abbreviations\r\n * @param stack {?PerformanceEventStackedContext[]} stack\r\n */\r\nfunction startContext(event, abbreviations, stack) {\r\n if (!stack) {\r\n return;\r\n }\r\n stack.push({\r\n name: abbreviations.get(event.name) || event.name,\r\n });\r\n}\r\n/**\r\n * Ends context by removing payload from the stack and returning parent or self, if stack is empty, payload\r\n *\r\n * @param event {PerformanceEvent}\r\n * @param abbreviations {Map<string, string>} event name abbreviations\r\n * @param stack {?PerformanceEventStackedContext[]} stack\r\n * @param error {?unknown} error\r\n */\r\nfunction endContext(event, abbreviations, stack, error) {\r\n if (!stack?.length) {\r\n return;\r\n }\r\n const peek = (stack) => {\r\n return stack.length ? stack[stack.length - 1] : undefined;\r\n };\r\n const abbrEventName = abbreviations.get(event.name) || event.name;\r\n const top = peek(stack);\r\n if (top?.name !== abbrEventName) {\r\n return;\r\n }\r\n const current = stack?.pop();\r\n if (!current) {\r\n return;\r\n }\r\n const errorCode = error instanceof AuthError\r\n ? error.errorCode\r\n : error instanceof Error\r\n ? error.name\r\n : undefined;\r\n const subErr = error instanceof AuthError ? error.subError : undefined;\r\n if (errorCode && current.childErr !== errorCode) {\r\n current.err = errorCode;\r\n if (subErr) {\r\n current.subErr = subErr;\r\n }\r\n }\r\n delete current.name;\r\n delete current.childErr;\r\n const context = {\r\n ...current,\r\n dur: event.durationMs,\r\n };\r\n if (!event.success) {\r\n context.fail = 1;\r\n }\r\n const parent = peek(stack);\r\n if (!parent) {\r\n return { [abbrEventName]: context };\r\n }\r\n if (errorCode) {\r\n parent.childErr = errorCode;\r\n }\r\n let childName;\r\n if (!parent[abbrEventName]) {\r\n childName = abbrEventName;\r\n }\r\n else {\r\n const siblings = Object.keys(parent).filter((key) => key.startsWith(abbrEventName)).length;\r\n childName = `${abbrEventName}_${siblings + 1}`;\r\n }\r\n parent[childName] = context;\r\n return parent;\r\n}\r\n/**\r\n * Adds error name and stack trace to the telemetry event\r\n * @param error {Error}\r\n * @param logger {Logger}\r\n * @param event {PerformanceEvent}\r\n * @param stackMaxSize {number} max error stack size to capture\r\n */\r\nfunction addError(error, logger, event, stackMaxSize = 5) {\r\n if (!(error instanceof Error)) {\r\n logger.trace(\"PerformanceClient.addErrorStack: Input error is not instance of Error\", event.correlationId);\r\n return;\r\n }\r\n else if (error instanceof AuthError) {\r\n event.errorCode = error.errorCode;\r\n event.subErrorCode = error.subError;\r\n if (error instanceof ServerError ||\r\n error instanceof InteractionRequiredAuthError) {\r\n event.serverErrorNo = error.errorNo;\r\n }\r\n return;\r\n }\r\n else if (error instanceof CacheError) {\r\n event.errorCode = error.errorCode;\r\n return;\r\n }\r\n else if (event.errorStack?.length) {\r\n logger.trace(\"PerformanceClient.addErrorStack: Stack already exist\", event.correlationId);\r\n return;\r\n }\r\n else if (!error.stack?.length) {\r\n logger.trace(\"PerformanceClient.addErrorStack: Input stack is empty\", event.correlationId);\r\n return;\r\n }\r\n if (error.stack) {\r\n event.errorStack = compactStack(error.stack, stackMaxSize);\r\n }\r\n event.errorName = error.name;\r\n}\r\n/**\r\n * Compacts error stack into array by fetching N first entries\r\n * @param stack {string} error stack\r\n * @param stackMaxSize {number} max error stack size to capture\r\n * @returns {string[]}\r\n */\r\nfunction compactStack(stack, stackMaxSize) {\r\n if (stackMaxSize < 0) {\r\n return [];\r\n }\r\n const stackArr = stack.split(\"\\n\") || [];\r\n const res = [];\r\n // Check for a handful of known, common runtime errors and log them (with redaction where applicable).\r\n const firstLine = stackArr[0];\r\n if (firstLine.startsWith(\"TypeError: Cannot read property\") ||\r\n firstLine.startsWith(\"TypeError: Cannot read properties of\") ||\r\n firstLine.startsWith(\"TypeError: Cannot set property\") ||\r\n firstLine.startsWith(\"TypeError: Cannot set properties of\") ||\r\n firstLine.endsWith(\"is not a function\")) {\r\n // These types of errors are not at risk of leaking PII. They will indicate unavailable APIs\r\n res.push(compactStackLine(firstLine));\r\n }\r\n else if (firstLine.startsWith(\"SyntaxError\") ||\r\n firstLine.startsWith(\"TypeError\")) {\r\n // Prevent unintentional leaking of arbitrary info by redacting contents between both single and double quotes\r\n res.push(compactStackLine(\r\n // Example: SyntaxError: Unexpected token 'e', \"test\" is not valid JSON -> SyntaxError: Unexpected token <redacted>, <redacted> is not valid JSON\r\n firstLine.replace(/['].*[']|[\"].*[\"]/g, \"<redacted>\")));\r\n }\r\n // Get top N stack lines\r\n for (let ix = 1; ix < stackArr.length; ix++) {\r\n if (res.length >= stackMaxSize) {\r\n break;\r\n }\r\n const line = stackArr[ix];\r\n res.push(compactStackLine(line));\r\n }\r\n return res;\r\n}\r\n/**\r\n * Compacts error stack line by shortening file path\r\n * Example: https://localhost/msal-common/src/authority/Authority.js:100:1 -> Authority.js:100:1\r\n * @param line {string} stack line\r\n * @returns {string}\r\n */\r\nfunction compactStackLine(line) {\r\n const filePathIx = line.lastIndexOf(\" \") + 1;\r\n if (filePathIx < 1) {\r\n return line;\r\n }\r\n const filePath = line.substring(filePathIx);\r\n let fileNameIx = filePath.lastIndexOf(\"/\");\r\n fileNameIx = fileNameIx < 0 ? filePath.lastIndexOf(\"\\\\\") : fileNameIx;\r\n if (fileNameIx >= 0) {\r\n return (line.substring(0, filePathIx) +\r\n \"(\" +\r\n filePath.substring(fileNameIx + 1) +\r\n (filePath.charAt(filePath.length - 1) === \")\" ? \"\" : \")\")).trimStart();\r\n }\r\n return line.trimStart();\r\n}\r\nclass PerformanceClient {\r\n /**\r\n * Creates an instance of PerformanceClient,\r\n * an abstract class containing core performance telemetry logic.\r\n *\r\n * @constructor\r\n * @param {string} clientId Client ID of the application\r\n * @param {string} authority Authority used by the application\r\n * @param {Logger} logger Logger used by the application\r\n * @param {string} libraryName Name of the library\r\n * @param {string} libraryVersion Version of the library\r\n * @param {ApplicationTelemetry} applicationTelemetry application name and version\r\n * @param {Set<String>} intFields integer fields to be truncated\r\n * @param {Map<string, string>} abbreviations event name abbreviations\r\n */\r\n constructor(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, intFields, abbreviations) {\r\n this.authority = authority;\r\n this.libraryName = libraryName;\r\n this.libraryVersion = libraryVersion;\r\n this.applicationTelemetry = applicationTelemetry;\r\n this.clientId = clientId;\r\n this.logger = logger;\r\n this.callbacks = new Map();\r\n this.eventsByCorrelationId = new Map();\r\n this.eventStack = new Map();\r\n this.queueMeasurements = new Map();\r\n this.preQueueTimeByCorrelationId = new Map();\r\n this.intFields = intFields || new Set();\r\n for (const item of IntFields) {\r\n this.intFields.add(item);\r\n }\r\n this.abbreviations = abbreviations || new Map();\r\n for (const [key, value] of PerformanceEventAbbreviations) {\r\n this.abbreviations.set(key, value);\r\n }\r\n }\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this function can be changed to abstract at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n * @deprecated This method will be removed in the next major version\r\n */\r\n startPerformanceMeasurement(measureName, // eslint-disable-line @typescript-eslint/no-unused-vars\r\n correlationId // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n return {};\r\n }\r\n /**\r\n * Gets map of pre-queue times by correlation Id\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {string} correlationId\r\n * @returns {number}\r\n */\r\n getPreQueueTime(eventName, correlationId) {\r\n const preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n if (!preQueueEvent) {\r\n this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: ${correlationId}, unable to add queue measurement`);\r\n return;\r\n }\r\n else if (preQueueEvent.name !== eventName) {\r\n this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue time found for ${eventName}, unable to add queue measurement`);\r\n return;\r\n }\r\n return preQueueEvent.time;\r\n }\r\n /**\r\n * Calculates the difference between current time and time when function was queued.\r\n * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.\r\n *\r\n * @param {number} preQueueTime\r\n * @param {number} currentTime\r\n * @returns {number}\r\n */\r\n calculateQueuedTime(preQueueTime, currentTime) {\r\n if (preQueueTime < 1) {\r\n this.logger.trace(`PerformanceClient: preQueueTime should be a positive integer and not ${preQueueTime}`);\r\n return 0;\r\n }\r\n if (currentTime < 1) {\r\n this.logger.trace(`PerformanceClient: currentTime should be a positive integer and not ${currentTime}`);\r\n return 0;\r\n }\r\n if (currentTime < preQueueTime) {\r\n this.logger.trace(\"PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved\");\r\n return 0;\r\n }\r\n return currentTime - preQueueTime;\r\n }\r\n /**\r\n * Adds queue measurement time to QueueMeasurements array for given correlation ID.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n addQueueMeasurement(eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!correlationId) {\r\n this.logger.trace(`PerformanceClient.addQueueMeasurement: correlationId not provided for ${eventName}, cannot add queue measurement`);\r\n return;\r\n }\r\n if (queueTime === 0) {\r\n // Possible for there to be no queue time after calculation\r\n this.logger.trace(`PerformanceClient.addQueueMeasurement: queue time provided for ${eventName} is ${queueTime}`);\r\n }\r\n else if (!queueTime) {\r\n this.logger.trace(`PerformanceClient.addQueueMeasurement: no queue time provided for ${eventName}`);\r\n return;\r\n }\r\n const queueMeasurement = {\r\n eventName,\r\n // Always default queue time to 0 for manually completed (improperly instrumented)\r\n queueTime: manuallyCompleted ? 0 : queueTime,\r\n manuallyCompleted,\r\n };\r\n // Adds to existing correlation Id if present in queueMeasurements\r\n const existingMeasurements = this.queueMeasurements.get(correlationId);\r\n if (existingMeasurements) {\r\n existingMeasurements.push(queueMeasurement);\r\n this.queueMeasurements.set(correlationId, existingMeasurements);\r\n }\r\n else {\r\n // Sets new correlation Id if not present in queueMeasurements\r\n this.logger.trace(`PerformanceClient.addQueueMeasurement: adding correlationId ${correlationId} to queue measurements`);\r\n const measurementArray = [queueMeasurement];\r\n this.queueMeasurements.set(correlationId, measurementArray);\r\n }\r\n // Delete processed pre-queue event.\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n }\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {InProgressPerformanceEvent}\r\n */\r\n startMeasurement(measureName, correlationId) {\r\n // Generate a placeholder correlation if the request does not provide one\r\n const eventCorrelationId = correlationId || this.generateId();\r\n if (!correlationId) {\r\n this.logger.info(`PerformanceClient: No correlation id provided for ${measureName}, generating`, eventCorrelationId);\r\n }\r\n this.logger.trace(`PerformanceClient: Performance measurement started for ${measureName}`, eventCorrelationId);\r\n const inProgressEvent = {\r\n eventId: this.generateId(),\r\n status: PerformanceEventStatus.InProgress,\r\n authority: this.authority,\r\n libraryName: this.libraryName,\r\n libraryVersion: this.libraryVersion,\r\n clientId: this.clientId,\r\n name: measureName,\r\n startTimeMs: Date.now(),\r\n correlationId: eventCorrelationId,\r\n appName: this.applicationTelemetry?.appName,\r\n appVersion: this.applicationTelemetry?.appVersion,\r\n };\r\n // Store in progress events so they can be discarded if not ended properly\r\n this.cacheEventByCorrelationId(inProgressEvent);\r\n startContext(inProgressEvent, this.abbreviations, this.eventStack.get(eventCorrelationId));\r\n // Return the event and functions the caller can use to properly end/flush the measurement\r\n return {\r\n end: (event, error) => {\r\n return this.endMeasurement({\r\n // Initial set of event properties\r\n ...inProgressEvent,\r\n // Properties set when event ends\r\n ...event,\r\n }, error);\r\n },\r\n discard: () => {\r\n return this.discardMeasurements(inProgressEvent.correlationId);\r\n },\r\n add: (fields) => {\r\n return this.addFields(fields, inProgressEvent.correlationId);\r\n },\r\n increment: (fields) => {\r\n return this.incrementFields(fields, inProgressEvent.correlationId);\r\n },\r\n event: inProgressEvent,\r\n measurement: new StubPerformanceMeasurement(),\r\n };\r\n }\r\n /**\r\n * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,\r\n * as consumers should instead use the function returned by startMeasurement.\r\n * Adds a new field named as \"[event name]DurationMs\" for sub-measurements, completes and emits an event\r\n * otherwise.\r\n *\r\n * @param {PerformanceEvent} event\r\n * @param {unknown} error\r\n * @returns {(PerformanceEvent | null)}\r\n */\r\n endMeasurement(event, error) {\r\n const rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (!rootEvent) {\r\n this.logger.trace(`PerformanceClient: Measurement not found for ${event.eventId}`, event.correlationId);\r\n return null;\r\n }\r\n const isRoot = event.eventId === rootEvent.eventId;\r\n let queueInfo = {\r\n totalQueueTime: 0,\r\n totalQueueCount: 0,\r\n manuallyCompletedCount: 0,\r\n };\r\n event.durationMs = Math.round(event.durationMs || this.getDurationMs(event.startTimeMs));\r\n const context = JSON.stringify(endContext(event, this.abbreviations, this.eventStack.get(rootEvent.correlationId), error));\r\n if (isRoot) {\r\n queueInfo = this.getQueueInfo(event.correlationId);\r\n this.discardMeasurements(rootEvent.correlationId);\r\n }\r\n else {\r\n rootEvent.incompleteSubMeasurements?.delete(event.eventId);\r\n }\r\n this.logger.trace(`PerformanceClient: Performance measurement ended for ${event.name}: ${event.durationMs} ms`, event.correlationId);\r\n if (error) {\r\n addError(error, this.logger, rootEvent);\r\n }\r\n // Add sub-measurement attribute to root event.\r\n if (!isRoot) {\r\n rootEvent[event.name + \"DurationMs\"] = Math.floor(event.durationMs);\r\n return { ...rootEvent };\r\n }\r\n if (isRoot &&\r\n !error &&\r\n (rootEvent.errorCode || rootEvent.subErrorCode)) {\r\n this.logger.trace(`PerformanceClient: Remove error and sub-error codes for root event ${event.name} as intermediate error was successfully handled`, event.correlationId);\r\n rootEvent.errorCode = undefined;\r\n rootEvent.subErrorCode = undefined;\r\n }\r\n let finalEvent = { ...rootEvent, ...event };\r\n let incompleteSubsCount = 0;\r\n // Incomplete sub-measurements are discarded. They are likely an instrumentation bug that should be fixed.\r\n finalEvent.incompleteSubMeasurements?.forEach((subMeasurement) => {\r\n this.logger.trace(`PerformanceClient: Incomplete submeasurement ${subMeasurement.name} found for ${event.name}`, finalEvent.correlationId);\r\n incompleteSubsCount++;\r\n });\r\n finalEvent.incompleteSubMeasurements = undefined;\r\n finalEvent = {\r\n ...finalEvent,\r\n queuedTimeMs: queueInfo.totalQueueTime,\r\n queuedCount: queueInfo.totalQueueCount,\r\n queuedManuallyCompletedCount: queueInfo.manuallyCompletedCount,\r\n status: PerformanceEventStatus.Completed,\r\n incompleteSubsCount,\r\n context,\r\n };\r\n this.truncateIntegralFields(finalEvent);\r\n this.emitEvents([finalEvent], event.correlationId);\r\n return finalEvent;\r\n }\r\n /**\r\n * Saves extra information to be emitted when the measurements are flushed\r\n * @param fields\r\n * @param correlationId\r\n */\r\n addFields(fields, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating static fields\");\r\n const event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n this.eventsByCorrelationId.set(correlationId, {\r\n ...event,\r\n ...fields,\r\n });\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n }\r\n /**\r\n * Increment counters to be emitted when the measurements are flushed\r\n * @param fields {string[]}\r\n * @param correlationId {string} correlation identifier\r\n */\r\n incrementFields(fields, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating counters\");\r\n const event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n for (const counter in fields) {\r\n if (!event.hasOwnProperty(counter)) {\r\n event[counter] = 0;\r\n }\r\n else if (isNaN(Number(event[counter]))) {\r\n return;\r\n }\r\n event[counter] += fields[counter];\r\n }\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n }\r\n /**\r\n * Upserts event into event cache.\r\n * First key is the correlation id, second key is the event id.\r\n * Allows for events to be grouped by correlation id,\r\n * and to easily allow for properties on them to be updated.\r\n *\r\n * @private\r\n * @param {PerformanceEvent} event\r\n */\r\n cacheEventByCorrelationId(event) {\r\n const rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (rootEvent) {\r\n this.logger.trace(`PerformanceClient: Performance measurement for ${event.name} added/updated`, event.correlationId);\r\n rootEvent.incompleteSubMeasurements =\r\n rootEvent.incompleteSubMeasurements || new Map();\r\n rootEvent.incompleteSubMeasurements.set(event.eventId, {\r\n name: event.name,\r\n startTimeMs: event.startTimeMs,\r\n });\r\n }\r\n else {\r\n this.logger.trace(`PerformanceClient: Performance measurement for ${event.name} started`, event.correlationId);\r\n this.eventsByCorrelationId.set(event.correlationId, { ...event });\r\n this.eventStack.set(event.correlationId, []);\r\n }\r\n }\r\n getQueueInfo(correlationId) {\r\n const queueMeasurementForCorrelationId = this.queueMeasurements.get(correlationId);\r\n if (!queueMeasurementForCorrelationId) {\r\n this.logger.trace(`PerformanceClient: no queue measurements found for for correlationId: ${correlationId}`);\r\n }\r\n let totalQueueTime = 0;\r\n let totalQueueCount = 0;\r\n let manuallyCompletedCount = 0;\r\n queueMeasurementForCorrelationId?.forEach((measurement) => {\r\n totalQueueTime += measurement.queueTime;\r\n totalQueueCount++;\r\n manuallyCompletedCount += measurement.manuallyCompleted ? 1 : 0;\r\n });\r\n return {\r\n totalQueueTime,\r\n totalQueueCount,\r\n manuallyCompletedCount,\r\n };\r\n }\r\n /**\r\n * Removes measurements and aux data for a given correlation id.\r\n *\r\n * @param {string} correlationId\r\n */\r\n discardMeasurements(correlationId) {\r\n this.logger.trace(\"PerformanceClient: Performance measurements discarded\", correlationId);\r\n this.eventsByCorrelationId.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: QueueMeasurements discarded\", correlationId);\r\n this.queueMeasurements.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Pre-queue times discarded\", correlationId);\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Event stack discarded\", correlationId);\r\n this.eventStack.delete(correlationId);\r\n }\r\n /**\r\n * Registers a callback function to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n addPerformanceCallback(callback) {\r\n for (const [id, cb] of this.callbacks) {\r\n if (cb.toString() === callback.toString()) {\r\n this.logger.warning(`PerformanceClient: Performance callback is already registered with id: ${id}`);\r\n return id;\r\n }\r\n }\r\n const callbackId = this.generateId();\r\n this.callbacks.set(callbackId, callback);\r\n this.logger.verbose(`PerformanceClient: Performance callback registered with id: ${callbackId}`);\r\n return callbackId;\r\n }\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n removePerformanceCallback(callbackId) {\r\n const result = this.callbacks.delete(callbackId);\r\n if (result) {\r\n this.logger.verbose(`PerformanceClient: Performance callback ${callbackId} removed.`);\r\n }\r\n else {\r\n this.logger.verbose(`PerformanceClient: Performance callback ${callbackId} not removed.`);\r\n }\r\n return result;\r\n }\r\n /**\r\n * Emits events to all registered callbacks.\r\n *\r\n * @param {PerformanceEvent[]} events\r\n * @param {?string} [correlationId]\r\n */\r\n emitEvents(events, correlationId) {\r\n this.logger.verbose(\"PerformanceClient: Emitting performance events\", correlationId);\r\n this.callbacks.forEach((callback, callbackId) => {\r\n this.logger.trace(`PerformanceClient: Emitting event to callback ${callbackId}`, correlationId);\r\n callback.apply(null, [events]);\r\n });\r\n }\r\n /**\r\n * Enforce truncation of integral fields in performance event.\r\n * @param {PerformanceEvent} event performance event to update.\r\n */\r\n truncateIntegralFields(event) {\r\n this.intFields.forEach((key) => {\r\n if (key in event && typeof event[key] === \"number\") {\r\n event[key] = Math.floor(event[key]);\r\n }\r\n });\r\n }\r\n /**\r\n * Returns event duration in milliseconds\r\n * @param startTimeMs {number}\r\n * @returns {number}\r\n */\r\n getDurationMs(startTimeMs) {\r\n const durationMs = Date.now() - startTimeMs;\r\n // Handle clock skew\r\n return durationMs < 0 ? durationMs : 0;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst pkceNotCreated = \"pkce_not_created\";\r\nconst cryptoNonExistent = \"crypto_nonexistent\";\r\nconst emptyNavigateUri = \"empty_navigate_uri\";\r\nconst hashEmptyError = \"hash_empty_error\";\r\nconst noStateInHash = \"no_state_in_hash\";\r\nconst hashDoesNotContainKnownProperties = \"hash_does_not_contain_known_properties\";\r\nconst unableToParseState = \"unable_to_parse_state\";\r\nconst stateInteractionTypeMismatch = \"state_interaction_type_mismatch\";\r\nconst interactionInProgress = \"interaction_in_progress\";\r\nconst popupWindowError = \"popup_window_error\";\r\nconst emptyWindowError = \"empty_window_error\";\r\nconst userCancelled = \"user_cancelled\";\r\nconst monitorPopupTimeout = \"monitor_popup_timeout\";\r\nconst monitorWindowTimeout = \"monitor_window_timeout\";\r\nconst redirectInIframe = \"redirect_in_iframe\";\r\nconst blockIframeReload = \"block_iframe_reload\";\r\nconst blockNestedPopups = \"block_nested_popups\";\r\nconst iframeClosedPrematurely = \"iframe_closed_prematurely\";\r\nconst silentLogoutUnsupported = \"silent_logout_unsupported\";\r\nconst noAccountError = \"no_account_error\";\r\nconst silentPromptValueError = \"silent_prompt_value_error\";\r\nconst noTokenRequestCacheError = \"no_token_request_cache_error\";\r\nconst unableToParseTokenRequestCacheError = \"unable_to_parse_token_request_cache_error\";\r\nconst noCachedAuthorityError = \"no_cached_authority_error\";\r\nconst authRequestNotSetError = \"auth_request_not_set_error\";\r\nconst invalidCacheType = \"invalid_cache_type\";\r\nconst nonBrowserEnvironment = \"non_browser_environment\";\r\nconst databaseNotOpen = \"database_not_open\";\r\nconst noNetworkConnectivity = \"no_network_connectivity\";\r\nconst postRequestFailed = \"post_request_failed\";\r\nconst getRequestFailed = \"get_request_failed\";\r\nconst failedToParseResponse = \"failed_to_parse_response\";\r\nconst unableToLoadToken = \"unable_to_load_token\";\r\nconst cryptoKeyNotFound = \"crypto_key_not_found\";\r\nconst authCodeRequired = \"auth_code_required\";\r\nconst authCodeOrNativeAccountIdRequired = \"auth_code_or_nativeAccountId_required\";\r\nconst spaCodeAndNativeAccountIdPresent = \"spa_code_and_nativeAccountId_present\";\r\nconst databaseUnavailable = \"database_unavailable\";\r\nconst unableToAcquireTokenFromNativePlatform = \"unable_to_acquire_token_from_native_platform\";\r\nconst nativeHandshakeTimeout = \"native_handshake_timeout\";\r\nconst nativeExtensionNotInstalled = \"native_extension_not_installed\";\r\nconst nativeConnectionNotEstablished = \"native_connection_not_established\";\r\nconst uninitializedPublicClientApplication = \"uninitialized_public_client_application\";\r\nconst nativePromptNotSupported = \"native_prompt_not_supported\";\r\nconst invalidBase64String = \"invalid_base64_string\";\r\nconst invalidPopTokenRequest = \"invalid_pop_token_request\";\r\nconst failedToBuildHeaders = \"failed_to_build_headers\";\r\nconst failedToParseHeaders = \"failed_to_parse_headers\";\n\nvar BrowserAuthErrorCodes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n authCodeOrNativeAccountIdRequired: authCodeOrNativeAccountIdRequired,\n authCodeRequired: authCodeRequired,\n authRequestNotSetError: authRequestNotSetError,\n blockIframeReload: blockIframeReload,\n blockNestedPopups: blockNestedPopups,\n cryptoKeyNotFound: cryptoKeyNotFound,\n cryptoNonExistent: cryptoNonExistent,\n databaseNotOpen: databaseNotOpen,\n databaseUnavailable: databaseUnavailable,\n emptyNavigateUri: emptyNavigateUri,\n emptyWindowError: emptyWindowError,\n failedToBuildHeaders: failedToBuildHeaders,\n failedToParseHeaders: failedToParseHeaders,\n failedToParseResponse: failedToParseResponse,\n getRequestFailed: getRequestFailed,\n hashDoesNotContainKnownProperties: hashDoesNotContainKnownProperties,\n hashEmptyError: hashEmptyError,\n iframeClosedPrematurely: iframeClosedPrematurely,\n interactionInProgress: interactionInProgress,\n invalidBase64String: invalidBase64String,\n invalidCacheType: invalidCacheType,\n invalidPopTokenRequest: invalidPopTokenRequest,\n monitorPopupTimeout: monitorPopupTimeout,\n monitorWindowTimeout: monitorWindowTimeout,\n nativeConnectionNotEstablished: nativeConnectionNotEstablished,\n nativeExtensionNotInstalled: nativeExtensionNotInstalled,\n nativeHandshakeTimeout: nativeHandshakeTimeout,\n nativePromptNotSupported: nativePromptNotSupported,\n noAccountError: noAccountError,\n noCachedAuthorityError: noCachedAuthorityError,\n noNetworkConnectivity: noNetworkConnectivity,\n noStateInHash: noStateInHash,\n noTokenRequestCacheError: noTokenRequestCacheError,\n nonBrowserEnvironment: nonBrowserEnvironment,\n pkceNotCreated: pkceNotCreated,\n popupWindowError: popupWindowError,\n postRequestFailed: postRequestFailed,\n redirectInIframe: redirectInIframe,\n silentLogoutUnsupported: silentLogoutUnsupported,\n silentPromptValueError: silentPromptValueError,\n spaCodeAndNativeAccountIdPresent: spaCodeAndNativeAccountIdPresent,\n stateInteractionTypeMismatch: stateInteractionTypeMismatch,\n unableToAcquireTokenFromNativePlatform: unableToAcquireTokenFromNativePlatform,\n unableToLoadToken: unableToLoadToken,\n unableToParseState: unableToParseState,\n unableToParseTokenRequestCacheError: unableToParseTokenRequestCacheError,\n uninitializedPublicClientApplication: uninitializedPublicClientApplication,\n userCancelled: userCancelled\n});\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst ErrorLink = \"For more visit: aka.ms/msaljs/browser-errors\";\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nconst BrowserAuthErrorMessages = {\r\n [pkceNotCreated]: \"The PKCE code challenge and verifier could not be generated.\",\r\n [cryptoNonExistent]: \"The crypto object or function is not available.\",\r\n [emptyNavigateUri]: \"Navigation URI is empty. Please check stack trace for more info.\",\r\n [hashEmptyError]: `Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${ErrorLink}`,\r\n [noStateInHash]: \"Hash does not contain state. Please verify that the request originated from msal.\",\r\n [hashDoesNotContainKnownProperties]: `Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${ErrorLink}`,\r\n [unableToParseState]: \"Unable to parse state. Please verify that the request originated from msal.\",\r\n [stateInteractionTypeMismatch]: \"Hash contains state but the interaction type does not match the caller.\",\r\n [interactionInProgress]: `Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${ErrorLink}`,\r\n [popupWindowError]: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\",\r\n [emptyWindowError]: \"window.open returned null or undefined window object.\",\r\n [userCancelled]: \"User cancelled the flow.\",\r\n [monitorPopupTimeout]: `Token acquisition in popup failed due to timeout. ${ErrorLink}`,\r\n [monitorWindowTimeout]: `Token acquisition in iframe failed due to timeout. ${ErrorLink}`,\r\n [redirectInIframe]: \"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\",\r\n [blockIframeReload]: `Request was blocked inside an iframe because MSAL detected an authentication response. ${ErrorLink}`,\r\n [blockNestedPopups]: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\",\r\n [iframeClosedPrematurely]: \"The iframe being monitored was closed prematurely.\",\r\n [silentLogoutUnsupported]: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\",\r\n [noAccountError]: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\",\r\n [silentPromptValueError]: \"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.\",\r\n [noTokenRequestCacheError]: \"No token request found in cache.\",\r\n [unableToParseTokenRequestCacheError]: \"The cached token request could not be parsed.\",\r\n [noCachedAuthorityError]: \"No cached authority found.\",\r\n [authRequestNotSetError]: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\",\r\n [invalidCacheType]: \"Invalid cache type\",\r\n [nonBrowserEnvironment]: \"Login and token requests are not supported in non-browser environments.\",\r\n [databaseNotOpen]: \"Database is not open!\",\r\n [noNetworkConnectivity]: \"No network connectivity. Check your internet connection.\",\r\n [postRequestFailed]: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\",\r\n [getRequestFailed]: \"Network request failed. Please check the network trace to determine root cause.\",\r\n [failedToParseResponse]: \"Failed to parse network response. Check network trace.\",\r\n [unableToLoadToken]: \"Error loading token to cache.\",\r\n [cryptoKeyNotFound]: \"Cryptographic Key or Keypair not found in browser storage.\",\r\n [authCodeRequired]: \"An authorization code must be provided (as the `code` property on the request) to this flow.\",\r\n [authCodeOrNativeAccountIdRequired]: \"An authorization code or nativeAccountId must be provided to this flow.\",\r\n [spaCodeAndNativeAccountIdPresent]: \"Request cannot contain both spa code and native account id.\",\r\n [databaseUnavailable]: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\",\r\n [unableToAcquireTokenFromNativePlatform]: `Unable to acquire token from native platform. ${ErrorLink}`,\r\n [nativeHandshakeTimeout]: \"Timed out while attempting to establish connection to browser extension\",\r\n [nativeExtensionNotInstalled]: \"Native extension is not installed. If you think this is a mistake call the initialize function.\",\r\n [nativeConnectionNotEstablished]: `Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${ErrorLink}`,\r\n [uninitializedPublicClientApplication]: `You must call and await the initialize function before attempting to call any other MSAL API. ${ErrorLink}`,\r\n [nativePromptNotSupported]: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\",\r\n [invalidBase64String]: \"Invalid base64 encoded string.\",\r\n [invalidPopTokenRequest]: \"Invalid PoP token request. The request should not have both a popKid value and signPopToken set to true.\",\r\n [failedToBuildHeaders]: \"Failed to build request headers object.\",\r\n [failedToParseHeaders]: \"Failed to parse response headers\",\r\n};\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n * @deprecated Use exported BrowserAuthErrorCodes instead.\r\n * In your app you can do :\r\n * ```\r\n * import { BrowserAuthErrorCodes } from \"@azure/msal-browser\";\r\n * ```\r\n */\r\nconst BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: pkceNotCreated,\r\n desc: BrowserAuthErrorMessages[pkceNotCreated],\r\n },\r\n cryptoDoesNotExist: {\r\n code: cryptoNonExistent,\r\n desc: BrowserAuthErrorMessages[cryptoNonExistent],\r\n },\r\n emptyNavigateUriError: {\r\n code: emptyNavigateUri,\r\n desc: BrowserAuthErrorMessages[emptyNavigateUri],\r\n },\r\n hashEmptyError: {\r\n code: hashEmptyError,\r\n desc: BrowserAuthErrorMessages[hashEmptyError],\r\n },\r\n hashDoesNotContainStateError: {\r\n code: noStateInHash,\r\n desc: BrowserAuthErrorMessages[noStateInHash],\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: hashDoesNotContainKnownProperties,\r\n desc: BrowserAuthErrorMessages[hashDoesNotContainKnownProperties],\r\n },\r\n unableToParseStateError: {\r\n code: unableToParseState,\r\n desc: BrowserAuthErrorMessages[unableToParseState],\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: stateInteractionTypeMismatch,\r\n desc: BrowserAuthErrorMessages[stateInteractionTypeMismatch],\r\n },\r\n interactionInProgress: {\r\n code: interactionInProgress,\r\n desc: BrowserAuthErrorMessages[interactionInProgress],\r\n },\r\n popupWindowError: {\r\n code: popupWindowError,\r\n desc: BrowserAuthErrorMessages[popupWindowError],\r\n },\r\n emptyWindowError: {\r\n code: emptyWindowError,\r\n desc: BrowserAuthErrorMessages[emptyWindowError],\r\n },\r\n userCancelledError: {\r\n code: userCancelled,\r\n desc: BrowserAuthErrorMessages[userCancelled],\r\n },\r\n monitorPopupTimeoutError: {\r\n code: monitorPopupTimeout,\r\n desc: BrowserAuthErrorMessages[monitorPopupTimeout],\r\n },\r\n monitorIframeTimeoutError: {\r\n code: monitorWindowTimeout,\r\n desc: BrowserAuthErrorMessages[monitorWindowTimeout],\r\n },\r\n redirectInIframeError: {\r\n code: redirectInIframe,\r\n desc: BrowserAuthErrorMessages[redirectInIframe],\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: blockIframeReload,\r\n desc: BrowserAuthErrorMessages[blockIframeReload],\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: blockNestedPopups,\r\n desc: BrowserAuthErrorMessages[blockNestedPopups],\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: iframeClosedPrematurely,\r\n desc: BrowserAuthErrorMessages[iframeClosedPrematurely],\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: silentLogoutUnsupported,\r\n desc: BrowserAuthErrorMessages[silentLogoutUnsupported],\r\n },\r\n noAccountError: {\r\n code: noAccountError,\r\n desc: BrowserAuthErrorMessages[noAccountError],\r\n },\r\n silentPromptValueError: {\r\n code: silentPromptValueError,\r\n desc: BrowserAuthErrorMessages[silentPromptValueError],\r\n },\r\n noTokenRequestCacheError: {\r\n code: noTokenRequestCacheError,\r\n desc: BrowserAuthErrorMessages[noTokenRequestCacheError],\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: unableToParseTokenRequestCacheError,\r\n desc: BrowserAuthErrorMessages[unableToParseTokenRequestCacheError],\r\n },\r\n noCachedAuthorityError: {\r\n code: noCachedAuthorityError,\r\n desc: BrowserAuthErrorMessages[noCachedAuthorityError],\r\n },\r\n authRequestNotSet: {\r\n code: authRequestNotSetError,\r\n desc: BrowserAuthErrorMessages[authRequestNotSetError],\r\n },\r\n invalidCacheType: {\r\n code: invalidCacheType,\r\n desc: BrowserAuthErrorMessages[invalidCacheType],\r\n },\r\n notInBrowserEnvironment: {\r\n code: nonBrowserEnvironment,\r\n desc: BrowserAuthErrorMessages[nonBrowserEnvironment],\r\n },\r\n databaseNotOpen: {\r\n code: databaseNotOpen,\r\n desc: BrowserAuthErrorMessages[databaseNotOpen],\r\n },\r\n noNetworkConnectivity: {\r\n code: noNetworkConnectivity,\r\n desc: BrowserAuthErrorMessages[noNetworkConnectivity],\r\n },\r\n postRequestFailed: {\r\n code: postRequestFailed,\r\n desc: BrowserAuthErrorMessages[postRequestFailed],\r\n },\r\n getRequestFailed: {\r\n code: getRequestFailed,\r\n desc: BrowserAuthErrorMessages[getRequestFailed],\r\n },\r\n failedToParseNetworkResponse: {\r\n code: failedToParseResponse,\r\n desc: BrowserAuthErrorMessages[failedToParseResponse],\r\n },\r\n unableToLoadTokenError: {\r\n code: unableToLoadToken,\r\n desc: BrowserAuthErrorMessages[unableToLoadToken],\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: cryptoKeyNotFound,\r\n desc: BrowserAuthErrorMessages[cryptoKeyNotFound],\r\n },\r\n authCodeRequired: {\r\n code: authCodeRequired,\r\n desc: BrowserAuthErrorMessages[authCodeRequired],\r\n },\r\n authCodeOrNativeAccountRequired: {\r\n code: authCodeOrNativeAccountIdRequired,\r\n desc: BrowserAuthErrorMessages[authCodeOrNativeAccountIdRequired],\r\n },\r\n spaCodeAndNativeAccountPresent: {\r\n code: spaCodeAndNativeAccountIdPresent,\r\n desc: BrowserAuthErrorMessages[spaCodeAndNativeAccountIdPresent],\r\n },\r\n databaseUnavailable: {\r\n code: databaseUnavailable,\r\n desc: BrowserAuthErrorMessages[databaseUnavailable],\r\n },\r\n unableToAcquireTokenFromNativePlatform: {\r\n code: unableToAcquireTokenFromNativePlatform,\r\n desc: BrowserAuthErrorMessages[unableToAcquireTokenFromNativePlatform],\r\n },\r\n nativeHandshakeTimeout: {\r\n code: nativeHandshakeTimeout,\r\n desc: BrowserAuthErrorMessages[nativeHandshakeTimeout],\r\n },\r\n nativeExtensionNotInstalled: {\r\n code: nativeExtensionNotInstalled,\r\n desc: BrowserAuthErrorMessages[nativeExtensionNotInstalled],\r\n },\r\n nativeConnectionNotEstablished: {\r\n code: nativeConnectionNotEstablished,\r\n desc: BrowserAuthErrorMessages[nativeConnectionNotEstablished],\r\n },\r\n uninitializedPublicClientApplication: {\r\n code: uninitializedPublicClientApplication,\r\n desc: BrowserAuthErrorMessages[uninitializedPublicClientApplication],\r\n },\r\n nativePromptNotSupported: {\r\n code: nativePromptNotSupported,\r\n desc: BrowserAuthErrorMessages[nativePromptNotSupported],\r\n },\r\n invalidBase64StringError: {\r\n code: invalidBase64String,\r\n desc: BrowserAuthErrorMessages[invalidBase64String],\r\n },\r\n invalidPopTokenRequest: {\r\n code: invalidPopTokenRequest,\r\n desc: BrowserAuthErrorMessages[invalidPopTokenRequest],\r\n },\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nclass BrowserAuthError extends AuthError {\r\n constructor(errorCode, subError) {\r\n super(errorCode, BrowserAuthErrorMessages[errorCode], subError);\r\n Object.setPrototypeOf(this, BrowserAuthError.prototype);\r\n this.name = \"BrowserAuthError\";\r\n }\r\n}\r\nfunction createBrowserAuthError(errorCode, subError) {\r\n return new BrowserAuthError(errorCode, subError);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nconst BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n DEFAULT_POLL_INTERVAL_MS: 30,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nconst NativeConstants = {\r\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\r\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\r\n MATS_TELEMETRY: \"MATS\",\r\n};\r\nconst NativeExtensionMethod = {\r\n HandshakeRequest: \"Handshake\",\r\n HandshakeResponse: \"HandshakeResponse\",\r\n GetToken: \"GetToken\",\r\n Response: \"Response\",\r\n};\r\nconst BrowserCacheLocation = {\r\n LocalStorage: \"localStorage\",\r\n SessionStorage: \"sessionStorage\",\r\n MemoryStorage: \"memoryStorage\",\r\n};\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nconst HTTP_REQUEST_TYPE = {\r\n GET: \"GET\",\r\n POST: \"POST\",\r\n};\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nconst TemporaryCacheKeys = {\r\n AUTHORITY: \"authority\",\r\n ACQUIRE_TOKEN_ACCOUNT: \"acquireToken.account\",\r\n SESSION_STATE: \"session.state\",\r\n REQUEST_STATE: \"request.state\",\r\n NONCE_IDTOKEN: \"nonce.id_token\",\r\n ORIGIN_URI: \"request.origin\",\r\n RENEW_STATUS: \"token.renew.status\",\r\n URL_HASH: \"urlHash\",\r\n REQUEST_PARAMS: \"request.params\",\r\n SCOPES: \"scopes\",\r\n INTERACTION_STATUS_KEY: \"interaction.status\",\r\n CCS_CREDENTIAL: \"ccs.credential\",\r\n CORRELATION_ID: \"request.correlationId\",\r\n NATIVE_REQUEST: \"request.native\",\r\n REDIRECT_CONTEXT: \"request.redirect.context\",\r\n};\r\nconst StaticCacheKeys = {\r\n ACCOUNT_KEYS: \"msal.account.keys\",\r\n TOKEN_KEYS: \"msal.token.keys\",\r\n};\r\n/**\r\n * Cache keys stored in-memory\r\n */\r\nconst InMemoryCacheKeys = {\r\n WRAPPER_SKU: \"wrapper.sku\",\r\n WRAPPER_VER: \"wrapper.version\",\r\n};\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nconst ApiId = {\r\n acquireTokenRedirect: 861,\r\n acquireTokenPopup: 862,\r\n ssoSilent: 863,\r\n acquireTokenSilent_authCode: 864,\r\n handleRedirectPromise: 865,\r\n acquireTokenByCode: 866,\r\n acquireTokenSilent_silentFlow: 61,\r\n logout: 961,\r\n logoutPopup: 962,\r\n};\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nexports.InteractionType = void 0;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n InteractionType[\"None\"] = \"none\";\r\n})(exports.InteractionType || (exports.InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nconst InteractionStatus = {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n Startup: \"startup\",\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n Login: \"login\",\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n Logout: \"logout\",\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n AcquireToken: \"acquireToken\",\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n SsoSilent: \"ssoSilent\",\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n HandleRedirect: \"handleRedirect\",\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n None: \"none\",\r\n};\r\nconst DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES,\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nconst KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nconst WrapperSKU = {\r\n React: \"@azure/msal-react\",\r\n Angular: \"@azure/msal-angular\",\r\n};\r\n// DatabaseStorage Constants\r\nconst DB_NAME = \"msal.db\";\r\nconst DB_VERSION = 1;\r\nconst DB_TABLE_NAME = `${DB_NAME}.keys`;\r\nconst CacheLookupPolicy = {\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired\r\n * or cannot be found the refresh token will be used to acquire a new one. Finally, if the refresh token\r\n * is expired acquireTokenSilent will attempt to acquire new access and refresh tokens.\r\n */\r\n Default: 0,\r\n /*\r\n * acquireTokenSilent will only look for access tokens in the cache. It will not attempt to renew access or\r\n * refresh tokens.\r\n */\r\n AccessToken: 1,\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired or\r\n * cannot be found, the refresh token will be used to acquire a new one. If the refresh token is expired, it\r\n * will not be renewed and acquireTokenSilent will fail.\r\n */\r\n AccessTokenAndRefreshToken: 2,\r\n /*\r\n * acquireTokenSilent will not attempt to retrieve access tokens from the cache and will instead attempt to\r\n * exchange the cached refresh token for a new access token. If the refresh token is expired, it will not be\r\n * renewed and acquireTokenSilent will fail.\r\n */\r\n RefreshToken: 3,\r\n /*\r\n * acquireTokenSilent will not look in the cache for the access token. It will go directly to network with the\r\n * cached refresh token. If the refresh token is expired an attempt will be made to renew it. This is equivalent to\r\n * setting \"forceRefresh: true\".\r\n */\r\n RefreshTokenAndNetwork: 4,\r\n /*\r\n * acquireTokenSilent will attempt to renew both access and refresh tokens. It will not look in the cache. This will\r\n * always fail if 3rd party cookies are blocked by the browser.\r\n */\r\n Skip: 5,\r\n};\r\nconst iFrameRenewalPolicies = [\r\n CacheLookupPolicy.Default,\r\n CacheLookupPolicy.Skip,\r\n CacheLookupPolicy.RefreshTokenAndNetwork,\r\n];\r\nconst LOG_LEVEL_CACHE_KEY = \"msal.browser.log.level\";\r\nconst LOG_PII_CACHE_KEY = \"msal.browser.log.pii\";\r\nconst BROWSER_PERF_ENABLED_KEY = \"msal.browser.performance.enabled\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\n/**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\nfunction urlEncode(input) {\r\n return encodeURIComponent(base64Encode(input)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n}\r\n/**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\nfunction urlEncodeArr(inputArr) {\r\n return base64EncArr(inputArr)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n}\r\n/**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\nfunction base64Encode(input) {\r\n return base64EncArr(new TextEncoder().encode(input));\r\n}\r\n/**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\nfunction base64EncArr(aBytes) {\r\n const binString = Array.from(aBytes, (x) => String.fromCodePoint(x)).join(\"\");\r\n return btoa(binString);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\r\n */\r\n/**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\nfunction base64Decode(input) {\r\n return new TextDecoder().decode(base64DecToArr(input));\r\n}\r\n/**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n */\r\nfunction base64DecToArr(base64String) {\r\n let encodedString = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw createBrowserAuthError(invalidBase64String);\r\n }\r\n const binString = atob(encodedString);\r\n return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This file defines functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// Algorithms\r\nconst PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\nconst AES_GCM = \"AES-GCM\";\r\nconst HKDF = \"HKDF\";\r\n// SHA-256 hashing algorithm\r\nconst S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nconst MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nconst PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n// UUID hex digits\r\nconst UUID_CHARS = \"0123456789abcdef\";\r\n// Array to store UINT32 random value\r\nconst UINT32_ARR = new Uint32Array(1);\r\n// Key Format\r\nconst RAW = \"raw\";\r\n// Key Usages\r\nconst ENCRYPT = \"encrypt\";\r\nconst DECRYPT = \"decrypt\";\r\nconst DERIVE_KEY = \"deriveKey\";\r\n// Suberror\r\nconst SUBTLE_SUBERROR = \"crypto_subtle_undefined\";\r\nconst keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT,\r\n};\r\n/**\r\n * Check whether browser crypto is available.\r\n */\r\nfunction validateCryptoAvailable(skipValidateSubtleCrypto) {\r\n if (!window) {\r\n throw createBrowserAuthError(nonBrowserEnvironment);\r\n }\r\n if (!window.crypto) {\r\n throw createBrowserAuthError(cryptoNonExistent);\r\n }\r\n if (!skipValidateSubtleCrypto && !window.crypto.subtle) {\r\n throw createBrowserAuthError(cryptoNonExistent, SUBTLE_SUBERROR);\r\n }\r\n}\r\n/**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString {string} data string\r\n * @param performanceClient {?IPerformanceClient}\r\n * @param correlationId {?string} correlation id\r\n */\r\nasync function sha256Digest(dataString, performanceClient, correlationId) {\r\n performanceClient?.addQueueMeasurement(PerformanceEvents.Sha256Digest, correlationId);\r\n const encoder = new TextEncoder();\r\n const data = encoder.encode(dataString);\r\n return window.crypto.subtle.digest(S256_HASH_ALG, data);\r\n}\r\n/**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\nfunction getRandomValues(dataBuffer) {\r\n return window.crypto.getRandomValues(dataBuffer);\r\n}\r\n/**\r\n * Returns random Uint32 value.\r\n * @returns {number}\r\n */\r\nfunction getRandomUint32() {\r\n window.crypto.getRandomValues(UINT32_ARR);\r\n return UINT32_ARR[0];\r\n}\r\n/**\r\n * Creates a UUID v7 from the current timestamp.\r\n * Implementation relies on the system clock to guarantee increasing order of generated identifiers.\r\n * @returns {number}\r\n */\r\nfunction createNewGuid() {\r\n const currentTimestamp = Date.now();\r\n const baseRand = getRandomUint32() * 0x400 + (getRandomUint32() & 0x3ff);\r\n // Result byte array\r\n const bytes = new Uint8Array(16);\r\n // A 12-bit `rand_a` field value\r\n const randA = Math.trunc(baseRand / 2 ** 30);\r\n // The higher 30 bits of 62-bit `rand_b` field value\r\n const randBHi = baseRand & (2 ** 30 - 1);\r\n // The lower 32 bits of 62-bit `rand_b` field value\r\n const randBLo = getRandomUint32();\r\n bytes[0] = currentTimestamp / 2 ** 40;\r\n bytes[1] = currentTimestamp / 2 ** 32;\r\n bytes[2] = currentTimestamp / 2 ** 24;\r\n bytes[3] = currentTimestamp / 2 ** 16;\r\n bytes[4] = currentTimestamp / 2 ** 8;\r\n bytes[5] = currentTimestamp;\r\n bytes[6] = 0x70 | (randA >>> 8);\r\n bytes[7] = randA;\r\n bytes[8] = 0x80 | (randBHi >>> 24);\r\n bytes[9] = randBHi >>> 16;\r\n bytes[10] = randBHi >>> 8;\r\n bytes[11] = randBHi;\r\n bytes[12] = randBLo >>> 24;\r\n bytes[13] = randBLo >>> 16;\r\n bytes[14] = randBLo >>> 8;\r\n bytes[15] = randBLo;\r\n let text = \"\";\r\n for (let i = 0; i < bytes.length; i++) {\r\n text += UUID_CHARS.charAt(bytes[i] >>> 4);\r\n text += UUID_CHARS.charAt(bytes[i] & 0xf);\r\n if (i === 3 || i === 5 || i === 7 || i === 9) {\r\n text += \"-\";\r\n }\r\n }\r\n return text;\r\n}\r\n/**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\nasync function generateKeyPair(extractable, usages) {\r\n return window.crypto.subtle.generateKey(keygenAlgorithmOptions, extractable, usages);\r\n}\r\n/**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n */\r\nasync function exportJwk(key) {\r\n return window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key);\r\n}\r\n/**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param extractable\r\n * @param usages\r\n */\r\nasync function importJwk(key, extractable, usages) {\r\n return window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, keygenAlgorithmOptions, extractable, usages);\r\n}\r\n/**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\nasync function sign(key, data) {\r\n return window.crypto.subtle.sign(keygenAlgorithmOptions, key, data);\r\n}\r\n/**\r\n * Generates symmetric base encryption key. This may be stored as all encryption/decryption keys will be derived from this one.\r\n */\r\nasync function generateBaseKey() {\r\n const key = await window.crypto.subtle.generateKey({\r\n name: AES_GCM,\r\n length: 256,\r\n }, true, [ENCRYPT, DECRYPT]);\r\n return window.crypto.subtle.exportKey(RAW, key);\r\n}\r\n/**\r\n * Returns the raw key to be passed into the key derivation function\r\n * @param baseKey\r\n * @returns\r\n */\r\nasync function generateHKDF(baseKey) {\r\n return window.crypto.subtle.importKey(RAW, baseKey, HKDF, false, [\r\n DERIVE_KEY,\r\n ]);\r\n}\r\n/**\r\n * Given a base key and a nonce generates a derived key to be used in encryption and decryption.\r\n * Note: every time we encrypt a new key is derived\r\n * @param baseKey\r\n * @param nonce\r\n * @returns\r\n */\r\nasync function deriveKey(baseKey, nonce, context) {\r\n return window.crypto.subtle.deriveKey({\r\n name: HKDF,\r\n salt: nonce,\r\n hash: S256_HASH_ALG,\r\n info: new TextEncoder().encode(context),\r\n }, baseKey, { name: AES_GCM, length: 256 }, false, [ENCRYPT, DECRYPT]);\r\n}\r\n/**\r\n * Encrypt the given data given a base key. Returns encrypted data and a nonce that must be provided during decryption\r\n * @param key\r\n * @param rawData\r\n */\r\nasync function encrypt(baseKey, rawData, context) {\r\n const encodedData = new TextEncoder().encode(rawData);\r\n // The nonce must never be reused with a given key.\r\n const nonce = window.crypto.getRandomValues(new Uint8Array(16));\r\n const derivedKey = await deriveKey(baseKey, nonce, context);\r\n const encryptedData = await window.crypto.subtle.encrypt({\r\n name: AES_GCM,\r\n iv: new Uint8Array(12), // New key is derived for every encrypt so we don't need a new nonce\r\n }, derivedKey, encodedData);\r\n return {\r\n data: urlEncodeArr(new Uint8Array(encryptedData)),\r\n nonce: urlEncodeArr(nonce),\r\n };\r\n}\r\n/**\r\n * Decrypt data with the given key and nonce\r\n * @param key\r\n * @param nonce\r\n * @param encryptedData\r\n * @returns\r\n */\r\nasync function decrypt(baseKey, nonce, context, encryptedData) {\r\n const encodedData = base64DecToArr(encryptedData);\r\n const derivedKey = await deriveKey(baseKey, base64DecToArr(nonce), context);\r\n const decryptedData = await window.crypto.subtle.decrypt({\r\n name: AES_GCM,\r\n iv: new Uint8Array(12), // New key is derived for every encrypt so we don't need a new nonce\r\n }, derivedKey, encodedData);\r\n return new TextDecoder().decode(decryptedData);\r\n}\r\n/**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\nasync function hashString(plainText) {\r\n const hashBuffer = await sha256Digest(plainText);\r\n const hashBytes = new Uint8Array(hashBuffer);\r\n return urlEncodeArr(hashBytes);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst storageNotSupported = \"storage_not_supported\";\r\nconst stubbedPublicClientApplicationCalled = \"stubbed_public_client_application_called\";\r\nconst inMemRedirectUnavailable = \"in_mem_redirect_unavailable\";\n\nvar BrowserConfigurationAuthErrorCodes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n inMemRedirectUnavailable: inMemRedirectUnavailable,\n storageNotSupported: storageNotSupported,\n stubbedPublicClientApplicationCalled: stubbedPublicClientApplicationCalled\n});\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst BrowserConfigurationAuthErrorMessages = {\r\n [storageNotSupported]: \"Given storage configuration option was not supported.\",\r\n [stubbedPublicClientApplicationCalled]: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\",\r\n [inMemRedirectUnavailable]: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\",\r\n};\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n * @deprecated Use BrowserAuthErrorCodes instead\r\n */\r\nconst BrowserConfigurationAuthErrorMessage = {\r\n storageNotSupportedError: {\r\n code: storageNotSupported,\r\n desc: BrowserConfigurationAuthErrorMessages[storageNotSupported],\r\n },\r\n stubPcaInstanceCalled: {\r\n code: stubbedPublicClientApplicationCalled,\r\n desc: BrowserConfigurationAuthErrorMessages[stubbedPublicClientApplicationCalled],\r\n },\r\n inMemRedirectUnavailable: {\r\n code: inMemRedirectUnavailable,\r\n desc: BrowserConfigurationAuthErrorMessages[inMemRedirectUnavailable],\r\n },\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nclass BrowserConfigurationAuthError extends AuthError {\r\n constructor(errorCode, errorMessage) {\r\n super(errorCode, errorMessage);\r\n this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(this, BrowserConfigurationAuthError.prototype);\r\n }\r\n}\r\nfunction createBrowserConfigurationAuthError(errorCode) {\r\n return new BrowserConfigurationAuthError(errorCode, BrowserConfigurationAuthErrorMessages[errorCode]);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Clears hash from window url.\r\n */\r\nfunction clearHash(contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = \"\";\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, \"\", `${contentWindow.location.origin}${contentWindow.location.pathname}${contentWindow.location.search}`);\r\n }\r\n}\r\n/**\r\n * Replaces current hash with hash from provided url\r\n */\r\nfunction replaceHash(url) {\r\n const urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : \"\";\r\n}\r\n/**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\nfunction isInIframe() {\r\n return window.parent !== window;\r\n}\r\n/**\r\n * Returns boolean of whether or not the current window is a popup opened by msal\r\n */\r\nfunction isInPopup() {\r\n return (typeof window !== \"undefined\" &&\r\n !!window.opener &&\r\n window.opener !== window &&\r\n typeof window.name === \"string\" &&\r\n window.name.indexOf(`${BrowserConstants.POPUP_NAME_PREFIX}.`) === 0);\r\n}\r\n// #endregion\r\n/**\r\n * Returns current window URL as redirect uri\r\n */\r\nfunction getCurrentUri() {\r\n return typeof window !== \"undefined\" && window.location\r\n ? window.location.href.split(\"?\")[0].split(\"#\")[0]\r\n : \"\";\r\n}\r\n/**\r\n * Gets the homepage url for the current window location.\r\n */\r\nfunction getHomepage() {\r\n const currentUrl = new UrlString(window.location.href);\r\n const urlComponents = currentUrl.getUrlComponents();\r\n return `${urlComponents.Protocol}//${urlComponents.HostNameAndPort}/`;\r\n}\r\n/**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\nfunction blockReloadInHiddenIframes() {\r\n const isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && isInIframe()) {\r\n throw createBrowserAuthError(blockIframeReload);\r\n }\r\n}\r\n/**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\nfunction blockRedirectInIframe(allowRedirectInIframe) {\r\n if (isInIframe() && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw createBrowserAuthError(redirectInIframe);\r\n }\r\n}\r\n/**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\nfunction blockAcquireTokenInPopups() {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (isInPopup()) {\r\n throw createBrowserAuthError(blockNestedPopups);\r\n }\r\n}\r\n/**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\nfunction blockNonBrowserEnvironment() {\r\n if (typeof window === \"undefined\") {\r\n throw createBrowserAuthError(nonBrowserEnvironment);\r\n }\r\n}\r\n/**\r\n * Throws error if initialize hasn't been called\r\n * @param initialized\r\n */\r\nfunction blockAPICallsBeforeInitialize(initialized) {\r\n if (!initialized) {\r\n throw createBrowserAuthError(uninitializedPublicClientApplication);\r\n }\r\n}\r\n/**\r\n * Helper to validate app environment before making an auth request\r\n * @param initialized\r\n */\r\nfunction preflightCheck$1(initialized) {\r\n // Block request if not in browser environment\r\n blockNonBrowserEnvironment();\r\n // Block auth requests inside a hidden iframe\r\n blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n blockAcquireTokenInPopups();\r\n // Block token acquisition before initialize has been called\r\n blockAPICallsBeforeInitialize(initialized);\r\n}\r\n/**\r\n * Helper to validate app enviornment before making redirect request\r\n * @param initialized\r\n * @param config\r\n */\r\nfunction redirectPreflightCheck(initialized, config) {\r\n preflightCheck$1(initialized);\r\n blockRedirectInIframe(config.system.allowRedirectInIframe);\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !config.cache.storeAuthStateInCookie) {\r\n throw createBrowserConfigurationAuthError(inMemRedirectUnavailable);\r\n }\r\n}\r\n/**\r\n * Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request\r\n * @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com\r\n * @returns\r\n */\r\nfunction preconnect(authority) {\r\n const link = document.createElement(\"link\");\r\n link.rel = \"preconnect\";\r\n link.href = new URL(authority).origin;\r\n link.crossOrigin = \"anonymous\";\r\n document.head.appendChild(link);\r\n // The browser will close connection if not used within a few seconds, remove element from the header after 10s\r\n window.setTimeout(() => {\r\n try {\r\n document.head.removeChild(link);\r\n }\r\n catch { }\r\n }, 10000); // 10s Timeout\r\n}\r\n/**\r\n * Wrapper function that creates a UUID v7 from the current timestamp.\r\n * @returns {string}\r\n */\r\nfunction createGuid() {\r\n return createNewGuid();\r\n}\n\nvar BrowserUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blockAPICallsBeforeInitialize: blockAPICallsBeforeInitialize,\n blockAcquireTokenInPopups: blockAcquireTokenInPopups,\n blockNonBrowserEnvironment: blockNonBrowserEnvironment,\n blockRedirectInIframe: blockRedirectInIframe,\n blockReloadInHiddenIframes: blockReloadInHiddenIframes,\n clearHash: clearHash,\n createGuid: createGuid,\n getCurrentUri: getCurrentUri,\n getHomepage: getHomepage,\n invoke: invoke,\n invokeAsync: invokeAsync,\n isInIframe: isInIframe,\n isInPopup: isInPopup,\n preconnect: preconnect,\n preflightCheck: preflightCheck$1,\n redirectPreflightCheck: redirectPreflightCheck,\n replaceHash: replaceHash\n});\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass NavigationClient {\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n navigateInternal(url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n }\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n navigateExternal(url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n }\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n static defaultNavigateWindow(url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nclass FetchClient {\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n async sendGetRequestAsync(url, options) {\r\n let response;\r\n let responseHeaders = {};\r\n let responseStatus = 0;\r\n const reqHeaders = getFetchHeaders(options);\r\n try {\r\n response = await fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: reqHeaders,\r\n });\r\n }\r\n catch (e) {\r\n throw createBrowserAuthError(window.navigator.onLine\r\n ? getRequestFailed\r\n : noNetworkConnectivity);\r\n }\r\n responseHeaders = getHeaderDict(response.headers);\r\n try {\r\n responseStatus = response.status;\r\n return {\r\n headers: responseHeaders,\r\n body: (await response.json()),\r\n status: responseStatus,\r\n };\r\n }\r\n catch (e) {\r\n throw createNetworkError(createBrowserAuthError(failedToParseResponse), responseStatus, responseHeaders);\r\n }\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n async sendPostRequestAsync(url, options) {\r\n const reqBody = (options && options.body) || \"\";\r\n const reqHeaders = getFetchHeaders(options);\r\n let response;\r\n let responseStatus = 0;\r\n let responseHeaders = {};\r\n try {\r\n response = await fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: reqHeaders,\r\n body: reqBody,\r\n });\r\n }\r\n catch (e) {\r\n throw createBrowserAuthError(window.navigator.onLine\r\n ? postRequestFailed\r\n : noNetworkConnectivity);\r\n }\r\n responseHeaders = getHeaderDict(response.headers);\r\n try {\r\n responseStatus = response.status;\r\n return {\r\n headers: responseHeaders,\r\n body: (await response.json()),\r\n status: responseStatus,\r\n };\r\n }\r\n catch (e) {\r\n throw createNetworkError(createBrowserAuthError(failedToParseResponse), responseStatus, responseHeaders);\r\n }\r\n }\r\n}\r\n/**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\nfunction getFetchHeaders(options) {\r\n try {\r\n const headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n const optionsHeaders = options.headers;\r\n Object.entries(optionsHeaders).forEach(([key, value]) => {\r\n headers.append(key, value);\r\n });\r\n return headers;\r\n }\r\n catch (e) {\r\n throw createBrowserAuthError(failedToBuildHeaders);\r\n }\r\n}\r\n/**\r\n * Returns object representing response headers\r\n * @param headers\r\n * @returns\r\n */\r\nfunction getHeaderDict(headers) {\r\n try {\r\n const headerDict = {};\r\n headers.forEach((value, key) => {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n }\r\n catch (e) {\r\n throw createBrowserAuthError(failedToParseHeaders);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nconst DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nconst DEFAULT_IFRAME_TIMEOUT_MS = 10000;\r\nconst DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\nconst DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration({ auth: userInputAuth, cache: userInputCache, system: userInputSystem, telemetry: userInputTelemetry, }, isBrowserEnvironment) {\r\n // Default auth options for browser\r\n const DEFAULT_AUTH_OPTIONS = {\r\n clientId: Constants.EMPTY_STRING,\r\n authority: `${Constants.DEFAULT_AUTHORITY}`,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: Constants.EMPTY_STRING,\r\n authorityMetadata: Constants.EMPTY_STRING,\r\n redirectUri: typeof window !== \"undefined\" ? getCurrentUri() : \"\",\r\n postLogoutRedirectUri: Constants.EMPTY_STRING,\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD,\r\n OIDCOptions: {\r\n serverResponseType: ServerResponseType.FRAGMENT,\r\n defaultScopes: [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE,\r\n ],\r\n },\r\n azureCloudOptions: {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: Constants.EMPTY_STRING,\r\n },\r\n skipAuthorityMetadataCache: false,\r\n supportsNestedAppAuth: false,\r\n instanceAware: false,\r\n };\r\n // Default cache options for browser\r\n const DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n // Default cache migration to true if cache location is localStorage since entries are preserved across tabs/windows. Migration has little to no benefit in sessionStorage and memoryStorage\r\n cacheMigrationEnabled: userInputCache &&\r\n userInputCache.cacheLocation === BrowserCacheLocation.LocalStorage\r\n ? true\r\n : false,\r\n claimsBasedCachingEnabled: false,\r\n };\r\n // Default logger options for browser\r\n const DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: () => {\r\n // allow users to not set logger call back\r\n },\r\n logLevel: exports.LogLevel.Info,\r\n piiLoggingEnabled: false,\r\n };\r\n // Default system options for browser\r\n const DEFAULT_BROWSER_SYSTEM_OPTIONS = {\r\n ...DEFAULT_SYSTEM_OPTIONS,\r\n loggerOptions: DEFAULT_LOGGER_OPTIONS,\r\n networkClient: isBrowserEnvironment\r\n ? new FetchClient()\r\n : StubbedNetworkModule,\r\n navigationClient: new NavigationClient(),\r\n loadFrameTimeout: 0,\r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: userInputSystem?.loadFrameTimeout || DEFAULT_POPUP_TIMEOUT_MS,\r\n iframeHashTimeout: userInputSystem?.loadFrameTimeout || DEFAULT_IFRAME_TIMEOUT_MS,\r\n navigateFrameWait: 0,\r\n redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS,\r\n asyncPopups: false,\r\n allowRedirectInIframe: false,\r\n allowPlatformBroker: false,\r\n nativeBrokerHandshakeTimeout: userInputSystem?.nativeBrokerHandshakeTimeout ||\r\n DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS,\r\n pollIntervalMilliseconds: BrowserConstants.DEFAULT_POLL_INTERVAL_MS,\r\n };\r\n const providedSystemOptions = {\r\n ...DEFAULT_BROWSER_SYSTEM_OPTIONS,\r\n ...userInputSystem,\r\n loggerOptions: userInputSystem?.loggerOptions || DEFAULT_LOGGER_OPTIONS,\r\n };\r\n const DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: Constants.EMPTY_STRING,\r\n appVersion: Constants.EMPTY_STRING,\r\n },\r\n client: new StubPerformanceClient(),\r\n };\r\n // Throw an error if user has set OIDCOptions without being in OIDC protocol mode\r\n if (userInputAuth?.protocolMode !== ProtocolMode.OIDC &&\r\n userInputAuth?.OIDCOptions) {\r\n const logger = new Logger(providedSystemOptions.loggerOptions);\r\n logger.warning(JSON.stringify(createClientConfigurationError(cannotSetOIDCOptions)));\r\n }\r\n // Throw an error if user has set allowPlatformBroker to true without being in AAD protocol mode\r\n if (userInputAuth?.protocolMode &&\r\n userInputAuth.protocolMode !== ProtocolMode.AAD &&\r\n providedSystemOptions?.allowPlatformBroker) {\r\n throw createClientConfigurationError(cannotAllowPlatformBroker);\r\n }\r\n const overlayedConfig = {\r\n auth: {\r\n ...DEFAULT_AUTH_OPTIONS,\r\n ...userInputAuth,\r\n OIDCOptions: {\r\n ...DEFAULT_AUTH_OPTIONS.OIDCOptions,\r\n ...userInputAuth?.OIDCOptions,\r\n },\r\n },\r\n cache: { ...DEFAULT_CACHE_OPTIONS, ...userInputCache },\r\n system: providedSystemOptions,\r\n telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...userInputTelemetry },\r\n };\r\n return overlayedConfig;\r\n}\n\n/* eslint-disable header/header */\r\nconst name = \"@azure/msal-browser\";\r\nconst version = \"4.0.2\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base class for operating context\r\n * Operating contexts are contexts in which MSAL.js is being run\r\n * More than one operating context may be available at a time\r\n * It's important from a logging and telemetry point of view for us to be able to identify the operating context.\r\n * For example: Some operating contexts will pre-cache tokens impacting performance telemetry\r\n */\r\nclass BaseOperatingContext {\r\n static loggerCallback(level, message) {\r\n switch (level) {\r\n case exports.LogLevel.Error:\r\n // eslint-disable-next-line no-console\r\n console.error(message);\r\n return;\r\n case exports.LogLevel.Info:\r\n // eslint-disable-next-line no-console\r\n console.info(message);\r\n return;\r\n case exports.LogLevel.Verbose:\r\n // eslint-disable-next-line no-console\r\n console.debug(message);\r\n return;\r\n case exports.LogLevel.Warning:\r\n // eslint-disable-next-line no-console\r\n console.warn(message);\r\n return;\r\n default:\r\n // eslint-disable-next-line no-console\r\n console.log(message);\r\n return;\r\n }\r\n }\r\n constructor(config) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.browserEnvironment = typeof window !== \"undefined\";\r\n this.config = buildConfiguration(config, this.browserEnvironment);\r\n let sessionStorage;\r\n try {\r\n sessionStorage = window[BrowserCacheLocation.SessionStorage];\r\n // Mute errors if it's a non-browser environment or cookies are blocked.\r\n }\r\n catch (e) { }\r\n const logLevelKey = sessionStorage?.getItem(LOG_LEVEL_CACHE_KEY);\r\n const piiLoggingKey = sessionStorage\r\n ?.getItem(LOG_PII_CACHE_KEY)\r\n ?.toLowerCase();\r\n const piiLoggingEnabled = piiLoggingKey === \"true\"\r\n ? true\r\n : piiLoggingKey === \"false\"\r\n ? false\r\n : undefined;\r\n const loggerOptions = { ...this.config.system.loggerOptions };\r\n const logLevel = logLevelKey && Object.keys(exports.LogLevel).includes(logLevelKey)\r\n ? exports.LogLevel[logLevelKey]\r\n : undefined;\r\n if (logLevel) {\r\n loggerOptions.loggerCallback = BaseOperatingContext.loggerCallback;\r\n loggerOptions.logLevel = logLevel;\r\n }\r\n if (piiLoggingEnabled !== undefined) {\r\n loggerOptions.piiLoggingEnabled = piiLoggingEnabled;\r\n }\r\n this.logger = new Logger(loggerOptions, name, version);\r\n this.available = false;\r\n }\r\n /**\r\n * Return the MSAL config\r\n * @returns BrowserConfiguration\r\n */\r\n getConfig() {\r\n return this.config;\r\n }\r\n /**\r\n * Returns the MSAL Logger\r\n * @returns Logger\r\n */\r\n getLogger() {\r\n return this.logger;\r\n }\r\n isAvailable() {\r\n return this.available;\r\n }\r\n isBrowserEnvironment() {\r\n return this.browserEnvironment;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst BridgeStatusCode = {\r\n UserInteractionRequired: \"USER_INTERACTION_REQUIRED\",\r\n UserCancel: \"USER_CANCEL\",\r\n NoNetwork: \"NO_NETWORK\",\r\n TransientError: \"TRANSIENT_ERROR\",\r\n PersistentError: \"PERSISTENT_ERROR\",\r\n Disabled: \"DISABLED\",\r\n AccountUnavailable: \"ACCOUNT_UNAVAILABLE\",\r\n NestedAppAuthUnavailable: \"NESTED_APP_AUTH_UNAVAILABLE\", // NAA is unavailable in the current context, can retry with standard browser based auth\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BridgeProxy\r\n * Provides a proxy for accessing a bridge to a host app and/or\r\n * platform broker\r\n */\r\nclass BridgeProxy {\r\n /**\r\n * initializeNestedAppAuthBridge - Initializes the bridge to the host app\r\n * @returns a promise that resolves to an InitializeBridgeResponse or rejects with an Error\r\n * @remarks This method will be called by the create factory method\r\n * @remarks If the bridge is not available, this method will throw an error\r\n */\r\n static async initializeNestedAppAuthBridge() {\r\n if (window === undefined) {\r\n throw new Error(\"window is undefined\");\r\n }\r\n if (window.nestedAppAuthBridge === undefined) {\r\n throw new Error(\"window.nestedAppAuthBridge is undefined\");\r\n }\r\n try {\r\n window.nestedAppAuthBridge.addEventListener(\"message\", (response) => {\r\n const responsePayload = typeof response === \"string\" ? response : response.data;\r\n const responseEnvelope = JSON.parse(responsePayload);\r\n const request = BridgeProxy.bridgeRequests.find((element) => element.requestId === responseEnvelope.requestId);\r\n if (request !== undefined) {\r\n BridgeProxy.bridgeRequests.splice(BridgeProxy.bridgeRequests.indexOf(request), 1);\r\n if (responseEnvelope.success) {\r\n request.resolve(responseEnvelope);\r\n }\r\n else {\r\n request.reject(responseEnvelope.error);\r\n }\r\n }\r\n });\r\n const bridgeResponse = await new Promise((resolve, reject) => {\r\n const message = BridgeProxy.buildRequest(\"GetInitContext\");\r\n const request = {\r\n requestId: message.requestId,\r\n method: message.method,\r\n resolve: resolve,\r\n reject: reject,\r\n };\r\n BridgeProxy.bridgeRequests.push(request);\r\n window.nestedAppAuthBridge.postMessage(JSON.stringify(message));\r\n });\r\n return BridgeProxy.validateBridgeResultOrThrow(bridgeResponse.initContext);\r\n }\r\n catch (error) {\r\n window.console.log(error);\r\n throw error;\r\n }\r\n }\r\n /**\r\n * getTokenInteractive - Attempts to get a token interactively from the bridge\r\n * @param request A token request\r\n * @returns a promise that resolves to an auth result or rejects with a BridgeError\r\n */\r\n getTokenInteractive(request) {\r\n return this.getToken(\"GetTokenPopup\", request);\r\n }\r\n /**\r\n * getTokenSilent Attempts to get a token silently from the bridge\r\n * @param request A token request\r\n * @returns a promise that resolves to an auth result or rejects with a BridgeError\r\n */\r\n getTokenSilent(request) {\r\n return this.getToken(\"GetToken\", request);\r\n }\r\n async getToken(requestType, request) {\r\n const result = await this.sendRequest(requestType, {\r\n tokenParams: request,\r\n });\r\n return {\r\n token: BridgeProxy.validateBridgeResultOrThrow(result.token),\r\n account: BridgeProxy.validateBridgeResultOrThrow(result.account),\r\n };\r\n }\r\n getHostCapabilities() {\r\n return this.capabilities ?? null;\r\n }\r\n getAccountContext() {\r\n return this.accountContext ? this.accountContext : null;\r\n }\r\n static buildRequest(method, requestParams) {\r\n return {\r\n messageType: \"NestedAppAuthRequest\",\r\n method: method,\r\n requestId: createNewGuid(),\r\n sendTime: Date.now(),\r\n clientLibrary: BrowserConstants.MSAL_SKU,\r\n clientLibraryVersion: version,\r\n ...requestParams,\r\n };\r\n }\r\n /**\r\n * A method used to send a request to the bridge\r\n * @param request A token request\r\n * @returns a promise that resolves to a response of provided type or rejects with a BridgeError\r\n */\r\n sendRequest(method, requestParams) {\r\n const message = BridgeProxy.buildRequest(method, requestParams);\r\n const promise = new Promise((resolve, reject) => {\r\n const request = {\r\n requestId: message.requestId,\r\n method: message.method,\r\n resolve: resolve,\r\n reject: reject,\r\n };\r\n BridgeProxy.bridgeRequests.push(request);\r\n window.nestedAppAuthBridge.postMessage(JSON.stringify(message));\r\n });\r\n return promise;\r\n }\r\n static validateBridgeResultOrThrow(input) {\r\n if (input === undefined) {\r\n const bridgeError = {\r\n status: BridgeStatusCode.NestedAppAuthUnavailable,\r\n };\r\n throw bridgeError;\r\n }\r\n return input;\r\n }\r\n /**\r\n * Private constructor for BridgeProxy\r\n * @param sdkName The name of the SDK being used to make requests on behalf of the app\r\n * @param sdkVersion The version of the SDK being used to make requests on behalf of the app\r\n * @param capabilities The capabilities of the bridge / SDK / platform broker\r\n */\r\n constructor(sdkName, sdkVersion, accountContext, capabilities) {\r\n this.sdkName = sdkName;\r\n this.sdkVersion = sdkVersion;\r\n this.accountContext = accountContext;\r\n this.capabilities = capabilities;\r\n }\r\n /**\r\n * Factory method for creating an implementation of IBridgeProxy\r\n * @returns A promise that resolves to a BridgeProxy implementation\r\n */\r\n static async create() {\r\n const response = await BridgeProxy.initializeNestedAppAuthBridge();\r\n return new BridgeProxy(response.sdkName, response.sdkVersion, response.accountContext, response.capabilities);\r\n }\r\n}\r\nBridgeProxy.bridgeRequests = [];\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass NestedAppOperatingContext extends BaseOperatingContext {\r\n constructor() {\r\n super(...arguments);\r\n this.bridgeProxy = undefined;\r\n this.accountContext = null;\r\n }\r\n /**\r\n * Return the module name. Intended for use with import() to enable dynamic import\r\n * of the implementation associated with this operating context\r\n * @returns\r\n */\r\n getModuleName() {\r\n return NestedAppOperatingContext.MODULE_NAME;\r\n }\r\n /**\r\n * Returns the unique identifier for this operating context\r\n * @returns string\r\n */\r\n getId() {\r\n return NestedAppOperatingContext.ID;\r\n }\r\n /**\r\n * Returns the current BridgeProxy\r\n * @returns IBridgeProxy | undefined\r\n */\r\n getBridgeProxy() {\r\n return this.bridgeProxy;\r\n }\r\n /**\r\n * Checks whether the operating context is available.\r\n * Confirms that the code is running a browser rather. This is required.\r\n * @returns Promise<boolean> indicating whether this operating context is currently available.\r\n */\r\n async initialize() {\r\n try {\r\n if (typeof window !== \"undefined\") {\r\n if (typeof window.__initializeNestedAppAuth === \"function\") {\r\n await window.__initializeNestedAppAuth();\r\n }\r\n const bridgeProxy = await BridgeProxy.create();\r\n /*\r\n * Because we want single sign on we expect the host app to provide the account context\r\n * with a min set of params that can be used to identify the account\r\n * this.account = nestedApp.getAccountByFilter(bridgeProxy.getAccountContext());\r\n */\r\n this.accountContext = bridgeProxy.getAccountContext();\r\n this.bridgeProxy = bridgeProxy;\r\n this.available = bridgeProxy !== undefined;\r\n }\r\n }\r\n catch (ex) {\r\n this.logger.infoPii(`Could not initialize Nested App Auth bridge (${ex})`);\r\n }\r\n this.logger.info(`Nested App Auth Bridge available: ${this.available}`);\r\n return this.available;\r\n }\r\n}\r\n/*\r\n * TODO: Once we have determine the bundling code return here to specify the name of the bundle\r\n * containing the implementation for this operating context\r\n */\r\nNestedAppOperatingContext.MODULE_NAME = \"\";\r\n/**\r\n * Unique identifier for the operating context\r\n */\r\nNestedAppOperatingContext.ID = \"NestedAppOperatingContext\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass StandardOperatingContext extends BaseOperatingContext {\r\n /**\r\n * Return the module name. Intended for use with import() to enable dynamic import\r\n * of the implementation associated with this operating context\r\n * @returns\r\n */\r\n getModuleName() {\r\n return StandardOperatingContext.MODULE_NAME;\r\n }\r\n /**\r\n * Returns the unique identifier for this operating context\r\n * @returns string\r\n */\r\n getId() {\r\n return StandardOperatingContext.ID;\r\n }\r\n /**\r\n * Checks whether the operating context is available.\r\n * Confirms that the code is running a browser rather. This is required.\r\n * @returns Promise<boolean> indicating whether this operating context is currently available.\r\n */\r\n async initialize() {\r\n this.available = typeof window !== \"undefined\";\r\n return this.available;\r\n /*\r\n * NOTE: The standard context is available as long as there is a window. If/when we split out WAM from Browser\r\n * We can move the current contents of the initialize method to here and verify that the WAM extension is available\r\n */\r\n }\r\n}\r\n/*\r\n * TODO: Once we have determine the bundling code return here to specify the name of the bundle\r\n * containing the implementation for this operating context\r\n */\r\nStandardOperatingContext.MODULE_NAME = \"\";\r\n/**\r\n * Unique identifier for the operating context\r\n */\r\nStandardOperatingContext.ID = \"StandardOperatingContext\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nclass DatabaseStorage {\r\n constructor() {\r\n this.dbName = DB_NAME;\r\n this.version = DB_VERSION;\r\n this.tableName = DB_TABLE_NAME;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n async open() {\r\n return new Promise((resolve, reject) => {\r\n const openDB = window.indexedDB.open(this.dbName, this.version);\r\n openDB.addEventListener(\"upgradeneeded\", (e) => {\r\n const event = e;\r\n event.target.result.createObjectStore(this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", (e) => {\r\n const event = e;\r\n this.db = event.target.result;\r\n this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", () => reject(createBrowserAuthError(databaseUnavailable)));\r\n });\r\n }\r\n /**\r\n * Closes the connection to IndexedDB database when all pending transactions\r\n * complete.\r\n */\r\n closeConnection() {\r\n const db = this.db;\r\n if (db && this.dbOpen) {\r\n db.close();\r\n this.dbOpen = false;\r\n }\r\n }\r\n /**\r\n * Opens database if it's not already open\r\n */\r\n async validateDbIsOpen() {\r\n if (!this.dbOpen) {\r\n return this.open();\r\n }\r\n }\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n async getItem(key) {\r\n await this.validateDbIsOpen();\r\n return new Promise((resolve, reject) => {\r\n // TODO: Add timeouts?\r\n if (!this.db) {\r\n return reject(createBrowserAuthError(databaseNotOpen));\r\n }\r\n const transaction = this.db.transaction([this.tableName], \"readonly\");\r\n const objectStore = transaction.objectStore(this.tableName);\r\n const dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", (e) => {\r\n const event = e;\r\n this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", (e) => {\r\n this.closeConnection();\r\n reject(e);\r\n });\r\n });\r\n }\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n async setItem(key, payload) {\r\n await this.validateDbIsOpen();\r\n return new Promise((resolve, reject) => {\r\n // TODO: Add timeouts?\r\n if (!this.db) {\r\n return reject(createBrowserAuthError(databaseNotOpen));\r\n }\r\n const transaction = this.db.transaction([this.tableName], \"readwrite\");\r\n const objectStore = transaction.objectStore(this.tableName);\r\n const dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", () => {\r\n this.closeConnection();\r\n resolve();\r\n });\r\n dbPut.addEventListener(\"error\", (e) => {\r\n this.closeConnection();\r\n reject(e);\r\n });\r\n });\r\n }\r\n /**\r\n * Removes item from IndexedDB under given key\r\n * @param key\r\n */\r\n async removeItem(key) {\r\n await this.validateDbIsOpen();\r\n return new Promise((resolve, reject) => {\r\n if (!this.db) {\r\n return reject(createBrowserAuthError(databaseNotOpen));\r\n }\r\n const transaction = this.db.transaction([this.tableName], \"readwrite\");\r\n const objectStore = transaction.objectStore(this.tableName);\r\n const dbDelete = objectStore.delete(key);\r\n dbDelete.addEventListener(\"success\", () => {\r\n this.closeConnection();\r\n resolve();\r\n });\r\n dbDelete.addEventListener(\"error\", (e) => {\r\n this.closeConnection();\r\n reject(e);\r\n });\r\n });\r\n }\r\n /**\r\n * Get all the keys from the storage object as an iterable array of strings.\r\n */\r\n async getKeys() {\r\n await this.validateDbIsOpen();\r\n return new Promise((resolve, reject) => {\r\n if (!this.db) {\r\n return reject(createBrowserAuthError(databaseNotOpen));\r\n }\r\n const transaction = this.db.transaction([this.tableName], \"readonly\");\r\n const objectStore = transaction.objectStore(this.tableName);\r\n const dbGetKeys = objectStore.getAllKeys();\r\n dbGetKeys.addEventListener(\"success\", (e) => {\r\n const event = e;\r\n this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGetKeys.addEventListener(\"error\", (e) => {\r\n this.closeConnection();\r\n reject(e);\r\n });\r\n });\r\n }\r\n /**\r\n *\r\n * Checks whether there is an object under the search key in the object store\r\n */\r\n async containsKey(key) {\r\n await this.validateDbIsOpen();\r\n return new Promise((resolve, reject) => {\r\n if (!this.db) {\r\n return reject(createBrowserAuthError(databaseNotOpen));\r\n }\r\n const transaction = this.db.transaction([this.tableName], \"readonly\");\r\n const objectStore = transaction.objectStore(this.tableName);\r\n const dbContainsKey = objectStore.count(key);\r\n dbContainsKey.addEventListener(\"success\", (e) => {\r\n const event = e;\r\n this.closeConnection();\r\n resolve(event.target.result === 1);\r\n });\r\n dbContainsKey.addEventListener(\"error\", (e) => {\r\n this.closeConnection();\r\n reject(e);\r\n });\r\n });\r\n }\r\n /**\r\n * Deletes the MSAL database. The database is deleted rather than cleared to make it possible\r\n * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues\r\n * with IndexedDB database versions.\r\n */\r\n async deleteDatabase() {\r\n // Check if database being deleted exists\r\n if (this.db && this.dbOpen) {\r\n this.closeConnection();\r\n }\r\n return new Promise((resolve, reject) => {\r\n const deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);\r\n const id = setTimeout(() => reject(false), 200); // Reject if events aren't raised within 200ms\r\n deleteDbRequest.addEventListener(\"success\", () => {\r\n clearTimeout(id);\r\n return resolve(true);\r\n });\r\n deleteDbRequest.addEventListener(\"blocked\", () => {\r\n clearTimeout(id);\r\n return resolve(true);\r\n });\r\n deleteDbRequest.addEventListener(\"error\", () => {\r\n clearTimeout(id);\r\n return reject(false);\r\n });\r\n });\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MemoryStorage {\r\n constructor() {\r\n this.cache = new Map();\r\n }\r\n async initialize() {\r\n // Memory storage does not require initialization\r\n }\r\n getItem(key) {\r\n return this.cache.get(key) || null;\r\n }\r\n getUserData(key) {\r\n return this.getItem(key);\r\n }\r\n setItem(key, value) {\r\n this.cache.set(key, value);\r\n }\r\n async setUserData(key, value) {\r\n this.setItem(key, value);\r\n }\r\n removeItem(key) {\r\n this.cache.delete(key);\r\n }\r\n getKeys() {\r\n const cacheKeys = [];\r\n this.cache.forEach((value, key) => {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n }\r\n containsKey(key) {\r\n return this.cache.has(key);\r\n }\r\n clear() {\r\n this.cache.clear();\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class allows MSAL to store artifacts asynchronously using the DatabaseStorage IndexedDB wrapper,\r\n * backed up with the more volatile MemoryStorage object for cases in which IndexedDB may be unavailable.\r\n */\r\nclass AsyncMemoryStorage {\r\n constructor(logger) {\r\n this.inMemoryCache = new MemoryStorage();\r\n this.indexedDBCache = new DatabaseStorage();\r\n this.logger = logger;\r\n }\r\n handleDatabaseAccessError(error) {\r\n if (error instanceof BrowserAuthError &&\r\n error.errorCode === databaseUnavailable) {\r\n this.logger.error(\"Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.\");\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Get the item matching the given key. Tries in-memory cache first, then in the asynchronous\r\n * storage object if item isn't found in-memory.\r\n * @param key\r\n */\r\n async getItem(key) {\r\n const item = this.inMemoryCache.getItem(key);\r\n if (!item) {\r\n try {\r\n this.logger.verbose(\"Queried item not found in in-memory cache, now querying persistent storage.\");\r\n return await this.indexedDBCache.getItem(key);\r\n }\r\n catch (e) {\r\n this.handleDatabaseAccessError(e);\r\n }\r\n }\r\n return item;\r\n }\r\n /**\r\n * Sets the item in the in-memory cache and then tries to set it in the asynchronous\r\n * storage object with the given key.\r\n * @param key\r\n * @param value\r\n */\r\n async setItem(key, value) {\r\n this.inMemoryCache.setItem(key, value);\r\n try {\r\n await this.indexedDBCache.setItem(key, value);\r\n }\r\n catch (e) {\r\n this.handleDatabaseAccessError(e);\r\n }\r\n }\r\n /**\r\n * Removes the item matching the key from the in-memory cache, then tries to remove it from the asynchronous storage object.\r\n * @param key\r\n */\r\n async removeItem(key) {\r\n this.inMemoryCache.removeItem(key);\r\n try {\r\n await this.indexedDBCache.removeItem(key);\r\n }\r\n catch (e) {\r\n this.handleDatabaseAccessError(e);\r\n }\r\n }\r\n /**\r\n * Get all the keys from the in-memory cache as an iterable array of strings. If no keys are found, query the keys in the\r\n * asynchronous storage object.\r\n */\r\n async getKeys() {\r\n const cacheKeys = this.inMemoryCache.getKeys();\r\n if (cacheKeys.length === 0) {\r\n try {\r\n this.logger.verbose(\"In-memory cache is empty, now querying persistent storage.\");\r\n return await this.indexedDBCache.getKeys();\r\n }\r\n catch (e) {\r\n this.handleDatabaseAccessError(e);\r\n }\r\n }\r\n return cacheKeys;\r\n }\r\n /**\r\n * Returns true or false if the given key is present in the cache.\r\n * @param key\r\n */\r\n async containsKey(key) {\r\n const containsKey = this.inMemoryCache.containsKey(key);\r\n if (!containsKey) {\r\n try {\r\n this.logger.verbose(\"Key not found in in-memory cache, now querying persistent storage.\");\r\n return await this.indexedDBCache.containsKey(key);\r\n }\r\n catch (e) {\r\n this.handleDatabaseAccessError(e);\r\n }\r\n }\r\n return containsKey;\r\n }\r\n /**\r\n * Clears in-memory Map\r\n */\r\n clearInMemory() {\r\n // InMemory cache is a Map instance, clear is straightforward\r\n this.logger.verbose(`Deleting in-memory keystore`);\r\n this.inMemoryCache.clear();\r\n this.logger.verbose(`In-memory keystore deleted`);\r\n }\r\n /**\r\n * Tries to delete the IndexedDB database\r\n * @returns\r\n */\r\n async clearPersistent() {\r\n try {\r\n this.logger.verbose(\"Deleting persistent keystore\");\r\n const dbDeleted = await this.indexedDBCache.deleteDatabase();\r\n if (dbDeleted) {\r\n this.logger.verbose(\"Persistent keystore deleted\");\r\n }\r\n return dbDeleted;\r\n }\r\n catch (e) {\r\n this.handleDatabaseAccessError(e);\r\n return false;\r\n }\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nclass CryptoOps {\r\n constructor(logger, performanceClient, skipValidateSubtleCrypto) {\r\n this.logger = logger;\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n validateCryptoAvailable(skipValidateSubtleCrypto ?? false);\r\n this.cache = new AsyncMemoryStorage(this.logger);\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n createNewGuid() {\r\n return createNewGuid();\r\n }\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n base64Encode(input) {\r\n return base64Encode(input);\r\n }\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n base64Decode(input) {\r\n return base64Decode(input);\r\n }\r\n /**\r\n * Encodes input string to base64 URL safe string.\r\n * @param input\r\n */\r\n base64UrlEncode(input) {\r\n return urlEncode(input);\r\n }\r\n /**\r\n * Stringifies and base64Url encodes input public key\r\n * @param inputKid\r\n * @returns Base64Url encoded public key\r\n */\r\n encodeKid(inputKid) {\r\n return this.base64UrlEncode(JSON.stringify({ kid: inputKid }));\r\n }\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n async getPublicKeyThumbprint(request) {\r\n const publicKeyThumbMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\r\n // Generate Keypair\r\n const keyPair = await generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES);\r\n // Generate Thumbprint for Public Key\r\n const publicKeyJwk = await exportJwk(keyPair.publicKey);\r\n const pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n,\r\n };\r\n const publicJwkString = getSortedObjectString(pubKeyThumprintObj);\r\n const publicJwkHash = await this.hashString(publicJwkString);\r\n // Generate Thumbprint for Private Key\r\n const privateKeyJwk = await exportJwk(keyPair.privateKey);\r\n // Re-import private key to make it unextractable\r\n const unextractablePrivateKey = await importJwk(privateKeyJwk, false, [\"sign\"]);\r\n // Store Keypair data in keystore\r\n await this.cache.setItem(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri,\r\n });\r\n if (publicKeyThumbMeasurement) {\r\n publicKeyThumbMeasurement.end({\r\n success: true,\r\n });\r\n }\r\n return publicJwkHash;\r\n }\r\n /**\r\n * Removes cryptographic keypair from key store matching the keyId passed in\r\n * @param kid\r\n */\r\n async removeTokenBindingKey(kid) {\r\n await this.cache.removeItem(kid);\r\n const keyFound = await this.cache.containsKey(kid);\r\n return !keyFound;\r\n }\r\n /**\r\n * Removes all cryptographic keys from IndexedDB storage\r\n */\r\n async clearKeystore() {\r\n // Delete in-memory keystores\r\n this.cache.clearInMemory();\r\n /**\r\n * There is only one database, so calling clearPersistent on asymmetric keystore takes care of\r\n * every persistent keystore\r\n */\r\n try {\r\n await this.cache.clearPersistent();\r\n return true;\r\n }\r\n catch (e) {\r\n if (e instanceof Error) {\r\n this.logger.error(`Clearing keystore failed with error: ${e.message}`);\r\n }\r\n else {\r\n this.logger.error(\"Clearing keystore failed with unknown error\");\r\n }\r\n return false;\r\n }\r\n }\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n async signJwt(payload, kid, shrOptions, correlationId) {\r\n const signJwtMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\r\n const cachedKeyPair = await this.cache.getItem(kid);\r\n if (!cachedKeyPair) {\r\n throw createBrowserAuthError(cryptoKeyNotFound);\r\n }\r\n // Get public key as JWK\r\n const publicKeyJwk = await exportJwk(cachedKeyPair.publicKey);\r\n const publicKeyJwkString = getSortedObjectString(publicKeyJwk);\r\n // Base64URL encode public key thumbprint with keyId only: BASE64URL({ kid: \"FULL_PUBLIC_KEY_HASH\" })\r\n const encodedKeyIdThumbprint = urlEncode(JSON.stringify({ kid: kid }));\r\n // Generate header\r\n const shrHeader = JoseHeader.getShrHeaderString({\r\n ...shrOptions?.header,\r\n alg: publicKeyJwk.alg,\r\n kid: encodedKeyIdThumbprint,\r\n });\r\n const encodedShrHeader = urlEncode(shrHeader);\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString),\r\n };\r\n const encodedPayload = urlEncode(JSON.stringify(payload));\r\n // Form token string\r\n const tokenString = `${encodedShrHeader}.${encodedPayload}`;\r\n // Sign token\r\n const encoder = new TextEncoder();\r\n const tokenBuffer = encoder.encode(tokenString);\r\n const signatureBuffer = await sign(cachedKeyPair.privateKey, tokenBuffer);\r\n const encodedSignature = urlEncodeArr(new Uint8Array(signatureBuffer));\r\n const signedJwt = `${tokenString}.${encodedSignature}`;\r\n if (signJwtMeasurement) {\r\n signJwtMeasurement.end({\r\n success: true,\r\n });\r\n }\r\n return signedJwt;\r\n }\r\n /**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\n async hashString(plainText) {\r\n return hashString(plainText);\r\n }\r\n}\r\nCryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\nCryptoOps.EXTRACTABLE = true;\r\nfunction getSortedObjectString(obj) {\r\n return JSON.stringify(obj, Object.keys(obj).sort());\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Cookie life calculation (hours * minutes * seconds * ms)\r\nconst COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\nclass CookieStorage {\r\n initialize() {\r\n return Promise.resolve();\r\n }\r\n getItem(key) {\r\n const name = `${encodeURIComponent(key)}`;\r\n const cookieList = document.cookie.split(\";\");\r\n for (let i = 0; i < cookieList.length; i++) {\r\n const cookie = cookieList[i];\r\n const [key, ...rest] = decodeURIComponent(cookie).trim().split(\"=\");\r\n const value = rest.join(\"=\");\r\n if (key === name) {\r\n return value;\r\n }\r\n }\r\n return \"\";\r\n }\r\n getUserData() {\r\n throw createClientAuthError(methodNotImplemented);\r\n }\r\n setItem(key, value, cookieLifeDays, secure = true) {\r\n let cookieStr = `${encodeURIComponent(key)}=${encodeURIComponent(value)};path=/;SameSite=Lax;`;\r\n if (cookieLifeDays) {\r\n const expireTime = getCookieExpirationTime(cookieLifeDays);\r\n cookieStr += `expires=${expireTime};`;\r\n }\r\n if (secure) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n }\r\n async setUserData() {\r\n return Promise.reject(createClientAuthError(methodNotImplemented));\r\n }\r\n removeItem(key) {\r\n // Setting expiration to -1 removes it\r\n this.setItem(key, \"\", -1);\r\n }\r\n getKeys() {\r\n const cookieList = document.cookie.split(\";\");\r\n const keys = [];\r\n cookieList.forEach((cookie) => {\r\n const cookieParts = decodeURIComponent(cookie).trim().split(\"=\");\r\n keys.push(cookieParts[0]);\r\n });\r\n return keys;\r\n }\r\n containsKey(key) {\r\n return this.getKeys().includes(key);\r\n }\r\n}\r\n/**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\nfunction getCookieExpirationTime(cookieLifeDays) {\r\n const today = new Date();\r\n const expr = new Date(today.getTime() + cookieLifeDays * COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Returns a list of cache keys for all known accounts\r\n * @param storage\r\n * @returns\r\n */\r\nfunction getAccountKeys(storage) {\r\n const accountKeys = storage.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n if (accountKeys) {\r\n return JSON.parse(accountKeys);\r\n }\r\n return [];\r\n}\r\n/**\r\n * Returns a list of cache keys for all known tokens\r\n * @param clientId\r\n * @param storage\r\n * @returns\r\n */\r\nfunction getTokenKeys(clientId, storage) {\r\n const item = storage.getItem(`${StaticCacheKeys.TOKEN_KEYS}.${clientId}`);\r\n if (item) {\r\n const tokenKeys = JSON.parse(item);\r\n if (tokenKeys &&\r\n tokenKeys.hasOwnProperty(\"idToken\") &&\r\n tokenKeys.hasOwnProperty(\"accessToken\") &&\r\n tokenKeys.hasOwnProperty(\"refreshToken\")) {\r\n return tokenKeys;\r\n }\r\n }\r\n return {\r\n idToken: [],\r\n accessToken: [],\r\n refreshToken: [],\r\n };\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst ENCRYPTION_KEY = \"msal.cache.encryption\";\r\nclass LocalStorage {\r\n constructor(clientId, logger, performanceClient) {\r\n if (!window.localStorage) {\r\n throw createBrowserConfigurationAuthError(storageNotSupported);\r\n }\r\n this.memoryStorage = new MemoryStorage();\r\n this.initialized = false;\r\n this.clientId = clientId;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n async initialize(correlationId) {\r\n this.initialized = true;\r\n const cookies = new CookieStorage();\r\n const cookieString = cookies.getItem(ENCRYPTION_KEY);\r\n let parsedCookie = { key: \"\", id: \"\" };\r\n if (cookieString) {\r\n try {\r\n parsedCookie = JSON.parse(cookieString);\r\n }\r\n catch (e) { }\r\n }\r\n if (parsedCookie.key && parsedCookie.id) {\r\n // Encryption key already exists, import\r\n const baseKey = invoke(base64DecToArr, PerformanceEvents.Base64Decode, this.logger, this.performanceClient, correlationId)(parsedCookie.key);\r\n this.encryptionCookie = {\r\n id: parsedCookie.id,\r\n key: await invokeAsync(generateHKDF, PerformanceEvents.GenerateHKDF, this.logger, this.performanceClient, correlationId)(baseKey),\r\n };\r\n await invokeAsync(this.importExistingCache.bind(this), PerformanceEvents.ImportExistingCache, this.logger, this.performanceClient, correlationId)(correlationId);\r\n }\r\n else {\r\n // Encryption key doesn't exist or is invalid, generate a new one and clear existing cache\r\n this.clear();\r\n const id = createNewGuid();\r\n const baseKey = await invokeAsync(generateBaseKey, PerformanceEvents.GenerateBaseKey, this.logger, this.performanceClient, correlationId)();\r\n const keyStr = invoke(urlEncodeArr, PerformanceEvents.UrlEncodeArr, this.logger, this.performanceClient, correlationId)(new Uint8Array(baseKey));\r\n this.encryptionCookie = {\r\n id: id,\r\n key: await invokeAsync(generateHKDF, PerformanceEvents.GenerateHKDF, this.logger, this.performanceClient, correlationId)(baseKey),\r\n };\r\n const cookieData = {\r\n id: id,\r\n key: keyStr,\r\n };\r\n cookies.setItem(ENCRYPTION_KEY, JSON.stringify(cookieData));\r\n }\r\n }\r\n getItem(key) {\r\n return window.localStorage.getItem(key);\r\n }\r\n getUserData(key) {\r\n if (!this.initialized) {\r\n throw createBrowserAuthError(uninitializedPublicClientApplication);\r\n }\r\n return this.memoryStorage.getItem(key);\r\n }\r\n setItem(key, value) {\r\n window.localStorage.setItem(key, value);\r\n }\r\n async setUserData(key, value, correlationId) {\r\n if (!this.initialized || !this.encryptionCookie) {\r\n throw createBrowserAuthError(uninitializedPublicClientApplication);\r\n }\r\n const { data, nonce } = await invokeAsync(encrypt, PerformanceEvents.Encrypt, this.logger, this.performanceClient, correlationId)(this.encryptionCookie.key, value, this.getContext(key));\r\n const encryptedData = {\r\n id: this.encryptionCookie.id,\r\n nonce: nonce,\r\n data: data,\r\n };\r\n this.memoryStorage.setItem(key, value);\r\n this.setItem(key, JSON.stringify(encryptedData));\r\n }\r\n removeItem(key) {\r\n this.memoryStorage.removeItem(key);\r\n window.localStorage.removeItem(key);\r\n }\r\n getKeys() {\r\n return Object.keys(window.localStorage);\r\n }\r\n containsKey(key) {\r\n return window.localStorage.hasOwnProperty(key);\r\n }\r\n /**\r\n * Removes all known MSAL keys from the cache\r\n */\r\n clear() {\r\n // Removes all remaining MSAL cache items\r\n this.memoryStorage.clear();\r\n const accountKeys = getAccountKeys(this);\r\n accountKeys.forEach((key) => this.removeItem(key));\r\n const tokenKeys = getTokenKeys(this.clientId, this);\r\n tokenKeys.idToken.forEach((key) => this.removeItem(key));\r\n tokenKeys.accessToken.forEach((key) => this.removeItem(key));\r\n tokenKeys.refreshToken.forEach((key) => this.removeItem(key));\r\n // Clean up anything left\r\n this.getKeys().forEach((cacheKey) => {\r\n if (cacheKey.startsWith(Constants.CACHE_PREFIX) ||\r\n cacheKey.indexOf(this.clientId) !== -1) {\r\n this.removeItem(cacheKey);\r\n }\r\n });\r\n }\r\n /**\r\n * Helper to decrypt all known MSAL keys in localStorage and save them to inMemory storage\r\n * @returns\r\n */\r\n async importExistingCache(correlationId) {\r\n if (!this.encryptionCookie) {\r\n return;\r\n }\r\n let accountKeys = getAccountKeys(this);\r\n accountKeys = await this.importArray(accountKeys, correlationId);\r\n // Write valid account keys back to map\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n const tokenKeys = getTokenKeys(this.clientId, this);\r\n tokenKeys.idToken = await this.importArray(tokenKeys.idToken, correlationId);\r\n tokenKeys.accessToken = await this.importArray(tokenKeys.accessToken, correlationId);\r\n tokenKeys.refreshToken = await this.importArray(tokenKeys.refreshToken, correlationId);\r\n // Write valid token keys back to map\r\n this.setItem(`${StaticCacheKeys.TOKEN_KEYS}.${this.clientId}`, JSON.stringify(tokenKeys));\r\n }\r\n /**\r\n * Helper to decrypt and save cache entries\r\n * @param key\r\n * @returns\r\n */\r\n async getItemFromEncryptedCache(key, correlationId) {\r\n if (!this.encryptionCookie) {\r\n return null;\r\n }\r\n const rawCache = this.getItem(key);\r\n if (!rawCache) {\r\n return null;\r\n }\r\n let encObj;\r\n try {\r\n encObj = JSON.parse(rawCache);\r\n }\r\n catch (e) {\r\n // Not a valid encrypted object, remove\r\n return null;\r\n }\r\n if (!encObj.id || !encObj.nonce || !encObj.data) {\r\n // Data is not encrypted, likely from old version of MSAL. It must be removed because we don't know how old it is.\r\n this.performanceClient.incrementFields({ unencryptedCacheCount: 1 }, correlationId);\r\n return null;\r\n }\r\n if (encObj.id !== this.encryptionCookie.id) {\r\n // Data was encrypted with a different key. It must be removed because it is from a previous session.\r\n this.performanceClient.incrementFields({ encryptedCacheExpiredCount: 1 }, correlationId);\r\n return null;\r\n }\r\n return invokeAsync(decrypt, PerformanceEvents.Decrypt, this.logger, this.performanceClient, correlationId)(this.encryptionCookie.key, encObj.nonce, this.getContext(key), encObj.data);\r\n }\r\n /**\r\n * Helper to decrypt and save an array of cache keys\r\n * @param arr\r\n * @returns Array of keys successfully imported\r\n */\r\n async importArray(arr, correlationId) {\r\n const importedArr = [];\r\n const promiseArr = [];\r\n arr.forEach((key) => {\r\n const promise = this.getItemFromEncryptedCache(key, correlationId).then((value) => {\r\n if (value) {\r\n this.memoryStorage.setItem(key, value);\r\n importedArr.push(key);\r\n }\r\n else {\r\n // If value is empty, unencrypted or expired remove\r\n this.removeItem(key);\r\n }\r\n });\r\n promiseArr.push(promise);\r\n });\r\n await Promise.all(promiseArr);\r\n return importedArr;\r\n }\r\n /**\r\n * Gets encryption context for a given cache entry. This is clientId for app specific entries, empty string for shared entries\r\n * @param key\r\n * @returns\r\n */\r\n getContext(key) {\r\n let context = \"\";\r\n if (key.includes(this.clientId)) {\r\n context = this.clientId; // Used to bind encryption key to this appId\r\n }\r\n return context;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass SessionStorage {\r\n constructor() {\r\n if (!window.sessionStorage) {\r\n throw createBrowserConfigurationAuthError(storageNotSupported);\r\n }\r\n }\r\n async initialize() {\r\n // Session storage does not require initialization\r\n }\r\n getItem(key) {\r\n return window.sessionStorage.getItem(key);\r\n }\r\n getUserData(key) {\r\n return this.getItem(key);\r\n }\r\n setItem(key, value) {\r\n window.sessionStorage.setItem(key, value);\r\n }\r\n async setUserData(key, value) {\r\n this.setItem(key, value);\r\n }\r\n removeItem(key) {\r\n window.sessionStorage.removeItem(key);\r\n }\r\n getKeys() {\r\n return Object.keys(window.sessionStorage);\r\n }\r\n containsKey(key) {\r\n return window.sessionStorage.hasOwnProperty(key);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\nfunction extractBrowserRequestState(browserCrypto, state) {\r\n if (!state) {\r\n return null;\r\n }\r\n try {\r\n const requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw createClientAuthError(invalidState);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nclass BrowserCacheManager extends CacheManager {\r\n constructor(clientId, cacheConfig, cryptoImpl, logger, performanceClient, staticAuthorityOptions) {\r\n super(clientId, cryptoImpl, logger, staticAuthorityOptions);\r\n this.cacheConfig = cacheConfig;\r\n this.logger = logger;\r\n this.internalStorage = new MemoryStorage();\r\n this.browserStorage = getStorageImplementation(clientId, cacheConfig.cacheLocation, logger, performanceClient);\r\n this.temporaryCacheStorage = getStorageImplementation(clientId, cacheConfig.temporaryCacheLocation, logger, performanceClient);\r\n this.cookieStorage = new CookieStorage();\r\n this.performanceClient = performanceClient;\r\n }\r\n async initialize(correlationId) {\r\n await this.browserStorage.initialize(correlationId);\r\n }\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n validateAndParseJson(jsonValue) {\r\n try {\r\n const parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return parsedJson && typeof parsedJson === \"object\"\r\n ? parsedJson\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n }\r\n /**\r\n * Reads account from cache, deserializes it into an account entity and returns it.\r\n * If account is not found from the key, returns null and removes key from map.\r\n * @param accountKey\r\n * @returns\r\n */\r\n getAccount(accountKey) {\r\n this.logger.trace(\"BrowserCacheManager.getAccount called\");\r\n const serializedAccount = this.browserStorage.getUserData(accountKey);\r\n if (!serializedAccount) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n const parsedAccount = this.validateAndParseJson(serializedAccount);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n }\r\n /**\r\n * set account entity in the platform cache\r\n * @param account\r\n */\r\n async setAccount(account, correlationId) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n const key = account.generateAccountKey();\r\n await invokeAsync(this.browserStorage.setUserData.bind(this.browserStorage), PerformanceEvents.SetUserData, this.logger, this.performanceClient)(key, JSON.stringify(account), correlationId);\r\n this.addAccountKeyToMap(key);\r\n }\r\n /**\r\n * Returns the array of account keys currently cached\r\n * @returns\r\n */\r\n getAccountKeys() {\r\n return getAccountKeys(this.browserStorage);\r\n }\r\n /**\r\n * Add a new account to the key map\r\n * @param key\r\n */\r\n addAccountKeyToMap(key) {\r\n this.logger.trace(\"BrowserCacheManager.addAccountKeyToMap called\");\r\n this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${key}`);\r\n const accountKeys = this.getAccountKeys();\r\n if (accountKeys.indexOf(key) === -1) {\r\n // Only add key if it does not already exist in the map\r\n accountKeys.push(key);\r\n this.browserStorage.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key added\");\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key already exists in map\");\r\n }\r\n }\r\n /**\r\n * Remove an account from the key map\r\n * @param key\r\n */\r\n removeAccountKeyFromMap(key) {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap called\");\r\n this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${key}`);\r\n const accountKeys = this.getAccountKeys();\r\n const removalIndex = accountKeys.indexOf(key);\r\n if (removalIndex > -1) {\r\n accountKeys.splice(removalIndex, 1);\r\n this.browserStorage.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap account key removed\");\r\n }\r\n else {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap key not found in existing map\");\r\n }\r\n }\r\n /**\r\n * Extends inherited removeAccount function to include removal of the account key from the map\r\n * @param key\r\n */\r\n async removeAccount(key) {\r\n void super.removeAccount(key);\r\n this.removeAccountKeyFromMap(key);\r\n }\r\n /**\r\n * Removes given idToken from the cache and from the key map\r\n * @param key\r\n */\r\n removeIdToken(key) {\r\n super.removeIdToken(key);\r\n this.removeTokenKey(key, CredentialType.ID_TOKEN);\r\n }\r\n /**\r\n * Removes given accessToken from the cache and from the key map\r\n * @param key\r\n */\r\n async removeAccessToken(key) {\r\n void super.removeAccessToken(key);\r\n this.removeTokenKey(key, CredentialType.ACCESS_TOKEN);\r\n }\r\n /**\r\n * Removes given refreshToken from the cache and from the key map\r\n * @param key\r\n */\r\n removeRefreshToken(key) {\r\n super.removeRefreshToken(key);\r\n this.removeTokenKey(key, CredentialType.REFRESH_TOKEN);\r\n }\r\n /**\r\n * Gets the keys for the cached tokens associated with this clientId\r\n * @returns\r\n */\r\n getTokenKeys() {\r\n return getTokenKeys(this.clientId, this.browserStorage);\r\n }\r\n /**\r\n * Adds the given key to the token key map\r\n * @param key\r\n * @param type\r\n */\r\n addTokenKey(key, type) {\r\n this.logger.trace(\"BrowserCacheManager addTokenKey called\");\r\n const tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n if (tokenKeys.idToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - idToken added to map\");\r\n tokenKeys.idToken.push(key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n if (tokenKeys.accessToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - accessToken added to map\");\r\n tokenKeys.accessToken.push(key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (tokenKeys.refreshToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - refreshToken added to map\");\r\n tokenKeys.refreshToken.push(key);\r\n }\r\n break;\r\n default:\r\n this.logger.error(`BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: ${type}`);\r\n throw createClientAuthError(unexpectedCredentialType);\r\n }\r\n this.browserStorage.setItem(`${StaticCacheKeys.TOKEN_KEYS}.${this.clientId}`, JSON.stringify(tokenKeys));\r\n }\r\n /**\r\n * Removes the given key from the token key map\r\n * @param key\r\n * @param type\r\n */\r\n removeTokenKey(key, type) {\r\n this.logger.trace(\"BrowserCacheManager removeTokenKey called\");\r\n const tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${key} from map`);\r\n const idRemoval = tokenKeys.idToken.indexOf(key);\r\n if (idRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken removed from map\");\r\n tokenKeys.idToken.splice(idRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${key} from map`);\r\n const accessRemoval = tokenKeys.accessToken.indexOf(key);\r\n if (accessRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken removed from map\");\r\n tokenKeys.accessToken.splice(accessRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: ${key} from map`);\r\n const refreshRemoval = tokenKeys.refreshToken.indexOf(key);\r\n if (refreshRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken removed from map\");\r\n tokenKeys.refreshToken.splice(refreshRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n default:\r\n this.logger.error(`BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: ${type}`);\r\n throw createClientAuthError(unexpectedCredentialType);\r\n }\r\n this.browserStorage.setItem(`${StaticCacheKeys.TOKEN_KEYS}.${this.clientId}`, JSON.stringify(tokenKeys));\r\n }\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n getIdTokenCredential(idTokenKey) {\r\n const value = this.browserStorage.getUserData(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n const parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return parsedIdToken;\r\n }\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n async setIdTokenCredential(idToken, correlationId) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n const idTokenKey = generateCredentialKey(idToken);\r\n await invokeAsync(this.browserStorage.setUserData.bind(this.browserStorage), PerformanceEvents.SetUserData, this.logger, this.performanceClient)(idTokenKey, JSON.stringify(idToken), correlationId);\r\n this.addTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n }\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n getAccessTokenCredential(accessTokenKey) {\r\n const value = this.browserStorage.getUserData(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n const parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken ||\r\n !isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return parsedAccessToken;\r\n }\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n async setAccessTokenCredential(accessToken, correlationId) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n const accessTokenKey = generateCredentialKey(accessToken);\r\n await invokeAsync(this.browserStorage.setUserData.bind(this.browserStorage), PerformanceEvents.SetUserData, this.logger, this.performanceClient)(accessTokenKey, JSON.stringify(accessToken), correlationId);\r\n this.addTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n }\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n getRefreshTokenCredential(refreshTokenKey) {\r\n const value = this.browserStorage.getUserData(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n const parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken ||\r\n !isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return parsedRefreshToken;\r\n }\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n async setRefreshTokenCredential(refreshToken, correlationId) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n const refreshTokenKey = generateCredentialKey(refreshToken);\r\n await invokeAsync(this.browserStorage.setUserData.bind(this.browserStorage), PerformanceEvents.SetUserData, this.logger, this.performanceClient)(refreshTokenKey, JSON.stringify(refreshToken), correlationId);\r\n this.addTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n }\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n getAppMetadata(appMetadataKey) {\r\n const value = this.browserStorage.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n const parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata ||\r\n !isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return parsedMetadata;\r\n }\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n setAppMetadata(appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n const appMetadataKey = generateAppMetadataKey(appMetadata);\r\n this.browserStorage.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n }\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n getServerTelemetry(serverTelemetryKey) {\r\n const value = this.browserStorage.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n const parsedEntity = this.validateAndParseJson(value);\r\n if (!parsedEntity ||\r\n !isServerTelemetryEntity(serverTelemetryKey, parsedEntity)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return parsedEntity;\r\n }\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n setServerTelemetry(serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.browserStorage.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n }\r\n /**\r\n *\r\n */\r\n getAuthorityMetadata(key) {\r\n const value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n const parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata &&\r\n isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return parsedMetadata;\r\n }\r\n return null;\r\n }\r\n /**\r\n *\r\n */\r\n getAuthorityMetadataKeys() {\r\n const allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter((key) => {\r\n return this.isAuthorityMetadata(key);\r\n });\r\n }\r\n /**\r\n * Sets wrapper metadata in memory\r\n * @param wrapperSKU\r\n * @param wrapperVersion\r\n */\r\n setWrapperMetadata(wrapperSKU, wrapperVersion) {\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_SKU, wrapperSKU);\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_VER, wrapperVersion);\r\n }\r\n /**\r\n * Returns wrapper metadata from in-memory storage\r\n */\r\n getWrapperMetadata() {\r\n const sku = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_SKU) ||\r\n Constants.EMPTY_STRING;\r\n const version = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_VER) ||\r\n Constants.EMPTY_STRING;\r\n return [sku, version];\r\n }\r\n /**\r\n *\r\n * @param entity\r\n */\r\n setAuthorityMetadata(key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n }\r\n /**\r\n * Gets the active account\r\n */\r\n getActiveAccount() {\r\n const activeAccountKeyFilters = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n const activeAccountValueFilters = this.browserStorage.getItem(activeAccountKeyFilters);\r\n if (!activeAccountValueFilters) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account filters found\");\r\n return null;\r\n }\r\n const activeAccountValueObj = this.validateAndParseJson(activeAccountValueFilters);\r\n if (activeAccountValueObj) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Active account filters schema found\");\r\n return this.getAccountInfoFilteredBy({\r\n homeAccountId: activeAccountValueObj.homeAccountId,\r\n localAccountId: activeAccountValueObj.localAccountId,\r\n tenantId: activeAccountValueObj.tenantId,\r\n });\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n }\r\n /**\r\n * Sets the active account's localAccountId in cache\r\n * @param account\r\n */\r\n setActiveAccount(account) {\r\n const activeAccountKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n const activeAccountValue = {\r\n homeAccountId: account.homeAccountId,\r\n localAccountId: account.localAccountId,\r\n tenantId: account.tenantId,\r\n };\r\n this.browserStorage.setItem(activeAccountKey, JSON.stringify(activeAccountValue));\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.browserStorage.removeItem(activeAccountKey);\r\n }\r\n }\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n getThrottlingCache(throttlingCacheKey) {\r\n const value = this.browserStorage.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n const parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache ||\r\n !isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return parsedThrottlingCache;\r\n }\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n setThrottlingCache(throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.browserStorage.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n }\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n getTemporaryCache(cacheKey, generateKey) {\r\n const key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n const itemCookie = this.cookieStorage.getItem(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n const value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation ===\r\n BrowserCacheLocation.LocalStorage) {\r\n const item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n }\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n setTemporaryCache(cacheKey, value, generateKey) {\r\n const key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.cookieStorage.setItem(key, value, undefined, this.cacheConfig.secureCookies);\r\n }\r\n }\r\n /**\r\n * Removes the cache item with the given key.\r\n * @param key\r\n */\r\n removeItem(key) {\r\n this.browserStorage.removeItem(key);\r\n }\r\n /**\r\n * Removes the temporary cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n removeTemporaryItem(key) {\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.cookieStorage.removeItem(key);\r\n }\r\n }\r\n /**\r\n * Gets all keys in window.\r\n */\r\n getKeys() {\r\n return this.browserStorage.getKeys();\r\n }\r\n /**\r\n * Clears all cache entries created by MSAL.\r\n */\r\n async clear() {\r\n // Removes all accounts and their credentials\r\n await this.removeAllAccounts();\r\n this.removeAppMetadata();\r\n // Remove temp storage first to make sure any cookies are cleared\r\n this.temporaryCacheStorage.getKeys().forEach((cacheKey) => {\r\n if (cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1 ||\r\n cacheKey.indexOf(this.clientId) !== -1) {\r\n this.removeTemporaryItem(cacheKey);\r\n }\r\n });\r\n // Removes all remaining MSAL cache items\r\n this.browserStorage.getKeys().forEach((cacheKey) => {\r\n if (cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1 ||\r\n cacheKey.indexOf(this.clientId) !== -1) {\r\n this.browserStorage.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n }\r\n /**\r\n * Clears all access tokes that have claims prior to saving the current one\r\n * @param performanceClient {IPerformanceClient}\r\n * @param correlationId {string} correlation id\r\n * @returns\r\n */\r\n async clearTokensAndKeysWithClaims(performanceClient, correlationId) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.ClearTokensAndKeysWithClaims, correlationId);\r\n const tokenKeys = this.getTokenKeys();\r\n const removedAccessTokens = [];\r\n tokenKeys.accessToken.forEach((key) => {\r\n // if the access token has claims in its key, remove the token key and the token\r\n const credential = this.getAccessTokenCredential(key);\r\n if (credential?.requestedClaimsHash &&\r\n key.includes(credential.requestedClaimsHash.toLowerCase())) {\r\n removedAccessTokens.push(this.removeAccessToken(key));\r\n }\r\n });\r\n await Promise.all(removedAccessTokens);\r\n // warn if any access tokens are removed\r\n if (removedAccessTokens.length > 0) {\r\n this.logger.warning(`${removedAccessTokens.length} access tokens with claims in the cache keys have been removed from the cache.`);\r\n }\r\n }\r\n /**\r\n * Prepend msal.<client-id> to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n generateCacheKey(key) {\r\n const generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX)) {\r\n return key;\r\n }\r\n return `${Constants.CACHE_PREFIX}.${this.clientId}.${key}`;\r\n }\r\n return JSON.stringify(key);\r\n }\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n generateAuthorityKey(stateString) {\r\n const { libraryState: { id: stateId }, } = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString);\r\n return this.generateCacheKey(`${TemporaryCacheKeys.AUTHORITY}.${stateId}`);\r\n }\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n generateNonceKey(stateString) {\r\n const { libraryState: { id: stateId }, } = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString);\r\n return this.generateCacheKey(`${TemporaryCacheKeys.NONCE_IDTOKEN}.${stateId}`);\r\n }\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n generateStateKey(stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n const { libraryState: { id: stateId }, } = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString);\r\n return this.generateCacheKey(`${TemporaryCacheKeys.REQUEST_STATE}.${stateId}`);\r\n }\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n getCachedAuthority(cachedState) {\r\n const stateCacheKey = this.generateStateKey(cachedState);\r\n const state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n const authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n }\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n updateCacheEntries(state, nonce, authorityInstance, loginHint, account) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n const stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n const nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n const authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n if (account) {\r\n const ccsCredential = {\r\n credential: account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID,\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n else if (loginHint) {\r\n const ccsCredential = {\r\n credential: loginHint,\r\n type: CcsCredentialType.UPN,\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n }\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n resetRequestCache(state) {\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (state) {\r\n this.temporaryCacheStorage.getKeys().forEach((key) => {\r\n if (key.indexOf(state) !== -1) {\r\n this.removeTemporaryItem(key);\r\n }\r\n });\r\n // delete generic interactive request parameters\r\n this.removeTemporaryItem(this.generateStateKey(state));\r\n this.removeTemporaryItem(this.generateNonceKey(state));\r\n this.removeTemporaryItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.CORRELATION_ID));\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n this.setInteractionInProgress(false);\r\n }\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n cleanRequestByState(stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n const stateKey = this.generateStateKey(stateString);\r\n const cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${cachedState}`);\r\n this.resetRequestCache(cachedState || Constants.EMPTY_STRING);\r\n }\r\n }\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n cleanRequestByInteractionType(interactionType) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.temporaryCacheStorage.getKeys().forEach((key) => {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n const stateValue = this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n const parsedState = extractBrowserRequestState(this.cryptoImpl, stateValue);\r\n if (parsedState &&\r\n parsedState.interactionType === interactionType) {\r\n this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${stateValue}`);\r\n this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.setInteractionInProgress(false);\r\n }\r\n cacheCodeRequest(authCodeRequest) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n const encodedValue = base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n }\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n getCachedRequest(state) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n const encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw createBrowserAuthError(noTokenRequestCacheError);\r\n }\r\n let parsedRequest;\r\n try {\r\n parsedRequest = JSON.parse(base64Decode(encodedTokenRequest));\r\n }\r\n catch (e) {\r\n this.logger.errorPii(`Attempted to parse: ${encodedTokenRequest}`);\r\n this.logger.error(`Parsing cached token request threw with error: ${e}`);\r\n throw createBrowserAuthError(unableToParseTokenRequestCacheError);\r\n }\r\n this.removeTemporaryItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (!parsedRequest.authority) {\r\n const authorityCacheKey = this.generateAuthorityKey(state);\r\n const cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw createBrowserAuthError(noCachedAuthorityError);\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n }\r\n /**\r\n * Gets cached native request for redirect flows\r\n */\r\n getCachedNativeRequest() {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest called\");\r\n const cachedRequest = this.getTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, true);\r\n if (!cachedRequest) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest: No cached native request found\");\r\n return null;\r\n }\r\n const parsedRequest = this.validateAndParseJson(cachedRequest);\r\n if (!parsedRequest) {\r\n this.logger.error(\"BrowserCacheManager.getCachedNativeRequest: Unable to parse native request\");\r\n return null;\r\n }\r\n return parsedRequest;\r\n }\r\n isInteractionInProgress(matchClientId) {\r\n const clientId = this.getInteractionInProgress();\r\n if (matchClientId) {\r\n return clientId === this.clientId;\r\n }\r\n else {\r\n return !!clientId;\r\n }\r\n }\r\n getInteractionInProgress() {\r\n const key = `${Constants.CACHE_PREFIX}.${TemporaryCacheKeys.INTERACTION_STATUS_KEY}`;\r\n return this.getTemporaryCache(key, false);\r\n }\r\n setInteractionInProgress(inProgress) {\r\n // Ensure we don't overwrite interaction in progress for a different clientId\r\n const key = `${Constants.CACHE_PREFIX}.${TemporaryCacheKeys.INTERACTION_STATUS_KEY}`;\r\n if (inProgress) {\r\n if (this.getInteractionInProgress()) {\r\n throw createBrowserAuthError(interactionInProgress);\r\n }\r\n else {\r\n // No interaction is in progress\r\n this.setTemporaryCache(key, this.clientId, false);\r\n }\r\n }\r\n else if (!inProgress &&\r\n this.getInteractionInProgress() === this.clientId) {\r\n this.removeTemporaryItem(key);\r\n }\r\n }\r\n /**\r\n * Builds credential entities from AuthenticationResult object and saves the resulting credentials to the cache\r\n * @param result\r\n * @param request\r\n */\r\n async hydrateCache(result, request) {\r\n const idTokenEntity = createIdTokenEntity(result.account?.homeAccountId, result.account?.environment, result.idToken, this.clientId, result.tenantId);\r\n let claimsHash;\r\n if (request.claims) {\r\n claimsHash = await this.cryptoImpl.hashString(request.claims);\r\n }\r\n /**\r\n * meta data for cache stores time in seconds from epoch\r\n * AuthenticationResult returns expiresOn and extExpiresOn in milliseconds (as a Date object which is in ms)\r\n * We need to map these for the cache when building tokens from AuthenticationResult\r\n *\r\n * The next MSAL VFuture should map these both to same value if possible\r\n */\r\n const accessTokenEntity = createAccessTokenEntity(result.account?.homeAccountId, result.account.environment, result.accessToken, this.clientId, result.tenantId, result.scopes.join(\" \"), result.expiresOn ? result.expiresOn.getTime() / 1000 : 0, result.extExpiresOn ? result.extExpiresOn.getTime() / 1000 : 0, base64Decode, undefined, // refreshOn\r\n result.tokenType, undefined, // userAssertionHash\r\n request.sshKid, request.claims, claimsHash);\r\n const cacheRecord = {\r\n idToken: idTokenEntity,\r\n accessToken: accessTokenEntity,\r\n };\r\n return this.saveCacheRecord(cacheRecord, result.correlationId);\r\n }\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord {CacheRecord}\r\n * @param storeInCache {?StoreInCache}\r\n * @param correlationId {?string} correlation id\r\n */\r\n async saveCacheRecord(cacheRecord, correlationId, storeInCache) {\r\n try {\r\n await super.saveCacheRecord(cacheRecord, correlationId, storeInCache);\r\n }\r\n catch (e) {\r\n if (e instanceof CacheError &&\r\n this.performanceClient &&\r\n correlationId) {\r\n try {\r\n const tokenKeys = this.getTokenKeys();\r\n this.performanceClient.addFields({\r\n cacheRtCount: tokenKeys.refreshToken.length,\r\n cacheIdCount: tokenKeys.idToken.length,\r\n cacheAtCount: tokenKeys.accessToken.length,\r\n }, correlationId);\r\n }\r\n catch (e) { }\r\n }\r\n throw e;\r\n }\r\n }\r\n}\r\n/**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\nfunction getStorageImplementation(clientId, cacheLocation, logger, performanceClient) {\r\n try {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n return new LocalStorage(clientId, logger, performanceClient);\r\n case BrowserCacheLocation.SessionStorage:\r\n return new SessionStorage();\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n return new MemoryStorage();\r\n}\r\nconst DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient) => {\r\n const cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false,\r\n claimsBasedCachingEnabled: false,\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient);\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\r\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\r\n * @returns Array of AccountInfo objects in cache\r\n */\r\nfunction getAllAccounts(logger, browserStorage, isInBrowser, accountFilter) {\r\n logger.verbose(\"getAllAccounts called\");\r\n return isInBrowser ? browserStorage.getAllAccounts(accountFilter) : [];\r\n}\r\n/**\r\n * Returns the first account found in the cache that matches the account filter passed in.\r\n * @param accountFilter\r\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\r\n */\r\nfunction getAccount(accountFilter, logger, browserStorage) {\r\n logger.trace(\"getAccount called\");\r\n if (Object.keys(accountFilter).length === 0) {\r\n logger.warning(\"getAccount: No accountFilter provided\");\r\n return null;\r\n }\r\n const account = browserStorage.getAccountInfoFilteredBy(accountFilter);\r\n if (account) {\r\n logger.verbose(\"getAccount: Account matching provided filter found, returning\");\r\n return account;\r\n }\r\n else {\r\n logger.verbose(\"getAccount: No matching account found, returning null\");\r\n return null;\r\n }\r\n}\r\n/**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param username\r\n * @returns The account object stored in MSAL\r\n */\r\nfunction getAccountByUsername(username, logger, browserStorage) {\r\n logger.trace(\"getAccountByUsername called\");\r\n if (!username) {\r\n logger.warning(\"getAccountByUsername: No username provided\");\r\n return null;\r\n }\r\n const account = browserStorage.getAccountInfoFilteredBy({\r\n username,\r\n });\r\n if (account) {\r\n logger.verbose(\"getAccountByUsername: Account matching username found, returning\");\r\n logger.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${username}`);\r\n return account;\r\n }\r\n else {\r\n logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n}\r\n/**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\nfunction getAccountByHomeId(homeAccountId, logger, browserStorage) {\r\n logger.trace(\"getAccountByHomeId called\");\r\n if (!homeAccountId) {\r\n logger.warning(\"getAccountByHomeId: No homeAccountId provided\");\r\n return null;\r\n }\r\n const account = browserStorage.getAccountInfoFilteredBy({\r\n homeAccountId,\r\n });\r\n if (account) {\r\n logger.verbose(\"getAccountByHomeId: Account matching homeAccountId found, returning\");\r\n logger.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${homeAccountId}`);\r\n return account;\r\n }\r\n else {\r\n logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n}\r\n/**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\nfunction getAccountByLocalId(localAccountId, logger, browserStorage) {\r\n logger.trace(\"getAccountByLocalId called\");\r\n if (!localAccountId) {\r\n logger.warning(\"getAccountByLocalId: No localAccountId provided\");\r\n return null;\r\n }\r\n const account = browserStorage.getAccountInfoFilteredBy({\r\n localAccountId,\r\n });\r\n if (account) {\r\n logger.verbose(\"getAccountByLocalId: Account matching localAccountId found, returning\");\r\n logger.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${localAccountId}`);\r\n return account;\r\n }\r\n else {\r\n logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n}\r\n/**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\nfunction setActiveAccount(account, browserStorage) {\r\n browserStorage.setActiveAccount(account);\r\n}\r\n/**\r\n * Gets the currently active account\r\n */\r\nfunction getActiveAccount(browserStorage) {\r\n return browserStorage.getActiveAccount();\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst EventType = {\r\n INITIALIZE_START: \"msal:initializeStart\",\r\n INITIALIZE_END: \"msal:initializeEnd\",\r\n ACCOUNT_ADDED: \"msal:accountAdded\",\r\n ACCOUNT_REMOVED: \"msal:accountRemoved\",\r\n ACTIVE_ACCOUNT_CHANGED: \"msal:activeAccountChanged\",\r\n LOGIN_START: \"msal:loginStart\",\r\n LOGIN_SUCCESS: \"msal:loginSuccess\",\r\n LOGIN_FAILURE: \"msal:loginFailure\",\r\n ACQUIRE_TOKEN_START: \"msal:acquireTokenStart\",\r\n ACQUIRE_TOKEN_SUCCESS: \"msal:acquireTokenSuccess\",\r\n ACQUIRE_TOKEN_FAILURE: \"msal:acquireTokenFailure\",\r\n ACQUIRE_TOKEN_NETWORK_START: \"msal:acquireTokenFromNetworkStart\",\r\n SSO_SILENT_START: \"msal:ssoSilentStart\",\r\n SSO_SILENT_SUCCESS: \"msal:ssoSilentSuccess\",\r\n SSO_SILENT_FAILURE: \"msal:ssoSilentFailure\",\r\n ACQUIRE_TOKEN_BY_CODE_START: \"msal:acquireTokenByCodeStart\",\r\n ACQUIRE_TOKEN_BY_CODE_SUCCESS: \"msal:acquireTokenByCodeSuccess\",\r\n ACQUIRE_TOKEN_BY_CODE_FAILURE: \"msal:acquireTokenByCodeFailure\",\r\n HANDLE_REDIRECT_START: \"msal:handleRedirectStart\",\r\n HANDLE_REDIRECT_END: \"msal:handleRedirectEnd\",\r\n POPUP_OPENED: \"msal:popupOpened\",\r\n LOGOUT_START: \"msal:logoutStart\",\r\n LOGOUT_SUCCESS: \"msal:logoutSuccess\",\r\n LOGOUT_FAILURE: \"msal:logoutFailure\",\r\n LOGOUT_END: \"msal:logoutEnd\",\r\n RESTORE_FROM_BFCACHE: \"msal:restoreFromBFCache\",\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass EventHandler {\r\n constructor(logger) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger || new Logger({});\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback - callback to be invoked when an event is raised\r\n * @param eventTypes - list of events that this callback will be invoked for, if not provided callback will be invoked for all events\r\n * @param callbackId - Identifier for the callback, used to locate and remove the callback when no longer required\r\n */\r\n addEventCallback(callback, eventTypes, callbackId) {\r\n if (typeof window !== \"undefined\") {\r\n const id = callbackId || createGuid();\r\n if (this.eventCallbacks.has(id)) {\r\n this.logger.error(`Event callback with id: ${id} is already registered. Please provide a unique id or remove the existing callback and try again.`);\r\n return null;\r\n }\r\n this.eventCallbacks.set(id, [callback, eventTypes || []]);\r\n this.logger.verbose(`Event callback registered with id: ${id}`);\r\n return id;\r\n }\r\n return null;\r\n }\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n removeEventCallback(callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(`Event callback ${callbackId} removed.`);\r\n }\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n emitEvent(eventType, interactionType, payload, error) {\r\n if (typeof window !== \"undefined\") {\r\n const message = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now(),\r\n };\r\n this.eventCallbacks.forEach(([callback, eventTypes], callbackId) => {\r\n if (eventTypes.length === 0 ||\r\n eventTypes.includes(eventType)) {\r\n this.logger.verbose(`Emitting event to callback ${callbackId}: ${eventType}`);\r\n callback.apply(null, [message]);\r\n }\r\n });\r\n }\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass BaseInteractionClient {\r\n constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.navigationClient = navigationClient;\r\n this.nativeMessageHandler = nativeMessageHandler;\r\n this.correlationId = correlationId || createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n this.performanceClient = performanceClient;\r\n }\r\n async clearCacheOnLogout(account) {\r\n if (account) {\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n // Clear given account.\r\n try {\r\n await this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account));\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n }\r\n catch (error) {\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n }\r\n }\r\n else {\r\n try {\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\", this.correlationId);\r\n // Clear all accounts and tokens\r\n await this.browserStorage.clear();\r\n // Clear any stray keys from IndexedDB\r\n await this.browserCrypto.clearKeystore();\r\n }\r\n catch (e) {\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n }\r\n }\r\n }\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n getRedirectUri(requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n const redirectUri = requestRedirectUri || this.config.auth.redirectUri;\r\n return UrlString.getAbsoluteUrl(redirectUri, getCurrentUri());\r\n }\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n initializeServerTelemetryManager(apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n const telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1],\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n }\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param params {\r\n * requestAuthority?: string;\r\n * requestAzureCloudOptions?: AzureCloudOptions;\r\n * requestExtraQueryParameters?: StringDict;\r\n * account?: AccountInfo;\r\n * }\r\n */\r\n async getDiscoveredAuthority(params) {\r\n const { account } = params;\r\n const instanceAwareEQ = params.requestExtraQueryParameters &&\r\n params.requestExtraQueryParameters.hasOwnProperty(\"instance_aware\")\r\n ? params.requestExtraQueryParameters[\"instance_aware\"]\r\n : undefined;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n const authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n OIDCOptions: this.config.auth.OIDCOptions,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,\r\n };\r\n // build authority string based on auth params, precedence - azureCloudInstance + tenant >> authority\r\n const resolvedAuthority = params.requestAuthority || this.config.auth.authority;\r\n const resolvedInstanceAware = instanceAwareEQ?.length\r\n ? instanceAwareEQ === \"true\"\r\n : this.config.auth.instanceAware;\r\n const userAuthority = account && resolvedInstanceAware\r\n ? this.config.auth.authority.replace(UrlString.getDomainFromUrl(resolvedAuthority), account.environment)\r\n : resolvedAuthority;\r\n // fall back to the authority from config\r\n const builtAuthority = Authority.generateAuthority(userAuthority, params.requestAzureCloudOptions ||\r\n this.config.auth.azureCloudOptions);\r\n const discoveredAuthority = await invokeAsync(createDiscoveredInstance, PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, this.logger, this.performanceClient, this.correlationId)(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger, this.correlationId, this.performanceClient);\r\n if (account && !discoveredAuthority.isAlias(account.environment)) {\r\n throw createClientConfigurationError(authorityMismatch);\r\n }\r\n return discoveredAuthority;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nconst RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * This file defines APIs to generate PKCE codes and code verifiers.\r\n */\r\n/**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\nasync function generatePkceCodes(performanceClient, logger, correlationId) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.GeneratePkceCodes, correlationId);\r\n const codeVerifier = invoke(generateCodeVerifier, PerformanceEvents.GenerateCodeVerifier, logger, performanceClient, correlationId)(performanceClient, logger, correlationId);\r\n const codeChallenge = await invokeAsync(generateCodeChallengeFromVerifier, PerformanceEvents.GenerateCodeChallengeFromVerifier, logger, performanceClient, correlationId)(codeVerifier, performanceClient, logger, correlationId);\r\n return {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge,\r\n };\r\n}\r\n/**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\nfunction generateCodeVerifier(performanceClient, logger, correlationId) {\r\n try {\r\n // Generate random values as utf-8\r\n const buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n invoke(getRandomValues, PerformanceEvents.GetRandomValues, logger, performanceClient, correlationId)(buffer);\r\n // encode verifier as base64\r\n const pkceCodeVerifierB64 = urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw createBrowserAuthError(pkceNotCreated);\r\n }\r\n}\r\n/**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\nasync function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceClient, logger, correlationId) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.GenerateCodeChallengeFromVerifier, correlationId);\r\n try {\r\n // hashed verifier\r\n const pkceHashedCodeVerifier = await invokeAsync(sha256Digest, PerformanceEvents.Sha256Digest, logger, performanceClient, correlationId)(pkceCodeVerifier, performanceClient, correlationId);\r\n // encode hash as base64\r\n return urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier));\r\n }\r\n catch (e) {\r\n throw createBrowserAuthError(pkceNotCreated);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\nasync function initializeBaseRequest(request, config, performanceClient, logger) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n const authority = request.authority || config.auth.authority;\r\n const scopes = [...((request && request.scopes) || [])];\r\n const validatedRequest = {\r\n ...request,\r\n correlationId: request.correlationId,\r\n authority,\r\n scopes,\r\n };\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!validatedRequest.authenticationScheme) {\r\n validatedRequest.authenticationScheme = AuthenticationScheme.BEARER;\r\n logger.verbose('Authentication Scheme wasn\\'t explicitly set in request, defaulting to \"Bearer\" request');\r\n }\r\n else {\r\n if (validatedRequest.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (!request.sshJwk) {\r\n throw createClientConfigurationError(missingSshJwk);\r\n }\r\n if (!request.sshKid) {\r\n throw createClientConfigurationError(missingSshKid);\r\n }\r\n }\r\n logger.verbose(`Authentication Scheme set to \"${validatedRequest.authenticationScheme}\" as configured in Auth request`);\r\n }\r\n // Set requested claims hash if claims-based caching is enabled and claims were requested\r\n if (config.cache.claimsBasedCachingEnabled &&\r\n request.claims &&\r\n // Checks for empty stringified object \"{}\" which doesn't qualify as requested claims\r\n !StringUtils.isEmptyObj(request.claims)) {\r\n validatedRequest.requestedClaimsHash = await hashString(request.claims);\r\n }\r\n return validatedRequest;\r\n}\r\nasync function initializeSilentRequest(request, account, config, performanceClient, logger) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, request.correlationId);\r\n const baseRequest = await invokeAsync(initializeBaseRequest, PerformanceEvents.InitializeBaseRequest, logger, performanceClient, request.correlationId)(request, config, performanceClient, logger);\r\n return {\r\n ...request,\r\n ...baseRequest,\r\n account: account,\r\n forceRefresh: request.forceRefresh || false,\r\n };\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nclass StandardInteractionClient extends BaseInteractionClient {\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n async initializeAuthorizationCodeRequest(request) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, this.correlationId);\r\n const generatedPkceParams = await invokeAsync(generatePkceCodes, PerformanceEvents.GeneratePkceCodes, this.logger, this.performanceClient, this.correlationId)(this.performanceClient, this.logger, this.correlationId);\r\n const authCodeRequest = {\r\n ...request,\r\n redirectUri: request.redirectUri,\r\n code: Constants.EMPTY_STRING,\r\n codeVerifier: generatedPkceParams.verifier,\r\n };\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return authCodeRequest;\r\n }\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n initializeLogoutRequest(logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest?.correlationId);\r\n const validLogoutRequest = {\r\n correlationId: this.correlationId || createNewGuid(),\r\n ...logoutRequest,\r\n };\r\n /**\r\n * Set logout_hint to be login_hint from ID Token Claims if present\r\n * and logoutHint attribute wasn't manually set in logout request\r\n */\r\n if (logoutRequest) {\r\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\r\n if (!logoutRequest.logoutHint) {\r\n if (logoutRequest.account) {\r\n const logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\r\n if (logoutHint) {\r\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\r\n validLogoutRequest.logoutHint = logoutHint;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\r\n }\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri =\r\n UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri =\r\n UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri =\r\n UrlString.getAbsoluteUrl(getCurrentUri(), getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n }\r\n /**\r\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\r\n * logout_hint in end session request.\r\n * @param account\r\n */\r\n getLogoutHintFromIdTokenClaims(account) {\r\n const idTokenClaims = account.idTokenClaims;\r\n if (idTokenClaims) {\r\n if (idTokenClaims.login_hint) {\r\n return idTokenClaims.login_hint;\r\n }\r\n else {\r\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\r\n }\r\n return null;\r\n }\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param params {\r\n * serverTelemetryManager: ServerTelemetryManager;\r\n * authorityUrl?: string;\r\n * requestAzureCloudOptions?: AzureCloudOptions;\r\n * requestExtraQueryParameters?: StringDict;\r\n * account?: AccountInfo;\r\n * }\r\n */\r\n async createAuthCodeClient(params) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.correlationId);\r\n // Create auth module.\r\n const clientConfig = await invokeAsync(this.getClientConfiguration.bind(this), PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.logger, this.performanceClient, this.correlationId)(params);\r\n return new AuthorizationCodeClient(clientConfig, this.performanceClient);\r\n }\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param params {\r\n * serverTelemetryManager: ServerTelemetryManager;\r\n * requestAuthority?: string;\r\n * requestAzureCloudOptions?: AzureCloudOptions;\r\n * requestExtraQueryParameters?: boolean;\r\n * account?: AccountInfo;\r\n * }\r\n */\r\n async getClientConfiguration(params) {\r\n const { serverTelemetryManager, requestAuthority, requestAzureCloudOptions, requestExtraQueryParameters, account, } = params;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n const discoveredAuthority = await invokeAsync(this.getDiscoveredAuthority.bind(this), PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.logger, this.performanceClient, this.correlationId)({\r\n requestAuthority,\r\n requestAzureCloudOptions,\r\n requestExtraQueryParameters,\r\n account,\r\n });\r\n const logger = this.config.system.loggerOptions;\r\n return {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities,\r\n redirectUri: this.config.auth.redirectUri,\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true,\r\n },\r\n loggerOptions: {\r\n loggerCallback: logger.loggerCallback,\r\n piiLoggingEnabled: logger.piiLoggingEnabled,\r\n logLevel: logger.logLevel,\r\n correlationId: this.correlationId,\r\n },\r\n cacheOptions: {\r\n claimsBasedCachingEnabled: this.config.cache.claimsBasedCachingEnabled,\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING,\r\n },\r\n telemetry: this.config.telemetry,\r\n };\r\n }\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n async initializeAuthorizationRequest(request, interactionType) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);\r\n const redirectUri = this.getRedirectUri(request.redirectUri);\r\n const browserState = {\r\n interactionType: interactionType,\r\n };\r\n const state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);\r\n const baseRequest = await invokeAsync(initializeBaseRequest, PerformanceEvents.InitializeBaseRequest, this.logger, this.performanceClient, this.correlationId)({ ...request, correlationId: this.correlationId }, this.config, this.performanceClient, this.logger);\r\n const validatedRequest = {\r\n ...baseRequest,\r\n redirectUri: redirectUri,\r\n state: state,\r\n nonce: request.nonce || createNewGuid(),\r\n responseMode: this.config.auth.OIDCOptions\r\n .serverResponseType,\r\n };\r\n // Skip active account lookup if either login hint or session id is set\r\n if (request.loginHint || request.sid) {\r\n return validatedRequest;\r\n }\r\n const account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\", this.correlationId);\r\n this.logger.verbosePii(`Setting validated request account: ${account.homeAccountId}`, this.correlationId);\r\n validatedRequest.account = account;\r\n }\r\n return validatedRequest;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst contentError = \"ContentError\";\r\nconst userSwitch = \"user_switch\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Status Codes that can be thrown by WAM\r\nconst USER_INTERACTION_REQUIRED = \"USER_INTERACTION_REQUIRED\";\r\nconst USER_CANCEL = \"USER_CANCEL\";\r\nconst NO_NETWORK = \"NO_NETWORK\";\r\nconst PERSISTENT_ERROR = \"PERSISTENT_ERROR\";\r\nconst DISABLED = \"DISABLED\";\r\nconst ACCOUNT_UNAVAILABLE = \"ACCOUNT_UNAVAILABLE\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst INVALID_METHOD_ERROR = -2147186943;\r\nconst NativeAuthErrorMessages = {\r\n [userSwitch]: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\",\r\n};\r\nclass NativeAuthError extends AuthError {\r\n constructor(errorCode, description, ext) {\r\n super(errorCode, description);\r\n Object.setPrototypeOf(this, NativeAuthError.prototype);\r\n this.name = \"NativeAuthError\";\r\n this.ext = ext;\r\n }\r\n}\r\n/**\r\n * These errors should result in a fallback to the 'standard' browser based auth flow.\r\n */\r\nfunction isFatalNativeAuthError(error) {\r\n if (error.ext &&\r\n error.ext.status &&\r\n (error.ext.status === PERSISTENT_ERROR ||\r\n error.ext.status === DISABLED)) {\r\n return true;\r\n }\r\n if (error.ext &&\r\n error.ext.error &&\r\n error.ext.error === INVALID_METHOD_ERROR) {\r\n return true;\r\n }\r\n switch (error.errorCode) {\r\n case contentError:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n}\r\n/**\r\n * Create the appropriate error object based on the WAM status code.\r\n * @param code\r\n * @param description\r\n * @param ext\r\n * @returns\r\n */\r\nfunction createNativeAuthError(code, description, ext) {\r\n if (ext && ext.status) {\r\n switch (ext.status) {\r\n case ACCOUNT_UNAVAILABLE:\r\n return createInteractionRequiredAuthError(nativeAccountUnavailable);\r\n case USER_INTERACTION_REQUIRED:\r\n return new InteractionRequiredAuthError(code, description);\r\n case USER_CANCEL:\r\n return createBrowserAuthError(userCancelled);\r\n case NO_NETWORK:\r\n return createBrowserAuthError(noNetworkConnectivity);\r\n }\r\n }\r\n return new NativeAuthError(code, NativeAuthErrorMessages[code] || description, ext);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass SilentCacheClient extends StandardInteractionClient {\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n async acquireToken(silentRequest) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);\r\n // Telemetry manager only used to increment cacheHits here\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n const clientConfig = await invokeAsync(this.getClientConfiguration.bind(this), PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.logger, this.performanceClient, this.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: silentRequest.authority,\r\n requestAzureCloudOptions: silentRequest.azureCloudOptions,\r\n account: silentRequest.account,\r\n });\r\n const silentAuthClient = new SilentFlowClient(clientConfig, this.performanceClient);\r\n this.logger.verbose(\"Silent auth client created\");\r\n try {\r\n const response = await invokeAsync(silentAuthClient.acquireCachedToken.bind(silentAuthClient), PerformanceEvents.SilentFlowClientAcquireCachedToken, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest);\r\n const authResponse = response[0];\r\n this.performanceClient.addFields({\r\n fromCache: true,\r\n }, silentRequest.correlationId);\r\n return authResponse;\r\n }\r\n catch (error) {\r\n if (error instanceof BrowserAuthError &&\r\n error.errorCode === cryptoKeyNotFound) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * API to silenty clear the browser cache.\r\n * @param logoutRequest\r\n */\r\n logout(logoutRequest) {\r\n this.logger.verbose(\"logoutRedirect called\");\r\n const validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n return this.clearCacheOnLogout(validLogoutRequest?.account);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass NativeInteractionClient extends BaseInteractionClient {\r\n constructor(config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, provider, accountId, nativeStorageImpl, correlationId) {\r\n super(config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId);\r\n this.apiId = apiId;\r\n this.accountId = accountId;\r\n this.nativeMessageHandler = provider;\r\n this.nativeStorageManager = nativeStorageImpl;\r\n this.silentCacheClient = new SilentCacheClient(config, this.nativeStorageManager, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId);\r\n const extensionName = this.nativeMessageHandler.getExtensionId() ===\r\n NativeConstants.PREFERRED_EXTENSION_ID\r\n ? \"chrome\"\r\n : this.nativeMessageHandler.getExtensionId()?.length\r\n ? \"unknown\"\r\n : undefined;\r\n this.skus = ServerTelemetryManager.makeExtraSkuString({\r\n libraryName: BrowserConstants.MSAL_SKU,\r\n libraryVersion: version,\r\n extensionName: extensionName,\r\n extensionVersion: this.nativeMessageHandler.getExtensionVersion(),\r\n });\r\n }\r\n /**\r\n * Adds SKUs to request extra query parameters\r\n * @param request {NativeTokenRequest}\r\n * @private\r\n */\r\n addRequestSKUs(request) {\r\n request.extraParameters = {\r\n ...request.extraParameters,\r\n [X_CLIENT_EXTRA_SKU]: this.skus,\r\n };\r\n }\r\n /**\r\n * Acquire token from native platform via browser extension\r\n * @param request\r\n */\r\n async acquireToken(request) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.NativeInteractionClientAcquireToken, request.correlationId);\r\n this.logger.trace(\"NativeInteractionClient - acquireToken called.\");\r\n // start the perf measurement\r\n const nativeATMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.NativeInteractionClientAcquireToken, request.correlationId);\r\n const reqTimestamp = nowSeconds();\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n try {\r\n // initialize native request\r\n const nativeRequest = await this.initializeNativeRequest(request);\r\n // check if the tokens can be retrieved from internal cache\r\n try {\r\n const result = await this.acquireTokensFromCache(this.accountId, nativeRequest);\r\n nativeATMeasurement.end({\r\n success: true,\r\n isNativeBroker: false,\r\n fromCache: true,\r\n });\r\n return result;\r\n }\r\n catch (e) {\r\n // continue with a native call for any and all errors\r\n this.logger.info(\"MSAL internal Cache does not contain tokens, proceed to make a native call\");\r\n }\r\n const { ...nativeTokenRequest } = nativeRequest;\r\n // fall back to native calls\r\n const messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeTokenRequest,\r\n };\r\n const response = await this.nativeMessageHandler.sendMessage(messageBody);\r\n const validatedResponse = this.validateNativeResponse(response);\r\n return await this.handleNativeResponse(validatedResponse, nativeRequest, reqTimestamp)\r\n .then((result) => {\r\n nativeATMeasurement.end({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: result.requestId,\r\n });\r\n serverTelemetryManager.clearNativeBrokerErrorCode();\r\n return result;\r\n })\r\n .catch((error) => {\r\n nativeATMeasurement.end({\r\n success: false,\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n isNativeBroker: true,\r\n });\r\n throw error;\r\n });\r\n }\r\n catch (e) {\r\n if (e instanceof NativeAuthError) {\r\n serverTelemetryManager.setNativeBrokerErrorCode(e.errorCode);\r\n }\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Creates silent flow request\r\n * @param request\r\n * @param cachedAccount\r\n * @returns CommonSilentFlowRequest\r\n */\r\n createSilentCacheRequest(request, cachedAccount) {\r\n return {\r\n authority: request.authority,\r\n correlationId: this.correlationId,\r\n scopes: ScopeSet.fromString(request.scope).asArray(),\r\n account: cachedAccount,\r\n forceRefresh: false,\r\n };\r\n }\r\n /**\r\n * Fetches the tokens from the cache if un-expired\r\n * @param nativeAccountId\r\n * @param request\r\n * @returns authenticationResult\r\n */\r\n async acquireTokensFromCache(nativeAccountId, request) {\r\n if (!nativeAccountId) {\r\n this.logger.warning(\"NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided\");\r\n throw createClientAuthError(noAccountFound);\r\n }\r\n // fetch the account from browser cache\r\n const account = this.browserStorage.getBaseAccountInfo({\r\n nativeAccountId,\r\n });\r\n if (!account) {\r\n throw createClientAuthError(noAccountFound);\r\n }\r\n // leverage silent flow for cached tokens retrieval\r\n try {\r\n const silentRequest = this.createSilentCacheRequest(request, account);\r\n const result = await this.silentCacheClient.acquireToken(silentRequest);\r\n const fullAccount = {\r\n ...account,\r\n idTokenClaims: result?.idTokenClaims,\r\n idToken: result?.idToken,\r\n };\r\n return {\r\n ...result,\r\n account: fullAccount,\r\n };\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Acquires a token from native platform then redirects to the redirectUri instead of returning the response\r\n * @param {RedirectRequest} request\r\n * @param {InProgressPerformanceEvent} rootMeasurement\r\n */\r\n async acquireTokenRedirect(request, rootMeasurement) {\r\n this.logger.trace(\"NativeInteractionClient - acquireTokenRedirect called.\");\r\n const { ...remainingParameters } = request;\r\n delete remainingParameters.onRedirectNavigate;\r\n const nativeRequest = await this.initializeNativeRequest(remainingParameters);\r\n const messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest,\r\n };\r\n try {\r\n const response = await this.nativeMessageHandler.sendMessage(messageBody);\r\n this.validateNativeResponse(response);\r\n }\r\n catch (e) {\r\n // Only throw fatal errors here to allow application to fallback to regular redirect. Otherwise proceed and the error will be thrown in handleRedirectPromise\r\n if (e instanceof NativeAuthError) {\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n serverTelemetryManager.setNativeBrokerErrorCode(e.errorCode);\r\n if (isFatalNativeAuthError(e)) {\r\n throw e;\r\n }\r\n }\r\n }\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, JSON.stringify(nativeRequest), true);\r\n const navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false,\r\n };\r\n const redirectUri = this.config.auth.navigateToLoginRequestUrl\r\n ? window.location.href\r\n : this.getRedirectUri(request.redirectUri);\r\n rootMeasurement.end({ success: true });\r\n await this.navigationClient.navigateExternal(redirectUri, navigationOptions); // Need to treat this as external to ensure handleRedirectPromise is run again\r\n }\r\n /**\r\n * If the previous page called native platform for a token using redirect APIs, send the same request again and return the response\r\n * @param performanceClient {IPerformanceClient?}\r\n * @param correlationId {string?} correlation identifier\r\n */\r\n async handleRedirectPromise(performanceClient, correlationId) {\r\n this.logger.trace(\"NativeInteractionClient - handleRedirectPromise called.\");\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return null;\r\n }\r\n // remove prompt from the request to prevent WAM from prompting twice\r\n const cachedRequest = this.browserStorage.getCachedNativeRequest();\r\n if (!cachedRequest) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null.\");\r\n if (performanceClient && correlationId) {\r\n performanceClient?.addFields({ errorCode: \"no_cached_request\" }, correlationId);\r\n }\r\n return null;\r\n }\r\n const { prompt, ...request } = cachedRequest;\r\n if (prompt) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window.\");\r\n }\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n const messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: request,\r\n };\r\n const reqTimestamp = nowSeconds();\r\n try {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise sending message to native broker.\");\r\n const response = await this.nativeMessageHandler.sendMessage(messageBody);\r\n this.validateNativeResponse(response);\r\n const result = this.handleNativeResponse(response, request, reqTimestamp);\r\n this.browserStorage.setInteractionInProgress(false);\r\n const res = await result;\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n serverTelemetryManager.clearNativeBrokerErrorCode();\r\n return res;\r\n }\r\n catch (e) {\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Logout from native platform via browser extension\r\n * @param request\r\n */\r\n logout() {\r\n this.logger.trace(\"NativeInteractionClient - logout called.\");\r\n return Promise.reject(\"Logout not implemented yet\");\r\n }\r\n /**\r\n * Transform response from native platform into AuthenticationResult object which will be returned to the end user\r\n * @param response\r\n * @param request\r\n * @param reqTimestamp\r\n */\r\n async handleNativeResponse(response, request, reqTimestamp) {\r\n this.logger.trace(\"NativeInteractionClient - handleNativeResponse called.\");\r\n // generate identifiers\r\n const idTokenClaims = extractTokenClaims(response.id_token, base64Decode);\r\n const homeAccountIdentifier = this.createHomeAccountIdentifier(response, idTokenClaims);\r\n const cachedhomeAccountId = this.browserStorage.getAccountInfoFilteredBy({\r\n nativeAccountId: request.accountId,\r\n })?.homeAccountId;\r\n if (homeAccountIdentifier !== cachedhomeAccountId &&\r\n response.account.id !== request.accountId) {\r\n // User switch in native broker prompt is not supported. All users must first sign in through web flow to ensure server state is in sync\r\n throw createNativeAuthError(userSwitch);\r\n }\r\n // Get the preferred_cache domain for the given authority\r\n const authority = await this.getDiscoveredAuthority({\r\n requestAuthority: request.authority,\r\n });\r\n const baseAccount = buildAccountToCache(this.browserStorage, authority, homeAccountIdentifier, base64Decode, idTokenClaims, response.client_info, undefined, // environment\r\n idTokenClaims.tid, undefined, // auth code payload\r\n response.account.id, this.logger);\r\n // generate authenticationResult\r\n const result = await this.generateAuthenticationResult(response, request, idTokenClaims, baseAccount, authority.canonicalAuthority, reqTimestamp);\r\n // cache accounts and tokens in the appropriate storage\r\n await this.cacheAccount(baseAccount);\r\n await this.cacheNativeTokens(response, request, homeAccountIdentifier, idTokenClaims, response.access_token, result.tenantId, reqTimestamp);\r\n return result;\r\n }\r\n /**\r\n * creates an homeAccountIdentifier for the account\r\n * @param response\r\n * @param idTokenObj\r\n * @returns\r\n */\r\n createHomeAccountIdentifier(response, idTokenClaims) {\r\n // Save account in browser storage\r\n const homeAccountIdentifier = AccountEntity.generateHomeAccountId(response.client_info || Constants.EMPTY_STRING, AuthorityType.Default, this.logger, this.browserCrypto, idTokenClaims);\r\n return homeAccountIdentifier;\r\n }\r\n /**\r\n * Helper to generate scopes\r\n * @param response\r\n * @param request\r\n * @returns\r\n */\r\n generateScopes(response, request) {\r\n return response.scope\r\n ? ScopeSet.fromString(response.scope)\r\n : ScopeSet.fromString(request.scope);\r\n }\r\n /**\r\n * If PoP token is requesred, records the PoP token if returned from the WAM, else generates one in the browser\r\n * @param request\r\n * @param response\r\n */\r\n async generatePopAccessToken(response, request) {\r\n if (request.tokenType === AuthenticationScheme.POP &&\r\n request.signPopToken) {\r\n /**\r\n * This code prioritizes SHR returned from the native layer. In case of error/SHR not calculated from WAM and the AT\r\n * is still received, SHR is calculated locally\r\n */\r\n // Check if native layer returned an SHR token\r\n if (response.shr) {\r\n this.logger.trace(\"handleNativeServerResponse: SHR is enabled in native layer\");\r\n return response.shr;\r\n }\r\n // Generate SHR in msal js if WAM does not compute it when POP is enabled\r\n const popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n const shrParameters = {\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce,\r\n };\r\n /**\r\n * KeyID must be present in the native request from when the PoP key was generated in order for\r\n * PopTokenGenerator to query the full key for signing\r\n */\r\n if (!request.keyId) {\r\n throw createClientAuthError(keyIdMissing);\r\n }\r\n return popTokenGenerator.signPopToken(response.access_token, request.keyId, shrParameters);\r\n }\r\n else {\r\n return response.access_token;\r\n }\r\n }\r\n /**\r\n * Generates authentication result\r\n * @param response\r\n * @param request\r\n * @param idTokenObj\r\n * @param accountEntity\r\n * @param authority\r\n * @param reqTimestamp\r\n * @returns\r\n */\r\n async generateAuthenticationResult(response, request, idTokenClaims, accountEntity, authority, reqTimestamp) {\r\n // Add Native Broker fields to Telemetry\r\n const mats = this.addTelemetryFromNativeResponse(response);\r\n // If scopes not returned in server response, use request scopes\r\n const responseScopes = response.scope\r\n ? ScopeSet.fromString(response.scope)\r\n : ScopeSet.fromString(request.scope);\r\n const accountProperties = response.account.properties || {};\r\n const uid = accountProperties[\"UID\"] ||\r\n idTokenClaims.oid ||\r\n idTokenClaims.sub ||\r\n Constants.EMPTY_STRING;\r\n const tid = accountProperties[\"TenantId\"] ||\r\n idTokenClaims.tid ||\r\n Constants.EMPTY_STRING;\r\n const accountInfo = updateAccountTenantProfileData(accountEntity.getAccountInfo(), undefined, // tenantProfile optional\r\n idTokenClaims, response.id_token);\r\n /**\r\n * In pairwise broker flows, this check prevents the broker's native account id\r\n * from being returned over the embedded app's account id.\r\n */\r\n if (accountInfo.nativeAccountId !== response.account.id) {\r\n accountInfo.nativeAccountId = response.account.id;\r\n }\r\n // generate PoP token as needed\r\n const responseAccessToken = await this.generatePopAccessToken(response, request);\r\n const tokenType = request.tokenType === AuthenticationScheme.POP\r\n ? AuthenticationScheme.POP\r\n : AuthenticationScheme.BEARER;\r\n const result = {\r\n authority: authority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes.asArray(),\r\n account: accountInfo,\r\n idToken: response.id_token,\r\n idTokenClaims: idTokenClaims,\r\n accessToken: responseAccessToken,\r\n fromCache: mats ? this.isResponseFromCache(mats) : false,\r\n expiresOn: new Date(Number(reqTimestamp + response.expires_in) * 1000),\r\n tokenType: tokenType,\r\n correlationId: this.correlationId,\r\n state: response.state,\r\n fromNativeBroker: true,\r\n };\r\n return result;\r\n }\r\n /**\r\n * cache the account entity in browser storage\r\n * @param accountEntity\r\n */\r\n async cacheAccount(accountEntity) {\r\n // Store the account info and hence `nativeAccountId` in browser cache\r\n await this.browserStorage.setAccount(accountEntity, this.correlationId);\r\n // Remove any existing cached tokens for this account in browser storage\r\n this.browserStorage.removeAccountContext(accountEntity).catch((e) => {\r\n this.logger.error(`Error occurred while removing account context from browser storage. ${e}`);\r\n });\r\n }\r\n /**\r\n * Stores the access_token and id_token in inmemory storage\r\n * @param response\r\n * @param request\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param responseAccessToken\r\n * @param tenantId\r\n * @param reqTimestamp\r\n */\r\n cacheNativeTokens(response, request, homeAccountIdentifier, idTokenClaims, responseAccessToken, tenantId, reqTimestamp) {\r\n const cachedIdToken = createIdTokenEntity(homeAccountIdentifier, request.authority, response.id_token || \"\", request.clientId, idTokenClaims.tid || \"\");\r\n // cache accessToken in inmemory storage\r\n const expiresIn = request.tokenType === AuthenticationScheme.POP\r\n ? Constants.SHR_NONCE_VALIDITY\r\n : (typeof response.expires_in === \"string\"\r\n ? parseInt(response.expires_in, 10)\r\n : response.expires_in) || 0;\r\n const tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n const responseScopes = this.generateScopes(response, request);\r\n const cachedAccessToken = createAccessTokenEntity(homeAccountIdentifier, request.authority, responseAccessToken, request.clientId, idTokenClaims.tid || tenantId, responseScopes.printScopes(), tokenExpirationSeconds, 0, base64Decode, undefined, request.tokenType, undefined, request.keyId);\r\n const nativeCacheRecord = {\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n };\r\n return this.nativeStorageManager.saveCacheRecord(nativeCacheRecord, this.correlationId, request.storeInCache);\r\n }\r\n addTelemetryFromNativeResponse(response) {\r\n const mats = this.getMATSFromResponse(response);\r\n if (!mats) {\r\n return null;\r\n }\r\n this.performanceClient.addFields({\r\n extensionId: this.nativeMessageHandler.getExtensionId(),\r\n extensionVersion: this.nativeMessageHandler.getExtensionVersion(),\r\n matsBrokerVersion: mats.broker_version,\r\n matsAccountJoinOnStart: mats.account_join_on_start,\r\n matsAccountJoinOnEnd: mats.account_join_on_end,\r\n matsDeviceJoin: mats.device_join,\r\n matsPromptBehavior: mats.prompt_behavior,\r\n matsApiErrorCode: mats.api_error_code,\r\n matsUiVisible: mats.ui_visible,\r\n matsSilentCode: mats.silent_code,\r\n matsSilentBiSubCode: mats.silent_bi_sub_code,\r\n matsSilentMessage: mats.silent_message,\r\n matsSilentStatus: mats.silent_status,\r\n matsHttpStatus: mats.http_status,\r\n matsHttpEventCount: mats.http_event_count,\r\n }, this.correlationId);\r\n return mats;\r\n }\r\n /**\r\n * Validates native platform response before processing\r\n * @param response\r\n */\r\n validateNativeResponse(response) {\r\n if (response.hasOwnProperty(\"access_token\") &&\r\n response.hasOwnProperty(\"id_token\") &&\r\n response.hasOwnProperty(\"client_info\") &&\r\n response.hasOwnProperty(\"account\") &&\r\n response.hasOwnProperty(\"scope\") &&\r\n response.hasOwnProperty(\"expires_in\")) {\r\n return response;\r\n }\r\n else {\r\n throw createAuthError(unexpectedError, \"Response missing expected properties.\");\r\n }\r\n }\r\n /**\r\n * Gets MATS telemetry from native response\r\n * @param response\r\n * @returns\r\n */\r\n getMATSFromResponse(response) {\r\n if (response.properties.MATS) {\r\n try {\r\n return JSON.parse(response.properties.MATS);\r\n }\r\n catch (e) {\r\n this.logger.error(\"NativeInteractionClient - Error parsing MATS telemetry, returning null instead\");\r\n }\r\n }\r\n return null;\r\n }\r\n /**\r\n * Returns whether or not response came from native cache\r\n * @param response\r\n * @returns\r\n */\r\n isResponseFromCache(mats) {\r\n if (typeof mats.is_cached === \"undefined\") {\r\n this.logger.verbose(\"NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false.\");\r\n return false;\r\n }\r\n return !!mats.is_cached;\r\n }\r\n /**\r\n * Translates developer provided request object into NativeRequest object\r\n * @param request\r\n */\r\n async initializeNativeRequest(request) {\r\n this.logger.trace(\"NativeInteractionClient - initializeNativeRequest called\");\r\n const requestAuthority = request.authority || this.config.auth.authority;\r\n if (request.account) {\r\n // validate authority\r\n await this.getDiscoveredAuthority({\r\n requestAuthority,\r\n requestAzureCloudOptions: request.azureCloudOptions,\r\n account: request.account,\r\n });\r\n }\r\n const canonicalAuthority = new UrlString(requestAuthority);\r\n canonicalAuthority.validateAsUri();\r\n // scopes are expected to be received by the native broker as \"scope\" and will be added to the request below. Other properties that should be dropped from the request to the native broker can be included in the object destructuring here.\r\n const { scopes, ...remainingProperties } = request;\r\n const scopeSet = new ScopeSet(scopes || []);\r\n scopeSet.appendScopes(OIDC_DEFAULT_SCOPES);\r\n const getPrompt = () => {\r\n // If request is silent, prompt is always none\r\n switch (this.apiId) {\r\n case ApiId.ssoSilent:\r\n case ApiId.acquireTokenSilent_silentFlow:\r\n this.logger.trace(\"initializeNativeRequest: silent request sets prompt to none\");\r\n return PromptValue.NONE;\r\n }\r\n // Prompt not provided, request may proceed and native broker decides if it needs to prompt\r\n if (!request.prompt) {\r\n this.logger.trace(\"initializeNativeRequest: prompt was not provided\");\r\n return undefined;\r\n }\r\n // If request is interactive, check if prompt provided is allowed to go directly to native broker\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n this.logger.trace(\"initializeNativeRequest: prompt is compatible with native flow\");\r\n return request.prompt;\r\n default:\r\n this.logger.trace(`initializeNativeRequest: prompt = ${request.prompt} is not compatible with native flow`);\r\n throw createBrowserAuthError(nativePromptNotSupported);\r\n }\r\n };\r\n const validatedRequest = {\r\n ...remainingProperties,\r\n accountId: this.accountId,\r\n clientId: this.config.auth.clientId,\r\n authority: canonicalAuthority.urlString,\r\n scope: scopeSet.printScopes(),\r\n redirectUri: this.getRedirectUri(request.redirectUri),\r\n prompt: getPrompt(),\r\n correlationId: this.correlationId,\r\n tokenType: request.authenticationScheme,\r\n windowTitleSubstring: document.title,\r\n extraParameters: {\r\n ...request.extraQueryParameters,\r\n ...request.tokenQueryParameters,\r\n },\r\n extendedExpiryToken: false,\r\n keyId: request.popKid,\r\n };\r\n // Check for PoP token requests: signPopToken should only be set to true if popKid is not set\r\n if (validatedRequest.signPopToken && !!request.popKid) {\r\n throw createBrowserAuthError(invalidPopTokenRequest);\r\n }\r\n this.handleExtraBrokerParams(validatedRequest);\r\n validatedRequest.extraParameters =\r\n validatedRequest.extraParameters || {};\r\n validatedRequest.extraParameters.telemetry =\r\n NativeConstants.MATS_TELEMETRY;\r\n if (request.authenticationScheme === AuthenticationScheme.POP) {\r\n // add POP request type\r\n const shrParameters = {\r\n resourceRequestUri: request.resourceRequestUri,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce,\r\n };\r\n const popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n // generate reqCnf if not provided in the request\r\n let reqCnfData;\r\n if (!validatedRequest.keyId) {\r\n const generatedReqCnfData = await invokeAsync(popTokenGenerator.generateCnf.bind(popTokenGenerator), PerformanceEvents.PopTokenGenerateCnf, this.logger, this.performanceClient, request.correlationId)(shrParameters, this.logger);\r\n reqCnfData = generatedReqCnfData.reqCnfString;\r\n validatedRequest.keyId = generatedReqCnfData.kid;\r\n validatedRequest.signPopToken = true;\r\n }\r\n else {\r\n reqCnfData = this.browserCrypto.base64UrlEncode(JSON.stringify({ kid: validatedRequest.keyId }));\r\n validatedRequest.signPopToken = false;\r\n }\r\n // SPAs require whole string to be passed to broker\r\n validatedRequest.reqCnf = reqCnfData;\r\n }\r\n this.addRequestSKUs(validatedRequest);\r\n return validatedRequest;\r\n }\r\n /**\r\n * Handles extra broker request parameters\r\n * @param request {NativeTokenRequest}\r\n * @private\r\n */\r\n handleExtraBrokerParams(request) {\r\n const hasExtraBrokerParams = request.extraParameters &&\r\n request.extraParameters.hasOwnProperty(BROKER_CLIENT_ID) &&\r\n request.extraParameters.hasOwnProperty(BROKER_REDIRECT_URI) &&\r\n request.extraParameters.hasOwnProperty(CLIENT_ID);\r\n if (!request.embeddedClientId && !hasExtraBrokerParams) {\r\n return;\r\n }\r\n let child_client_id = \"\";\r\n const child_redirect_uri = request.redirectUri;\r\n if (request.embeddedClientId) {\r\n request.redirectUri = this.config.auth.redirectUri;\r\n child_client_id = request.embeddedClientId;\r\n }\r\n else if (request.extraParameters) {\r\n request.redirectUri =\r\n request.extraParameters[BROKER_REDIRECT_URI];\r\n child_client_id =\r\n request.extraParameters[CLIENT_ID];\r\n }\r\n request.extraParameters = {\r\n child_client_id,\r\n child_redirect_uri,\r\n };\r\n this.performanceClient?.addFields({\r\n embeddedClientId: child_client_id,\r\n embeddedRedirectUri: child_redirect_uri,\r\n }, request.correlationId);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass NativeMessageHandler {\r\n constructor(logger, handshakeTimeoutMs, performanceClient, extensionId) {\r\n this.logger = logger;\r\n this.handshakeTimeoutMs = handshakeTimeoutMs;\r\n this.extensionId = extensionId;\r\n this.resolvers = new Map(); // Used for non-handshake messages\r\n this.handshakeResolvers = new Map(); // Used for handshake messages\r\n this.messageChannel = new MessageChannel();\r\n this.windowListener = this.onWindowMessage.bind(this); // Window event callback doesn't have access to 'this' unless it's bound\r\n this.performanceClient = performanceClient;\r\n this.handshakeEvent = performanceClient.startMeasurement(PerformanceEvents.NativeMessageHandlerHandshake);\r\n }\r\n /**\r\n * Sends a given message to the extension and resolves with the extension response\r\n * @param body\r\n */\r\n async sendMessage(body) {\r\n this.logger.trace(\"NativeMessageHandler - sendMessage called.\");\r\n const req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: createNewGuid(),\r\n body: body,\r\n };\r\n this.logger.trace(\"NativeMessageHandler - Sending request to browser extension\");\r\n this.logger.tracePii(`NativeMessageHandler - Sending request to browser extension: ${JSON.stringify(req)}`);\r\n this.messageChannel.port1.postMessage(req);\r\n return new Promise((resolve, reject) => {\r\n this.resolvers.set(req.responseId, { resolve, reject });\r\n });\r\n }\r\n /**\r\n * Returns an instance of the MessageHandler that has successfully established a connection with an extension\r\n * @param {Logger} logger\r\n * @param {number} handshakeTimeoutMs\r\n * @param {IPerformanceClient} performanceClient\r\n * @param {ICrypto} crypto\r\n */\r\n static async createProvider(logger, handshakeTimeoutMs, performanceClient) {\r\n logger.trace(\"NativeMessageHandler - createProvider called.\");\r\n try {\r\n const preferredProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, NativeConstants.PREFERRED_EXTENSION_ID);\r\n await preferredProvider.sendHandshakeRequest();\r\n return preferredProvider;\r\n }\r\n catch (e) {\r\n // If preferred extension fails for whatever reason, fallback to using any installed extension\r\n const backupProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient);\r\n await backupProvider.sendHandshakeRequest();\r\n return backupProvider;\r\n }\r\n }\r\n /**\r\n * Send handshake request helper.\r\n */\r\n async sendHandshakeRequest() {\r\n this.logger.trace(\"NativeMessageHandler - sendHandshakeRequest called.\");\r\n // Register this event listener before sending handshake\r\n window.addEventListener(\"message\", this.windowListener, false); // false is important, because content script message processing should work first\r\n const req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: createNewGuid(),\r\n body: {\r\n method: NativeExtensionMethod.HandshakeRequest,\r\n },\r\n };\r\n this.handshakeEvent.add({\r\n extensionId: this.extensionId,\r\n extensionHandshakeTimeoutMs: this.handshakeTimeoutMs,\r\n });\r\n this.messageChannel.port1.onmessage = (event) => {\r\n this.onChannelMessage(event);\r\n };\r\n window.postMessage(req, window.origin, [this.messageChannel.port2]);\r\n return new Promise((resolve, reject) => {\r\n this.handshakeResolvers.set(req.responseId, { resolve, reject });\r\n this.timeoutId = window.setTimeout(() => {\r\n /*\r\n * Throw an error if neither HandshakeResponse nor original Handshake request are received in a reasonable timeframe.\r\n * This typically suggests an event handler stopped propagation of the Handshake request but did not respond to it on the MessageChannel port\r\n */\r\n window.removeEventListener(\"message\", this.windowListener, false);\r\n this.messageChannel.port1.close();\r\n this.messageChannel.port2.close();\r\n this.handshakeEvent.end({\r\n extensionHandshakeTimedOut: true,\r\n success: false,\r\n });\r\n reject(createBrowserAuthError(nativeHandshakeTimeout));\r\n this.handshakeResolvers.delete(req.responseId);\r\n }, this.handshakeTimeoutMs); // Use a reasonable timeout in milliseconds here\r\n });\r\n }\r\n /**\r\n * Invoked when a message is posted to the window. If a handshake request is received it means the extension is not installed.\r\n * @param event\r\n */\r\n onWindowMessage(event) {\r\n this.logger.trace(\"NativeMessageHandler - onWindowMessage called\");\r\n // We only accept messages from ourselves\r\n if (event.source !== window) {\r\n return;\r\n }\r\n const request = event.data;\r\n if (!request.channel ||\r\n request.channel !== NativeConstants.CHANNEL_ID) {\r\n return;\r\n }\r\n if (request.extensionId && request.extensionId !== this.extensionId) {\r\n return;\r\n }\r\n if (request.body.method === NativeExtensionMethod.HandshakeRequest) {\r\n const handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n /*\r\n * Filter out responses with no matched resolvers sooner to keep channel ports open while waiting for\r\n * the proper response.\r\n */\r\n if (!handshakeResolver) {\r\n this.logger.trace(`NativeMessageHandler.onWindowMessage - resolver can't be found for request ${request.responseId}`);\r\n return;\r\n }\r\n // If we receive this message back it means no extension intercepted the request, meaning no extension supporting handshake protocol is installed\r\n this.logger.verbose(request.extensionId\r\n ? `Extension with id: ${request.extensionId} not installed`\r\n : \"No extension installed\");\r\n clearTimeout(this.timeoutId);\r\n this.messageChannel.port1.close();\r\n this.messageChannel.port2.close();\r\n window.removeEventListener(\"message\", this.windowListener, false);\r\n this.handshakeEvent.end({\r\n success: false,\r\n extensionInstalled: false,\r\n });\r\n handshakeResolver.reject(createBrowserAuthError(nativeExtensionNotInstalled));\r\n }\r\n }\r\n /**\r\n * Invoked when a message is received from the extension on the MessageChannel port\r\n * @param event\r\n */\r\n onChannelMessage(event) {\r\n this.logger.trace(\"NativeMessageHandler - onChannelMessage called.\");\r\n const request = event.data;\r\n const resolver = this.resolvers.get(request.responseId);\r\n const handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n try {\r\n const method = request.body.method;\r\n if (method === NativeExtensionMethod.Response) {\r\n if (!resolver) {\r\n return;\r\n }\r\n const response = request.body.response;\r\n this.logger.trace(\"NativeMessageHandler - Received response from browser extension\");\r\n this.logger.tracePii(`NativeMessageHandler - Received response from browser extension: ${JSON.stringify(response)}`);\r\n if (response.status !== \"Success\") {\r\n resolver.reject(createNativeAuthError(response.code, response.description, response.ext));\r\n }\r\n else if (response.result) {\r\n if (response.result[\"code\"] &&\r\n response.result[\"description\"]) {\r\n resolver.reject(createNativeAuthError(response.result[\"code\"], response.result[\"description\"], response.result[\"ext\"]));\r\n }\r\n else {\r\n resolver.resolve(response.result);\r\n }\r\n }\r\n else {\r\n throw createAuthError(unexpectedError, \"Event does not contain result.\");\r\n }\r\n this.resolvers.delete(request.responseId);\r\n }\r\n else if (method === NativeExtensionMethod.HandshakeResponse) {\r\n if (!handshakeResolver) {\r\n this.logger.trace(`NativeMessageHandler.onChannelMessage - resolver can't be found for request ${request.responseId}`);\r\n return;\r\n }\r\n clearTimeout(this.timeoutId); // Clear setTimeout\r\n window.removeEventListener(\"message\", this.windowListener, false); // Remove 'No extension' listener\r\n this.extensionId = request.extensionId;\r\n this.extensionVersion = request.body.version;\r\n this.logger.verbose(`NativeMessageHandler - Received HandshakeResponse from extension: ${this.extensionId}`);\r\n this.handshakeEvent.end({\r\n extensionInstalled: true,\r\n success: true,\r\n });\r\n handshakeResolver.resolve();\r\n this.handshakeResolvers.delete(request.responseId);\r\n }\r\n // Do nothing if method is not Response or HandshakeResponse\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error parsing response from WAM Extension\");\r\n this.logger.errorPii(`Error parsing response from WAM Extension: ${err}`);\r\n this.logger.errorPii(`Unable to parse ${event}`);\r\n if (resolver) {\r\n resolver.reject(err);\r\n }\r\n else if (handshakeResolver) {\r\n handshakeResolver.reject(err);\r\n }\r\n }\r\n }\r\n /**\r\n * Returns the Id for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n getExtensionId() {\r\n return this.extensionId;\r\n }\r\n /**\r\n * Returns the version for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n getExtensionVersion() {\r\n return this.extensionVersion;\r\n }\r\n /**\r\n * Returns boolean indicating whether or not the request should attempt to use native broker\r\n * @param logger\r\n * @param config\r\n * @param nativeExtensionProvider\r\n * @param authenticationScheme\r\n */\r\n static isPlatformBrokerAvailable(config, logger, nativeExtensionProvider, authenticationScheme) {\r\n logger.trace(\"isPlatformBrokerAvailable called\");\r\n if (!config.system.allowPlatformBroker) {\r\n logger.trace(\"isPlatformBrokerAvailable: allowPlatformBroker is not enabled, returning false\");\r\n // Developer disabled WAM\r\n return false;\r\n }\r\n if (!nativeExtensionProvider) {\r\n logger.trace(\"isPlatformBrokerAvailable: Platform extension provider is not initialized, returning false\");\r\n // Extension is not available\r\n return false;\r\n }\r\n if (authenticationScheme) {\r\n switch (authenticationScheme) {\r\n case AuthenticationScheme.BEARER:\r\n case AuthenticationScheme.POP:\r\n logger.trace(\"isPlatformBrokerAvailable: authenticationScheme is supported, returning true\");\r\n return true;\r\n default:\r\n logger.trace(\"isPlatformBrokerAvailable: authenticationScheme is not supported, returning false\");\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nclass InteractionHandler {\r\n constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n async handleCodeResponse(response, request) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponse, request.correlationId);\r\n let authCodeResponse;\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(response, request.state);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError &&\r\n e.subError === userCancelled) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw createBrowserAuthError(userCancelled);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n return invokeAsync(this.handleCodeResponseFromServer.bind(this), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient, request.correlationId)(authCodeResponse, request);\r\n }\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse\r\n * @param state\r\n * @param authority\r\n * @param networkModule\r\n * @returns\r\n */\r\n async handleCodeResponseFromServer(authCodeResponse, request, validateNonce = true) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, request.correlationId);\r\n this.logger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n // Check for new cloud instance\r\n if (authCodeResponse.cloud_instance_host_name) {\r\n await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, request.correlationId)(authCodeResponse.cloud_instance_host_name, request.correlationId);\r\n }\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n // TODO: Assigning \"response nonce\" to \"request nonce\" is confusing. Refactor the function doing validation to accept request nonce directly\r\n authCodeResponse.nonce = request.nonce || undefined;\r\n }\r\n authCodeResponse.state = request.state;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n const ccsCred = this.createCcsCredentials(request);\r\n if (ccsCred) {\r\n this.authCodeRequest.ccsCredential = ccsCred;\r\n }\r\n }\r\n // Acquire token with retrieved code.\r\n const tokenResponse = (await invokeAsync(this.authModule.acquireToken.bind(this.authModule), PerformanceEvents.AuthClientAcquireToken, this.logger, this.performanceClient, request.correlationId)(this.authCodeRequest, authCodeResponse));\r\n return tokenResponse;\r\n }\r\n /**\r\n * Build ccs creds if available\r\n */\r\n createCcsCredentials(request) {\r\n if (request.account) {\r\n return {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID,\r\n };\r\n }\r\n else if (request.loginHint) {\r\n return {\r\n credential: request.loginHint,\r\n type: CcsCredentialType.UPN,\r\n };\r\n }\r\n return null;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction deserializeResponse(responseString, responseLocation, logger) {\r\n // Deserialize hash fragment response parameters.\r\n const serverParams = getDeserializedResponse(responseString);\r\n if (!serverParams) {\r\n if (!stripLeadingHashOrQuery(responseString)) {\r\n // Hash or Query string is empty\r\n logger.error(`The request has returned to the redirectUri but a ${responseLocation} is not present. It's likely that the ${responseLocation} has been removed or the page has been redirected by code running on the redirectUri page.`);\r\n throw createBrowserAuthError(hashEmptyError);\r\n }\r\n else {\r\n logger.error(`A ${responseLocation} is present in the iframe but it does not contain known properties. It's likely that the ${responseLocation} has been replaced by code running on the redirectUri page.`);\r\n logger.errorPii(`The ${responseLocation} detected is: ${responseString}`);\r\n throw createBrowserAuthError(hashDoesNotContainKnownProperties);\r\n }\r\n }\r\n return serverParams;\r\n}\r\n/**\r\n * Returns the interaction type that the response object belongs to\r\n */\r\nfunction validateInteractionType(response, browserCrypto, interactionType) {\r\n if (!response.state) {\r\n throw createBrowserAuthError(noStateInHash);\r\n }\r\n const platformStateObj = extractBrowserRequestState(browserCrypto, response.state);\r\n if (!platformStateObj) {\r\n throw createBrowserAuthError(unableToParseState);\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw createBrowserAuthError(stateInteractionTypeMismatch);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass PopupClient extends StandardInteractionClient {\r\n constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId);\r\n // Properly sets this reference for the unload event.\r\n this.unloadWindow = this.unloadWindow.bind(this);\r\n this.nativeStorage = nativeStorageImpl;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n acquireToken(request) {\r\n try {\r\n const popupName = this.generatePopupName(request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority);\r\n const popupParams = {\r\n popupName,\r\n popupWindowAttributes: request.popupWindowAttributes || {},\r\n popupWindowParent: request.popupWindowParent ?? window,\r\n };\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(request, popupParams);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n popupParams.popup = this.openSizedPopup(\"about:blank\", popupParams);\r\n return this.acquireTokenPopupAsync(request, popupParams);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n }\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n logout(logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n const validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n const popupParams = {\r\n popupName: this.generateLogoutPopupName(validLogoutRequest),\r\n popupWindowAttributes: logoutRequest?.popupWindowAttributes || {},\r\n popupWindowParent: logoutRequest?.popupWindowParent ?? window,\r\n };\r\n const authority = logoutRequest && logoutRequest.authority;\r\n const mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupParams, authority, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n popupParams.popup = this.openSizedPopup(\"about:blank\", popupParams);\r\n return this.logoutPopupAsync(validLogoutRequest, popupParams, authority, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n }\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n async acquireTokenPopupAsync(request, popupParams) {\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n const validRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, this.correlationId)(request, exports.InteractionType.Popup);\r\n preconnect(validRequest.authority);\r\n try {\r\n // Create auth code request and generate PKCE params\r\n const authCodeRequest = await invokeAsync(this.initializeAuthorizationCodeRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, this.logger, this.performanceClient, this.correlationId)(validRequest);\r\n // Initialize the client\r\n const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: validRequest.authority,\r\n requestAzureCloudOptions: validRequest.azureCloudOptions,\r\n requestExtraQueryParameters: validRequest.extraQueryParameters,\r\n account: validRequest.account,\r\n });\r\n const isPlatformBroker = NativeMessageHandler.isPlatformBrokerAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme);\r\n // Start measurement for server calls with native brokering enabled\r\n let fetchNativeAccountIdMeasurement;\r\n if (isPlatformBroker) {\r\n fetchNativeAccountIdMeasurement =\r\n this.performanceClient.startMeasurement(PerformanceEvents.FetchAccountIdWithNativeBroker, request.correlationId);\r\n }\r\n // Create acquire token url.\r\n const navigateUrl = await authClient.getAuthCodeUrl({\r\n ...validRequest,\r\n platformBroker: isPlatformBroker,\r\n });\r\n // Create popup interaction handler.\r\n const interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n // Show the UI once the url has been created. Get the window handle for the popup.\r\n const popupWindow = this.initiateAuthRequest(navigateUrl, popupParams);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, exports.InteractionType.Popup, { popupWindow }, null);\r\n // Monitor the window for the hash. Return the string value and close the popup when the hash is received. Default timeout is 60 seconds.\r\n const responseString = await this.monitorPopupForHash(popupWindow, popupParams.popupWindowParent);\r\n const serverParams = invoke(deserializeResponse, PerformanceEvents.DeserializeResponse, this.logger, this.performanceClient, this.correlationId)(responseString, this.config.auth.OIDCOptions.serverResponseType, this.logger);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n // end measurement for server call with native brokering enabled\r\n if (fetchNativeAccountIdMeasurement) {\r\n fetchNativeAccountIdMeasurement.end({\r\n success: true,\r\n isNativeBroker: true,\r\n });\r\n }\r\n if (!this.nativeMessageHandler) {\r\n throw createBrowserAuthError(nativeConnectionNotEstablished);\r\n }\r\n const nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, validRequest.correlationId);\r\n const { userRequestState } = ProtocolUtils.parseRequestState(this.browserCrypto, validRequest.state);\r\n return await nativeInteractionClient.acquireToken({\r\n ...validRequest,\r\n state: userRequestState,\r\n prompt: undefined, // Server should handle the prompt, ideally native broker can do this part silently\r\n });\r\n }\r\n // Handle response from hash string.\r\n const result = await interactionHandler.handleCodeResponse(serverParams, validRequest);\r\n return result;\r\n }\r\n catch (e) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popupParams.popup?.close();\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n throw e;\r\n }\r\n }\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n async logoutPopupAsync(validRequest, popupParams, requestAuthority, mainWindowRedirectUri) {\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, exports.InteractionType.Popup, validRequest);\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n try {\r\n // Clear cache on logout\r\n await this.clearCacheOnLogout(validRequest.account);\r\n // Initialize the client\r\n const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: requestAuthority,\r\n account: validRequest.account || undefined,\r\n });\r\n try {\r\n authClient.authority.endSessionEndpoint;\r\n }\r\n catch {\r\n if (validRequest.account?.homeAccountId &&\r\n validRequest.postLogoutRedirectUri &&\r\n authClient.authority.protocolMode === ProtocolMode.OIDC) {\r\n void this.browserStorage.removeAccount(validRequest.account?.homeAccountId);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, exports.InteractionType.Popup, validRequest);\r\n if (mainWindowRedirectUri) {\r\n const navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false,\r\n };\r\n const absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, getCurrentUri());\r\n await this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n popupParams.popup?.close();\r\n return;\r\n }\r\n }\r\n // Create logout string and navigate user window to logout.\r\n const logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, exports.InteractionType.Popup, validRequest);\r\n // Open the popup window to requestUrl.\r\n const popupWindow = this.openPopup(logoutUri, popupParams);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, exports.InteractionType.Popup, { popupWindow }, null);\r\n await this.monitorPopupForHash(popupWindow, popupParams.popupWindowParent).catch(() => {\r\n // Swallow any errors related to monitoring the window. Server logout is best effort\r\n });\r\n if (mainWindowRedirectUri) {\r\n const navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false,\r\n };\r\n const absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(`Redirecting main window to: ${absoluteUrl}`);\r\n await this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n }\r\n catch (e) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popupParams.popup?.close();\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, exports.InteractionType.Popup, null, e);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, exports.InteractionType.Popup);\r\n throw e;\r\n }\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, exports.InteractionType.Popup);\r\n }\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n initiateAuthRequest(requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (requestUrl) {\r\n this.logger.infoPii(`Navigate to: ${requestUrl}`);\r\n // Open the popup window to requestUrl.\r\n return this.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.logger.error(\"Navigate url is empty\");\r\n throw createBrowserAuthError(emptyNavigateUri);\r\n }\r\n }\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - timeout for processing hash once popup is redirected back to application\r\n */\r\n monitorPopupForHash(popupWindow, popupWindowParent) {\r\n return new Promise((resolve, reject) => {\r\n this.logger.verbose(\"PopupHandler.monitorPopupForHash - polling started\");\r\n const intervalId = setInterval(() => {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n this.logger.error(\"PopupHandler.monitorPopupForHash - window closed\");\r\n clearInterval(intervalId);\r\n reject(createBrowserAuthError(userCancelled));\r\n return;\r\n }\r\n let href = \"\";\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (!href || href === \"about:blank\") {\r\n return;\r\n }\r\n clearInterval(intervalId);\r\n let responseString = \"\";\r\n const responseType = this.config.auth.OIDCOptions.serverResponseType;\r\n if (popupWindow) {\r\n if (responseType === ServerResponseType.QUERY) {\r\n responseString = popupWindow.location.search;\r\n }\r\n else {\r\n responseString = popupWindow.location.hash;\r\n }\r\n }\r\n this.logger.verbose(\"PopupHandler.monitorPopupForHash - popup window is on same origin as caller\");\r\n resolve(responseString);\r\n }, this.config.system.pollIntervalMilliseconds);\r\n }).finally(() => {\r\n this.cleanPopup(popupWindow, popupWindowParent);\r\n });\r\n }\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @param popupWindowAttributes\r\n * @ignore\r\n * @hidden\r\n */\r\n openPopup(urlNavigate, popupParams) {\r\n try {\r\n let popupWindow;\r\n // Popup window passed in, setting url to navigate to\r\n if (popupParams.popup) {\r\n popupWindow = popupParams.popup;\r\n this.logger.verbosePii(`Navigating popup window to: ${urlNavigate}`);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popupParams.popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(`Opening popup window to: ${urlNavigate}`);\r\n popupWindow = this.openSizedPopup(urlNavigate, popupParams);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw createBrowserAuthError(emptyWindowError);\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n popupParams.popupWindowParent.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw createBrowserAuthError(popupWindowError);\r\n }\r\n }\r\n /**\r\n * Helper function to set popup window dimensions and position\r\n * @param urlNavigate\r\n * @param popupName\r\n * @param popupWindowAttributes\r\n * @returns\r\n */\r\n openSizedPopup(urlNavigate, { popupName, popupWindowAttributes, popupWindowParent }) {\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n const winLeft = popupWindowParent.screenLeft\r\n ? popupWindowParent.screenLeft\r\n : popupWindowParent.screenX;\r\n const winTop = popupWindowParent.screenTop\r\n ? popupWindowParent.screenTop\r\n : popupWindowParent.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n const winWidth = popupWindowParent.innerWidth ||\r\n document.documentElement.clientWidth ||\r\n document.body.clientWidth;\r\n const winHeight = popupWindowParent.innerHeight ||\r\n document.documentElement.clientHeight ||\r\n document.body.clientHeight;\r\n let width = popupWindowAttributes.popupSize?.width;\r\n let height = popupWindowAttributes.popupSize?.height;\r\n let top = popupWindowAttributes.popupPosition?.top;\r\n let left = popupWindowAttributes.popupPosition?.left;\r\n if (!width || width < 0 || width > winWidth) {\r\n this.logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\r\n width = BrowserConstants.POPUP_WIDTH;\r\n }\r\n if (!height || height < 0 || height > winHeight) {\r\n this.logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\r\n height = BrowserConstants.POPUP_HEIGHT;\r\n }\r\n if (!top || top < 0 || top > winHeight) {\r\n this.logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\r\n top = Math.max(0, winHeight / 2 - BrowserConstants.POPUP_HEIGHT / 2 + winTop);\r\n }\r\n if (!left || left < 0 || left > winWidth) {\r\n this.logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\r\n left = Math.max(0, winWidth / 2 - BrowserConstants.POPUP_WIDTH / 2 + winLeft);\r\n }\r\n return popupWindowParent.open(urlNavigate, popupName, `width=${width}, height=${height}, top=${top}, left=${left}, scrollbars=yes`);\r\n }\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n unloadWindow(e) {\r\n this.browserStorage.cleanRequestByInteractionType(exports.InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n }\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n cleanPopup(popupWindow, popupWindowParent) {\r\n // Close window.\r\n popupWindow.close();\r\n // Remove window unload function\r\n popupWindowParent.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n }\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n generatePopupName(scopes, authority) {\r\n return `${BrowserConstants.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${scopes.join(\"-\")}.${authority}.${this.correlationId}`;\r\n }\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n generateLogoutPopupName(request) {\r\n const homeAccountId = request.account && request.account.homeAccountId;\r\n return `${BrowserConstants.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${homeAccountId}.${this.correlationId}`;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass RedirectHandler {\r\n constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n async initiateAuthRequest(requestUrl, params) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n // Navigate if valid URL\r\n if (requestUrl) {\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest);\r\n this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);\r\n const navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false,\r\n };\r\n // If onRedirectNavigate is implemented, invoke it and provide requestUrl\r\n if (typeof params.onRedirectNavigate === \"function\") {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n const navigate = params.onRedirectNavigate(requestUrl);\r\n // Returning false from onRedirectNavigate will stop navigation\r\n if (navigate !== false) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\r\n return;\r\n }\r\n else {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return;\r\n }\r\n }\r\n else {\r\n // Navigate window to request URL\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\r\n return;\r\n }\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw createBrowserAuthError(emptyNavigateUri);\r\n }\r\n }\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n async handleCodeResponse(response, state) {\r\n this.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n // Handle code response.\r\n const stateKey = this.browserStorage.generateStateKey(state);\r\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw createClientAuthError(stateNotFound, \"Cached State\");\r\n }\r\n let authCodeResponse;\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(response, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError &&\r\n e.subError === userCancelled) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw createBrowserAuthError(userCancelled);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n // Get cached items\r\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n // Check for new cloud instance\r\n if (authCodeResponse.cloud_instance_host_name) {\r\n await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(authCodeResponse.cloud_instance_host_name, this.authCodeRequest.correlationId);\r\n }\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n const cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Acquire token with retrieved code.\r\n const tokenResponse = (await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse));\r\n this.browserStorage.cleanRequestByState(state);\r\n return tokenResponse;\r\n }\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n checkCcsCredentials() {\r\n // Look up ccs credential in temp cache\r\n const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);\r\n }\r\n }\r\n return null;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction getNavigationType() {\r\n if (typeof window === \"undefined\" ||\r\n typeof window.performance === \"undefined\" ||\r\n typeof window.performance.getEntriesByType !== \"function\") {\r\n return undefined;\r\n }\r\n const navigationEntries = window.performance.getEntriesByType(\"navigation\");\r\n const navigation = navigationEntries.length\r\n ? navigationEntries[0]\r\n : undefined;\r\n return navigation?.type;\r\n}\r\nclass RedirectClient extends StandardInteractionClient {\r\n constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId);\r\n this.nativeStorage = nativeStorageImpl;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n async acquireToken(request) {\r\n const validRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, this.correlationId)(request, exports.InteractionType.Redirect);\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || \"\", validRequest.account || null);\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n const handleBackButton = (event) => {\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n if (event.persisted) {\r\n this.logger.verbose(\"Page was restored from back/forward cache. Clearing temporary cache.\");\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n this.eventHandler.emitEvent(EventType.RESTORE_FROM_BFCACHE, exports.InteractionType.Redirect);\r\n }\r\n };\r\n try {\r\n // Create auth code request and generate PKCE params\r\n const authCodeRequest = await invokeAsync(this.initializeAuthorizationCodeRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, this.logger, this.performanceClient, this.correlationId)(validRequest);\r\n // Initialize the client\r\n const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: validRequest.authority,\r\n requestAzureCloudOptions: validRequest.azureCloudOptions,\r\n requestExtraQueryParameters: validRequest.extraQueryParameters,\r\n account: validRequest.account,\r\n });\r\n // Create redirect interaction handler.\r\n const interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n // Create acquire token url.\r\n const navigateUrl = await authClient.getAuthCodeUrl({\r\n ...validRequest,\r\n platformBroker: NativeMessageHandler.isPlatformBrokerAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme),\r\n });\r\n const redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(`Redirect start page: ${redirectStartPage}`);\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n window.addEventListener(\"pageshow\", handleBackButton);\r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return await interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate ||\r\n this.config.auth.onRedirectNavigate,\r\n });\r\n }\r\n catch (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n window.removeEventListener(\"pageshow\", handleBackButton);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash {string} url hash\r\n * @param parentMeasurement {InProgressPerformanceEvent} parent measurement\r\n */\r\n async handleRedirectPromise(hash = \"\", parentMeasurement) {\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n try {\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return null;\r\n }\r\n const [serverParams, responseString] = this.getRedirectResponse(hash || \"\");\r\n if (!serverParams) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(exports.InteractionType.Redirect);\r\n // Do not instrument \"no_server_response\" if user clicked back button\r\n if (getNavigationType() !== \"back_forward\") {\r\n parentMeasurement.event.errorCode = \"no_server_response\";\r\n }\r\n else {\r\n this.logger.verbose(\"Back navigation event detected. Muting no_server_response error\");\r\n }\r\n return null;\r\n }\r\n // If navigateToLoginRequestUrl is true, get the url where the redirect request was initiated\r\n const loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || Constants.EMPTY_STRING;\r\n const loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n const currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (loginRequestUrlNormalized === currentUrlNormalized &&\r\n this.config.auth.navigateToLoginRequestUrl) {\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling response\");\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n replaceHash(loginRequestUrl);\r\n }\r\n const handleHashResult = await this.handleResponse(serverParams, serverTelemetryManager);\r\n return handleHashResult;\r\n }\r\n else if (!this.config.auth.navigateToLoginRequestUrl) {\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling response\");\r\n return await this.handleResponse(serverParams, serverTelemetryManager);\r\n }\r\n else if (!isInIframe() ||\r\n this.config.system.allowRedirectInIframe) {\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseString, true);\r\n const navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true,\r\n };\r\n /**\r\n * Default behavior is to redirect to the start page and not process the hash now.\r\n * The start page is expected to also call handleRedirectPromise which will process the hash in one of the checks above.\r\n */\r\n let processHashOnRedirect = true;\r\n if (!loginRequestUrl || loginRequestUrl === \"null\") {\r\n // Redirect to home page if login request url is null (real null or the string null)\r\n const homepage = getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n processHashOnRedirect =\r\n await this.navigationClient.navigateInternal(homepage, navigationOptions);\r\n }\r\n else {\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(`Navigating to loginRequestUrl: ${loginRequestUrl}`);\r\n processHashOnRedirect =\r\n await this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions);\r\n }\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return await this.handleResponse(serverParams, serverTelemetryManager);\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n this.browserStorage.cleanRequestByInteractionType(exports.InteractionType.Redirect);\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n getRedirectResponse(userProvidedResponse) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n let responseString = userProvidedResponse;\r\n if (!responseString) {\r\n if (this.config.auth.OIDCOptions.serverResponseType ===\r\n ServerResponseType.QUERY) {\r\n responseString = window.location.search;\r\n }\r\n else {\r\n responseString = window.location.hash;\r\n }\r\n }\r\n let response = getDeserializedResponse(responseString);\r\n if (response) {\r\n try {\r\n validateInteractionType(response, this.browserCrypto, exports.InteractionType.Redirect);\r\n }\r\n catch (e) {\r\n if (e instanceof AuthError) {\r\n this.logger.error(`Interaction type validation failed due to ${e.errorCode}: ${e.errorMessage}`);\r\n }\r\n return [null, \"\"];\r\n }\r\n clearHash(window);\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return [response, responseString];\r\n }\r\n const cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n if (cachedHash) {\r\n response = getDeserializedResponse(cachedHash);\r\n if (response) {\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return [response, cachedHash];\r\n }\r\n }\r\n return [null, \"\"];\r\n }\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n async handleResponse(serverParams, serverTelemetryManager) {\r\n const state = serverParams.state;\r\n if (!state) {\r\n throw createBrowserAuthError(noStateInHash);\r\n }\r\n const cachedRequest = this.browserStorage.getCachedRequest(state);\r\n this.logger.verbose(\"handleResponse called, retrieved cached request\");\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw createBrowserAuthError(nativeConnectionNotEstablished);\r\n }\r\n const nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, cachedRequest.correlationId);\r\n const { userRequestState } = ProtocolUtils.parseRequestState(this.browserCrypto, state);\r\n return nativeInteractionClient\r\n .acquireToken({\r\n ...cachedRequest,\r\n state: userRequestState,\r\n prompt: undefined, // Server should handle the prompt, ideally native broker can do this part silently\r\n })\r\n .finally(() => {\r\n this.browserStorage.cleanRequestByState(state);\r\n });\r\n }\r\n // Hash contains known properties - handle and return in callback\r\n const currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw createBrowserAuthError(noCachedAuthorityError);\r\n }\r\n const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)({ serverTelemetryManager, requestAuthority: currentAuthority });\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, cachedRequest);\r\n const interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.performanceClient);\r\n return interactionHandler.handleCodeResponse(serverParams, state);\r\n }\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n async logout(logoutRequest) {\r\n this.logger.verbose(\"logoutRedirect called\");\r\n const validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n try {\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, exports.InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n await this.clearCacheOnLogout(validLogoutRequest.account);\r\n const navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false,\r\n };\r\n const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: logoutRequest && logoutRequest.authority,\r\n requestExtraQueryParameters: logoutRequest?.extraQueryParameters,\r\n account: (logoutRequest && logoutRequest.account) || undefined,\r\n });\r\n if (authClient.authority.protocolMode === ProtocolMode.OIDC) {\r\n try {\r\n authClient.authority.endSessionEndpoint;\r\n }\r\n catch {\r\n if (validLogoutRequest.account?.homeAccountId) {\r\n void this.browserStorage.removeAccount(validLogoutRequest.account?.homeAccountId);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, exports.InteractionType.Redirect, validLogoutRequest);\r\n return;\r\n }\r\n }\r\n }\r\n // Create logout string and navigate user window to logout.\r\n const logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, exports.InteractionType.Redirect, validLogoutRequest);\r\n // Check if onRedirectNavigate is implemented, and invoke it if so\r\n if (logoutRequest &&\r\n typeof logoutRequest.onRedirectNavigate === \"function\") {\r\n const navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (navigate !== false) {\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n await this.navigationClient.navigateExternal(logoutUri, navigationOptions);\r\n return;\r\n }\r\n else {\r\n // Ensure interaction is not in progress\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n }\r\n }\r\n else {\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n await this.navigationClient.navigateExternal(logoutUri, navigationOptions);\r\n return;\r\n }\r\n }\r\n catch (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, exports.InteractionType.Redirect, null, e);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, exports.InteractionType.Redirect);\r\n throw e;\r\n }\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, exports.InteractionType.Redirect);\r\n }\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n getRedirectStartPage(requestStartPage) {\r\n const redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, getCurrentUri());\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\nasync function initiateAuthRequest(requestUrl, performanceClient, logger, correlationId, navigateFrameWait) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, correlationId);\r\n if (!requestUrl) {\r\n // Throw error if request URL is empty.\r\n logger.info(\"Navigate url is empty\");\r\n throw createBrowserAuthError(emptyNavigateUri);\r\n }\r\n if (navigateFrameWait) {\r\n return invokeAsync(loadFrame, PerformanceEvents.SilentHandlerLoadFrame, logger, performanceClient, correlationId)(requestUrl, navigateFrameWait, performanceClient, correlationId);\r\n }\r\n return invoke(loadFrameSync, PerformanceEvents.SilentHandlerLoadFrameSync, logger, performanceClient, correlationId)(requestUrl);\r\n}\r\n/**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\nasync function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);\r\n return new Promise((resolve, reject) => {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n const timeoutId = window.setTimeout(() => {\r\n window.clearInterval(intervalId);\r\n reject(createBrowserAuthError(monitorWindowTimeout));\r\n }, timeout);\r\n const intervalId = window.setInterval(() => {\r\n let href = \"\";\r\n const contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : \"\";\r\n }\r\n catch (e) { }\r\n if (!href || href === \"about:blank\") {\r\n return;\r\n }\r\n let responseString = \"\";\r\n if (contentWindow) {\r\n if (responseType === ServerResponseType.QUERY) {\r\n responseString = contentWindow.location.search;\r\n }\r\n else {\r\n responseString = contentWindow.location.hash;\r\n }\r\n }\r\n window.clearTimeout(timeoutId);\r\n window.clearInterval(intervalId);\r\n resolve(responseString);\r\n }, pollIntervalMilliseconds);\r\n }).finally(() => {\r\n invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);\r\n });\r\n}\r\n/**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n * @deprecated\r\n */\r\nfunction loadFrame(urlNavigate, navigateFrameWait, performanceClient, correlationId) {\r\n performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, correlationId);\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n return new Promise((resolve, reject) => {\r\n const frameHandle = createHiddenIframe();\r\n window.setTimeout(() => {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, navigateFrameWait);\r\n });\r\n}\r\n/**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\nfunction loadFrameSync(urlNavigate) {\r\n const frameHandle = createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n}\r\n/**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\nfunction createHiddenIframe() {\r\n const authFrame = document.createElement(\"iframe\");\r\n authFrame.className = \"msalSilentIframe\";\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.body.appendChild(authFrame);\r\n return authFrame;\r\n}\r\n/**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\nfunction removeHiddenIframe(iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass SilentIframeClient extends StandardInteractionClient {\r\n constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId);\r\n this.apiId = apiId;\r\n this.nativeStorage = nativeStorageImpl;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session\r\n * @param request\r\n */\r\n async acquireToken(request) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n // Check that we have some SSO data\r\n if (!request.loginHint &&\r\n !request.sid &&\r\n (!request.account || !request.account.username)) {\r\n this.logger.warning(\"No user hint provided. The authorization server may need more information to complete this request.\");\r\n }\r\n // Check the prompt value\r\n const inputRequest = { ...request };\r\n if (inputRequest.prompt) {\r\n if (inputRequest.prompt !== PromptValue.NONE &&\r\n inputRequest.prompt !== PromptValue.NO_SESSION) {\r\n this.logger.warning(`SilentIframeClient. Replacing invalid prompt ${inputRequest.prompt} with ${PromptValue.NONE}`);\r\n inputRequest.prompt = PromptValue.NONE;\r\n }\r\n }\r\n else {\r\n inputRequest.prompt = PromptValue.NONE;\r\n }\r\n // Create silent request\r\n const silentRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, request.correlationId)(inputRequest, exports.InteractionType.Silent);\r\n preconnect(silentRequest.authority);\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n let authClient;\r\n try {\r\n // Initialize the client\r\n authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, request.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: silentRequest.authority,\r\n requestAzureCloudOptions: silentRequest.azureCloudOptions,\r\n requestExtraQueryParameters: silentRequest.extraQueryParameters,\r\n account: silentRequest.account,\r\n });\r\n return await invokeAsync(this.silentTokenHelper.bind(this), PerformanceEvents.SilentIframeClientTokenHelper, this.logger, this.performanceClient, request.correlationId)(authClient, silentRequest);\r\n }\r\n catch (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n if (!authClient ||\r\n !(e instanceof AuthError) ||\r\n e.errorCode !== BrowserConstants.INVALID_GRANT_ERROR) {\r\n throw e;\r\n }\r\n this.performanceClient.addFields({\r\n retryError: e.errorCode,\r\n }, this.correlationId);\r\n const retrySilentRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, request.correlationId)(inputRequest, exports.InteractionType.Silent);\r\n return await invokeAsync(this.silentTokenHelper.bind(this), PerformanceEvents.SilentIframeClientTokenHelper, this.logger, this.performanceClient, this.correlationId)(authClient, retrySilentRequest);\r\n }\r\n }\r\n /**\r\n * Currently Unsupported\r\n */\r\n logout() {\r\n // Synchronous so we must reject\r\n return Promise.reject(createBrowserAuthError(silentLogoutUnsupported));\r\n }\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n async silentTokenHelper(authClient, silentRequest) {\r\n const correlationId = silentRequest.correlationId;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientTokenHelper, correlationId);\r\n // Create auth code request and generate PKCE params\r\n const authCodeRequest = await invokeAsync(this.initializeAuthorizationCodeRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, this.logger, this.performanceClient, correlationId)(silentRequest);\r\n // Create authorize request url\r\n const navigateUrl = await invokeAsync(authClient.getAuthCodeUrl.bind(authClient), PerformanceEvents.GetAuthCodeUrl, this.logger, this.performanceClient, correlationId)({\r\n ...silentRequest,\r\n platformBroker: NativeMessageHandler.isPlatformBrokerAvailable(this.config, this.logger, this.nativeMessageHandler, silentRequest.authenticationScheme),\r\n });\r\n // Create silent handler\r\n const interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n // Get the frame handle for the silent request\r\n const msalFrame = await invokeAsync(initiateAuthRequest, PerformanceEvents.SilentHandlerInitiateAuthRequest, this.logger, this.performanceClient, correlationId)(navigateUrl, this.performanceClient, this.logger, correlationId, this.config.system.navigateFrameWait);\r\n const responseType = this.config.auth.OIDCOptions.serverResponseType;\r\n // Monitor the window for the hash. Return the string value and close the popup when the hash is received. Default timeout is 60 seconds.\r\n const responseString = await invokeAsync(monitorIframeForHash, PerformanceEvents.SilentHandlerMonitorIframeForHash, this.logger, this.performanceClient, correlationId)(msalFrame, this.config.system.iframeHashTimeout, this.config.system.pollIntervalMilliseconds, this.performanceClient, this.logger, correlationId, responseType);\r\n const serverParams = invoke(deserializeResponse, PerformanceEvents.DeserializeResponse, this.logger, this.performanceClient, this.correlationId)(responseString, responseType, this.logger);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw createBrowserAuthError(nativeConnectionNotEstablished);\r\n }\r\n const nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.apiId, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, correlationId);\r\n const { userRequestState } = ProtocolUtils.parseRequestState(this.browserCrypto, silentRequest.state);\r\n return invokeAsync(nativeInteractionClient.acquireToken.bind(nativeInteractionClient), PerformanceEvents.NativeInteractionClientAcquireToken, this.logger, this.performanceClient, correlationId)({\r\n ...silentRequest,\r\n state: userRequestState,\r\n prompt: silentRequest.prompt || PromptValue.NONE,\r\n });\r\n }\r\n // Handle response from hash string\r\n return invokeAsync(interactionHandler.handleCodeResponse.bind(interactionHandler), PerformanceEvents.HandleCodeResponse, this.logger, this.performanceClient, correlationId)(serverParams, silentRequest);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass SilentRefreshClient extends StandardInteractionClient {\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n async acquireToken(request) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, request.correlationId);\r\n const baseRequest = await invokeAsync(initializeBaseRequest, PerformanceEvents.InitializeBaseRequest, this.logger, this.performanceClient, request.correlationId)(request, this.config, this.performanceClient, this.logger);\r\n const silentRequest = {\r\n ...request,\r\n ...baseRequest,\r\n };\r\n if (request.redirectUri) {\r\n // Make sure any passed redirectUri is converted to an absolute URL - redirectUri is not a required parameter for refresh token redemption so only include if explicitly provided\r\n silentRequest.redirectUri = this.getRedirectUri(request.redirectUri);\r\n }\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n const refreshTokenClient = await this.createRefreshTokenClient({\r\n serverTelemetryManager,\r\n authorityUrl: silentRequest.authority,\r\n azureCloudOptions: silentRequest.azureCloudOptions,\r\n account: silentRequest.account,\r\n });\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n return invokeAsync(refreshTokenClient.acquireTokenByRefreshToken.bind(refreshTokenClient), PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, this.logger, this.performanceClient, request.correlationId)(silentRequest).catch((e) => {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n throw e;\r\n });\r\n }\r\n /**\r\n * Currently Unsupported\r\n */\r\n logout() {\r\n // Synchronous so we must reject\r\n return Promise.reject(createBrowserAuthError(silentLogoutUnsupported));\r\n }\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param params {\r\n * serverTelemetryManager: ServerTelemetryManager;\r\n * authorityUrl?: string;\r\n * azureCloudOptions?: AzureCloudOptions;\r\n * extraQueryParams?: StringDict;\r\n * account?: AccountInfo;\r\n * }\r\n */\r\n async createRefreshTokenClient(params) {\r\n // Create auth module.\r\n const clientConfig = await invokeAsync(this.getClientConfiguration.bind(this), PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.logger, this.performanceClient, this.correlationId)({\r\n serverTelemetryManager: params.serverTelemetryManager,\r\n requestAuthority: params.authorityUrl,\r\n requestAzureCloudOptions: params.azureCloudOptions,\r\n requestExtraQueryParameters: params.extraQueryParameters,\r\n account: params.account,\r\n });\r\n return new RefreshTokenClient(clientConfig, this.performanceClient);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Token cache manager\r\n */\r\nclass TokenCache {\r\n constructor(configuration, storage, logger, cryptoObj) {\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n this.config = configuration;\r\n this.storage = storage;\r\n this.logger = logger;\r\n this.cryptoObj = cryptoObj;\r\n }\r\n // Move getAllAccounts here and cache utility APIs\r\n /**\r\n * API to load tokens to msal-browser cache.\r\n * @param request\r\n * @param response\r\n * @param options\r\n * @returns `AuthenticationResult` for the response that was loaded.\r\n */\r\n async loadExternalTokens(request, response, options) {\r\n if (!this.isBrowserEnvironment) {\r\n throw createBrowserAuthError(nonBrowserEnvironment);\r\n }\r\n const correlationId = request.correlationId || createNewGuid();\r\n const idTokenClaims = response.id_token\r\n ? extractTokenClaims(response.id_token, base64Decode)\r\n : undefined;\r\n const authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,\r\n };\r\n const authority = request.authority\r\n ? new Authority(Authority.generateAuthority(request.authority, request.azureCloudOptions), this.config.system.networkClient, this.storage, authorityOptions, this.logger, request.correlationId || createNewGuid())\r\n : undefined;\r\n const cacheRecordAccount = await this.loadAccount(request, options.clientInfo || response.client_info || \"\", correlationId, idTokenClaims, authority);\r\n const idToken = await this.loadIdToken(response, cacheRecordAccount.homeAccountId, cacheRecordAccount.environment, cacheRecordAccount.realm, correlationId);\r\n const accessToken = await this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, cacheRecordAccount.environment, cacheRecordAccount.realm, options, correlationId);\r\n const refreshToken = await this.loadRefreshToken(response, cacheRecordAccount.homeAccountId, cacheRecordAccount.environment, correlationId);\r\n return this.generateAuthenticationResult(request, {\r\n account: cacheRecordAccount,\r\n idToken,\r\n accessToken,\r\n refreshToken,\r\n }, idTokenClaims, authority);\r\n }\r\n /**\r\n * Helper function to load account to msal-browser cache\r\n * @param idToken\r\n * @param environment\r\n * @param clientInfo\r\n * @param authorityType\r\n * @param requestHomeAccountId\r\n * @returns `AccountEntity`\r\n */\r\n async loadAccount(request, clientInfo, correlationId, idTokenClaims, authority) {\r\n this.logger.verbose(\"TokenCache - loading account\");\r\n if (request.account) {\r\n const accountEntity = AccountEntity.createFromAccountInfo(request.account);\r\n await this.storage.setAccount(accountEntity, correlationId);\r\n return accountEntity;\r\n }\r\n else if (!authority || (!clientInfo && !idTokenClaims)) {\r\n this.logger.error(\"TokenCache - if an account is not provided on the request, authority and either clientInfo or idToken must be provided instead.\");\r\n throw createBrowserAuthError(unableToLoadToken);\r\n }\r\n const homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authority.authorityType, this.logger, this.cryptoObj, idTokenClaims);\r\n const claimsTenantId = idTokenClaims?.tid;\r\n const cachedAccount = buildAccountToCache(this.storage, authority, homeAccountId, base64Decode, idTokenClaims, clientInfo, authority.hostnameAndPort, claimsTenantId, undefined, // authCodePayload\r\n undefined, // nativeAccountId\r\n this.logger);\r\n await this.storage.setAccount(cachedAccount, correlationId);\r\n return cachedAccount;\r\n }\r\n /**\r\n * Helper function to load id tokens to msal-browser cache\r\n * @param idToken\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `IdTokenEntity`\r\n */\r\n async loadIdToken(response, homeAccountId, environment, tenantId, correlationId) {\r\n if (!response.id_token) {\r\n this.logger.verbose(\"TokenCache - no id token found in response\");\r\n return null;\r\n }\r\n this.logger.verbose(\"TokenCache - loading id token\");\r\n const idTokenEntity = createIdTokenEntity(homeAccountId, environment, response.id_token, this.config.auth.clientId, tenantId);\r\n await this.storage.setIdTokenCredential(idTokenEntity, correlationId);\r\n return idTokenEntity;\r\n }\r\n /**\r\n * Helper function to load access tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `AccessTokenEntity`\r\n */\r\n async loadAccessToken(request, response, homeAccountId, environment, tenantId, options, correlationId) {\r\n if (!response.access_token) {\r\n this.logger.verbose(\"TokenCache - no access token found in response\");\r\n return null;\r\n }\r\n else if (!response.expires_in) {\r\n this.logger.error(\"TokenCache - no expiration set on the access token. Cannot add it to the cache.\");\r\n return null;\r\n }\r\n else if (!response.scope &&\r\n (!request.scopes || !request.scopes.length)) {\r\n this.logger.error(\"TokenCache - scopes not specified in the request or response. Cannot add token to the cache.\");\r\n return null;\r\n }\r\n this.logger.verbose(\"TokenCache - loading access token\");\r\n const scopes = response.scope\r\n ? ScopeSet.fromString(response.scope)\r\n : new ScopeSet(request.scopes);\r\n const expiresOn = options.expiresOn ||\r\n response.expires_in + new Date().getTime() / 1000;\r\n const extendedExpiresOn = options.extendedExpiresOn ||\r\n (response.ext_expires_in || response.expires_in) +\r\n new Date().getTime() / 1000;\r\n const accessTokenEntity = createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes.printScopes(), expiresOn, extendedExpiresOn, base64Decode);\r\n await this.storage.setAccessTokenCredential(accessTokenEntity, correlationId);\r\n return accessTokenEntity;\r\n }\r\n /**\r\n * Helper function to load refresh tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @returns `RefreshTokenEntity`\r\n */\r\n async loadRefreshToken(response, homeAccountId, environment, correlationId) {\r\n if (!response.refresh_token) {\r\n this.logger.verbose(\"TokenCache - no refresh token found in response\");\r\n return null;\r\n }\r\n this.logger.verbose(\"TokenCache - loading refresh token\");\r\n const refreshTokenEntity = createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId, response.foci, undefined, // userAssertionHash\r\n response.refresh_token_expires_in);\r\n await this.storage.setRefreshTokenCredential(refreshTokenEntity, correlationId);\r\n return refreshTokenEntity;\r\n }\r\n /**\r\n * Helper function to generate an `AuthenticationResult` for the result.\r\n * @param request\r\n * @param idTokenObj\r\n * @param cacheRecord\r\n * @param authority\r\n * @returns `AuthenticationResult`\r\n */\r\n generateAuthenticationResult(request, cacheRecord, idTokenClaims, authority) {\r\n let accessToken = \"\";\r\n let responseScopes = [];\r\n let expiresOn = null;\r\n let extExpiresOn;\r\n if (cacheRecord?.accessToken) {\r\n accessToken = cacheRecord.accessToken.secret;\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n }\r\n const accountEntity = cacheRecord.account;\r\n return {\r\n authority: authority ? authority.canonicalAuthority : \"\",\r\n uniqueId: cacheRecord.account.localAccountId,\r\n tenantId: cacheRecord.account.realm,\r\n scopes: responseScopes,\r\n account: accountEntity.getAccountInfo(),\r\n idToken: cacheRecord.idToken?.secret || \"\",\r\n idTokenClaims: idTokenClaims || {},\r\n accessToken: accessToken,\r\n fromCache: true,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId || \"\",\r\n requestId: \"\",\r\n extExpiresOn: extExpiresOn,\r\n familyId: cacheRecord.refreshToken?.familyId || \"\",\r\n tokenType: cacheRecord?.accessToken?.tokenType || \"\",\r\n state: request.state || \"\",\r\n cloudGraphHostName: accountEntity.cloudGraphHostName || \"\",\r\n msGraphHost: accountEntity.msGraphHost || \"\",\r\n fromNativeBroker: false,\r\n };\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {\r\n constructor(config) {\r\n super(config);\r\n this.includeRedirectUri = false;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass SilentAuthCodeClient extends StandardInteractionClient {\r\n constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {\r\n super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId);\r\n this.apiId = apiId;\r\n }\r\n /**\r\n * Acquires a token silently by redeeming an authorization code against the /token endpoint\r\n * @param request\r\n */\r\n async acquireToken(request) {\r\n // Auth code payload is required\r\n if (!request.code) {\r\n throw createBrowserAuthError(authCodeRequired);\r\n }\r\n // Create silent request\r\n const silentRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, request.correlationId)(request, exports.InteractionType.Silent);\r\n const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n try {\r\n // Create auth code request (PKCE not needed)\r\n const authCodeRequest = {\r\n ...silentRequest,\r\n code: request.code,\r\n };\r\n // Initialize the client\r\n const clientConfig = await invokeAsync(this.getClientConfiguration.bind(this), PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.logger, this.performanceClient, request.correlationId)({\r\n serverTelemetryManager,\r\n requestAuthority: silentRequest.authority,\r\n requestAzureCloudOptions: silentRequest.azureCloudOptions,\r\n requestExtraQueryParameters: silentRequest.extraQueryParameters,\r\n account: silentRequest.account,\r\n });\r\n const authClient = new HybridSpaAuthorizationCodeClient(clientConfig);\r\n this.logger.verbose(\"Auth code client created\");\r\n // Create silent handler\r\n const interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n // Handle auth code parameters from request\r\n return await invokeAsync(interactionHandler.handleCodeResponseFromServer.bind(interactionHandler), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient, request.correlationId)({\r\n code: request.code,\r\n msgraph_host: request.msGraphHost,\r\n cloud_graph_host_name: request.cloudGraphHostName,\r\n cloud_instance_host_name: request.cloudInstanceHostName,\r\n }, silentRequest, false);\r\n }\r\n catch (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(this.correlationId);\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n }\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Currently Unsupported\r\n */\r\n logout() {\r\n // Synchronous so we must reject\r\n return Promise.reject(createBrowserAuthError(silentLogoutUnsupported));\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction getAccountType(account) {\r\n const idTokenClaims = account?.idTokenClaims;\r\n if (idTokenClaims?.tfp || idTokenClaims?.acr) {\r\n return \"B2C\";\r\n }\r\n if (!idTokenClaims?.tid) {\r\n return undefined;\r\n }\r\n else if (idTokenClaims?.tid === \"9188040d-6c67-4c5b-b112-36a304b66dad\") {\r\n return \"MSA\";\r\n }\r\n return \"AAD\";\r\n}\r\nfunction preflightCheck(initialized, performanceEvent) {\r\n try {\r\n preflightCheck$1(initialized);\r\n }\r\n catch (e) {\r\n performanceEvent.end({ success: false }, e);\r\n throw e;\r\n }\r\n}\r\nclass StandardController {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n constructor(operatingContext) {\r\n this.operatingContext = operatingContext;\r\n this.isBrowserEnvironment =\r\n this.operatingContext.isBrowserEnvironment();\r\n // Set the configuration.\r\n this.config = operatingContext.getConfig();\r\n this.initialized = false;\r\n // Initialize logger\r\n this.logger = this.operatingContext.getLogger();\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n // Initial hybrid spa map\r\n this.hybridAuthCodeResponses = new Map();\r\n // Initialize performance client\r\n this.performanceClient = this.config.telemetry.client;\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment\r\n ? new CryptoOps(this.logger, this.performanceClient)\r\n : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n this.eventHandler = new EventHandler(this.logger);\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment\r\n ? new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger, this.performanceClient, buildStaticAuthorityOptions(this.config.auth))\r\n : DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger, this.performanceClient);\r\n // initialize in memory storage for native flows\r\n const nativeCacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false,\r\n claimsBasedCachingEnabled: false,\r\n };\r\n this.nativeInternalStorage = new BrowserCacheManager(this.config.auth.clientId, nativeCacheOptions, this.browserCrypto, this.logger, this.performanceClient);\r\n // Initialize the token cache\r\n this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto);\r\n this.activeSilentTokenRequests = new Map();\r\n // Register listener functions\r\n this.trackPageVisibility = this.trackPageVisibility.bind(this);\r\n // Register listener functions\r\n this.trackPageVisibilityWithMeasurement =\r\n this.trackPageVisibilityWithMeasurement.bind(this);\r\n // account storage events\r\n this.listeningToStorageEvents = false;\r\n this.handleAccountCacheChange =\r\n this.handleAccountCacheChange.bind(this);\r\n }\r\n static async createController(operatingContext, request) {\r\n const controller = new StandardController(operatingContext);\r\n await controller.initialize(request);\r\n return controller;\r\n }\r\n trackPageVisibility(correlationId) {\r\n if (!correlationId) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected\");\r\n this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n * @param request {?InitializeApplicationRequest} correlation id\r\n */\r\n async initialize(request) {\r\n this.logger.trace(\"initialize called\");\r\n if (this.initialized) {\r\n this.logger.info(\"initialize has already been called, exiting early.\");\r\n return;\r\n }\r\n if (!this.isBrowserEnvironment) {\r\n this.logger.info(\"in non-browser environment, exiting early.\");\r\n this.initialized = true;\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_END);\r\n return;\r\n }\r\n const initCorrelationId = request?.correlationId || this.getRequestCorrelationId();\r\n const allowPlatformBroker = this.config.system.allowPlatformBroker;\r\n const initMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.InitializeClientApplication, initCorrelationId);\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_START);\r\n await invokeAsync(this.browserStorage.initialize.bind(this.browserStorage), PerformanceEvents.InitializeCache, this.logger, this.performanceClient, initCorrelationId)(initCorrelationId);\r\n if (allowPlatformBroker) {\r\n try {\r\n this.nativeExtensionProvider =\r\n await NativeMessageHandler.createProvider(this.logger, this.config.system.nativeBrokerHandshakeTimeout, this.performanceClient);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n }\r\n }\r\n if (!this.config.cache.claimsBasedCachingEnabled) {\r\n this.logger.verbose(\"Claims-based caching is disabled. Clearing the previous cache with claims\");\r\n await invokeAsync(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage), PerformanceEvents.ClearTokensAndKeysWithClaims, this.logger, this.performanceClient, initCorrelationId)(this.performanceClient, initCorrelationId);\r\n }\r\n this.initialized = true;\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_END);\r\n initMeasurement.end({\r\n allowPlatformBroker: allowPlatformBroker,\r\n success: true,\r\n });\r\n }\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n async handleRedirectPromise(hash) {\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n // Block token acquisition before initialize has been called\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n if (this.isBrowserEnvironment) {\r\n /**\r\n * Store the promise on the PublicClientApplication instance if this is the first invocation of handleRedirectPromise,\r\n * otherwise return the promise from the first invocation. Prevents race conditions when handleRedirectPromise is called\r\n * several times concurrently.\r\n */\r\n const redirectResponseKey = hash || \"\";\r\n let response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n response = this.handleRedirectPromiseInternal(hash);\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return response;\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return null;\r\n }\r\n /**\r\n * The internal details of handleRedirectPromise. This is separated out to a helper to allow handleRedirectPromise to memoize requests\r\n * @param hash\r\n * @returns\r\n */\r\n async handleRedirectPromiseInternal(hash) {\r\n const loggedInAccounts = this.getAllAccounts();\r\n const request = this.browserStorage.getCachedNativeRequest();\r\n const useNative = request &&\r\n NativeMessageHandler.isPlatformBrokerAvailable(this.config, this.logger, this.nativeExtensionProvider) &&\r\n this.nativeExtensionProvider &&\r\n !hash;\r\n const correlationId = useNative\r\n ? request?.correlationId\r\n : this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, true) || \"\";\r\n const rootMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenRedirect, correlationId);\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, exports.InteractionType.Redirect);\r\n let redirectResponse;\r\n if (useNative && this.nativeExtensionProvider) {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from native platform\");\r\n const nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.handleRedirectPromise, this.performanceClient, this.nativeExtensionProvider, request.accountId, this.nativeInternalStorage, request.correlationId);\r\n redirectResponse = invokeAsync(nativeClient.handleRedirectPromise.bind(nativeClient), PerformanceEvents.HandleNativeRedirectPromiseMeasurement, this.logger, this.performanceClient, rootMeasurement.event.correlationId)(this.performanceClient, rootMeasurement.event.correlationId);\r\n }\r\n else {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from web flow\");\r\n const redirectClient = this.createRedirectClient(correlationId);\r\n redirectResponse = invokeAsync(redirectClient.handleRedirectPromise.bind(redirectClient), PerformanceEvents.HandleRedirectPromiseMeasurement, this.logger, this.performanceClient, rootMeasurement.event.correlationId)(hash, rootMeasurement);\r\n }\r\n return redirectResponse\r\n .then((result) => {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n const isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, exports.InteractionType.Redirect, result);\r\n this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Redirect, result);\r\n this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n rootMeasurement.end({\r\n success: true,\r\n accountType: getAccountType(result.account),\r\n });\r\n }\r\n else {\r\n /*\r\n * Instrument an event only if an error code is set. Otherwise, discard it when the redirect response\r\n * is empty and the error code is missing.\r\n */\r\n if (rootMeasurement.event.errorCode) {\r\n rootMeasurement.end({ success: false });\r\n }\r\n else {\r\n rootMeasurement.discard();\r\n }\r\n }\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, exports.InteractionType.Redirect);\r\n return result;\r\n })\r\n .catch((e) => {\r\n const eventError = e;\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Redirect, null, eventError);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, exports.InteractionType.Redirect, null, eventError);\r\n }\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, exports.InteractionType.Redirect);\r\n rootMeasurement.end({\r\n success: false,\r\n }, eventError);\r\n throw e;\r\n });\r\n }\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n async acquireTokenRedirect(request) {\r\n // Preflight request\r\n const correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"acquireTokenRedirect called\", correlationId);\r\n const atrMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPreRedirect, correlationId);\r\n atrMeasurement.add({\r\n accountType: getAccountType(request.account),\r\n scenarioId: request.scenarioId,\r\n });\r\n // Override on request only if set, as onRedirectNavigate field is deprecated\r\n const onRedirectNavigateCb = request.onRedirectNavigate;\r\n if (onRedirectNavigateCb) {\r\n request.onRedirectNavigate = (url) => {\r\n const navigate = typeof onRedirectNavigateCb === \"function\"\r\n ? onRedirectNavigateCb(url)\r\n : undefined;\r\n if (navigate !== false) {\r\n atrMeasurement.end({ success: true });\r\n }\r\n else {\r\n atrMeasurement.discard();\r\n }\r\n return navigate;\r\n };\r\n }\r\n else {\r\n const configOnRedirectNavigateCb = this.config.auth.onRedirectNavigate;\r\n this.config.auth.onRedirectNavigate = (url) => {\r\n const navigate = typeof configOnRedirectNavigateCb === \"function\"\r\n ? configOnRedirectNavigateCb(url)\r\n : undefined;\r\n if (navigate !== false) {\r\n atrMeasurement.end({ success: true });\r\n }\r\n else {\r\n atrMeasurement.discard();\r\n }\r\n return navigate;\r\n };\r\n }\r\n // If logged in, emit acquire token events\r\n const isLoggedIn = this.getAllAccounts().length > 0;\r\n try {\r\n redirectPreflightCheck(this.initialized, this.config);\r\n this.browserStorage.setInteractionInProgress(true);\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, exports.InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, exports.InteractionType.Redirect, request);\r\n }\r\n let result;\r\n if (this.nativeExtensionProvider &&\r\n this.canUsePlatformBroker(request)) {\r\n const nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenRedirect, this.performanceClient, this.nativeExtensionProvider, this.getNativeAccountId(request), this.nativeInternalStorage, correlationId);\r\n result = nativeClient\r\n .acquireTokenRedirect(request, atrMeasurement)\r\n .catch((e) => {\r\n if (e instanceof NativeAuthError &&\r\n isFatalNativeAuthError(e)) {\r\n this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n const redirectClient = this.createRedirectClient(correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n this.logger.verbose(\"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n const redirectClient = this.createRedirectClient(correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n const redirectClient = this.createRedirectClient(correlationId);\r\n result = redirectClient.acquireToken(request);\r\n }\r\n return await result;\r\n }\r\n catch (e) {\r\n atrMeasurement.end({ success: false }, e);\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, exports.InteractionType.Redirect, null, e);\r\n }\r\n throw e;\r\n }\r\n }\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n acquireTokenPopup(request) {\r\n const correlationId = this.getRequestCorrelationId(request);\r\n const atPopupMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPopup, correlationId);\r\n atPopupMeasurement.add({\r\n scenarioId: request.scenarioId,\r\n accountType: getAccountType(request.account),\r\n });\r\n try {\r\n this.logger.verbose(\"acquireTokenPopup called\", correlationId);\r\n preflightCheck(this.initialized, atPopupMeasurement);\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n // If logged in, emit acquire token events\r\n const loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, exports.InteractionType.Popup, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, exports.InteractionType.Popup, request);\r\n }\r\n let result;\r\n if (this.canUsePlatformBroker(request)) {\r\n result = this.acquireTokenNative({\r\n ...request,\r\n correlationId,\r\n }, ApiId.acquireTokenPopup)\r\n .then((response) => {\r\n this.browserStorage.setInteractionInProgress(false);\r\n atPopupMeasurement.end({\r\n success: true,\r\n isNativeBroker: true,\r\n accountType: getAccountType(response.account),\r\n });\r\n return response;\r\n })\r\n .catch((e) => {\r\n if (e instanceof NativeAuthError &&\r\n isFatalNativeAuthError(e)) {\r\n this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n const popupClient = this.createPopupClient(correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n this.logger.verbose(\"acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n const popupClient = this.createPopupClient(correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n const popupClient = this.createPopupClient(correlationId);\r\n result = popupClient.acquireToken(request);\r\n }\r\n return result\r\n .then((result) => {\r\n /*\r\n * If logged in, emit acquire token events\r\n */\r\n const isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, exports.InteractionType.Popup, result);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Popup, result);\r\n }\r\n atPopupMeasurement.end({\r\n success: true,\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length,\r\n accountType: getAccountType(result.account),\r\n });\r\n return result;\r\n })\r\n .catch((e) => {\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Popup, null, e);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, exports.InteractionType.Popup, null, e);\r\n }\r\n atPopupMeasurement.end({\r\n success: false,\r\n }, e);\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n });\r\n }\r\n trackPageVisibilityWithMeasurement() {\r\n const measurement = this.ssoSilentMeasurement ||\r\n this.acquireTokenByCodeAsyncMeasurement;\r\n if (!measurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected in \", measurement.event.name);\r\n measurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n }\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n async ssoSilent(request) {\r\n const correlationId = this.getRequestCorrelationId(request);\r\n const validRequest = {\r\n ...request,\r\n // will be PromptValue.NONE or PromptValue.NO_SESSION\r\n prompt: request.prompt,\r\n correlationId: correlationId,\r\n };\r\n this.ssoSilentMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoSilent, correlationId);\r\n this.ssoSilentMeasurement?.add({\r\n scenarioId: request.scenarioId,\r\n accountType: getAccountType(request.account),\r\n });\r\n preflightCheck(this.initialized, this.ssoSilentMeasurement);\r\n this.ssoSilentMeasurement?.increment({\r\n visibilityChangeCount: 0,\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n this.logger.verbose(\"ssoSilent called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, exports.InteractionType.Silent, validRequest);\r\n let result;\r\n if (this.canUsePlatformBroker(validRequest)) {\r\n result = this.acquireTokenNative(validRequest, ApiId.ssoSilent).catch((e) => {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && isFatalNativeAuthError(e)) {\r\n this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n const silentIframeClient = this.createSilentIframeClient(validRequest.correlationId);\r\n return silentIframeClient.acquireToken(validRequest);\r\n }\r\n throw e;\r\n });\r\n }\r\n else {\r\n const silentIframeClient = this.createSilentIframeClient(validRequest.correlationId);\r\n result = silentIframeClient.acquireToken(validRequest);\r\n }\r\n return result\r\n .then((response) => {\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, exports.InteractionType.Silent, response);\r\n this.ssoSilentMeasurement?.end({\r\n success: true,\r\n isNativeBroker: response.fromNativeBroker,\r\n accessTokenSize: response.accessToken.length,\r\n idTokenSize: response.idToken.length,\r\n accountType: getAccountType(response.account),\r\n });\r\n return response;\r\n })\r\n .catch((e) => {\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, exports.InteractionType.Silent, null, e);\r\n this.ssoSilentMeasurement?.end({\r\n success: false,\r\n }, e);\r\n throw e;\r\n })\r\n .finally(() => {\r\n document.removeEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n });\r\n }\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n async acquireTokenByCode(request) {\r\n const correlationId = this.getRequestCorrelationId(request);\r\n this.logger.trace(\"acquireTokenByCode called\", correlationId);\r\n const atbcMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCode, correlationId);\r\n preflightCheck(this.initialized, atbcMeasurement);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_START, exports.InteractionType.Silent, request);\r\n atbcMeasurement.add({ scenarioId: request.scenarioId });\r\n try {\r\n if (request.code && request.nativeAccountId) {\r\n // Throw error in case server returns both spa_code and spa_accountid in exchange for auth code.\r\n throw createBrowserAuthError(spaCodeAndNativeAccountIdPresent);\r\n }\r\n else if (request.code) {\r\n const hybridAuthCode = request.code;\r\n let response = this.hybridAuthCodeResponses.get(hybridAuthCode);\r\n if (!response) {\r\n this.logger.verbose(\"Initiating new acquireTokenByCode request\", correlationId);\r\n response = this.acquireTokenByCodeAsync({\r\n ...request,\r\n correlationId,\r\n })\r\n .then((result) => {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS, exports.InteractionType.Silent, result);\r\n this.hybridAuthCodeResponses.delete(hybridAuthCode);\r\n atbcMeasurement.end({\r\n success: true,\r\n isNativeBroker: result.fromNativeBroker,\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length,\r\n accountType: getAccountType(result.account),\r\n });\r\n return result;\r\n })\r\n .catch((error) => {\r\n this.hybridAuthCodeResponses.delete(hybridAuthCode);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, exports.InteractionType.Silent, null, error);\r\n atbcMeasurement.end({\r\n success: false,\r\n }, error);\r\n throw error;\r\n });\r\n this.hybridAuthCodeResponses.set(hybridAuthCode, response);\r\n }\r\n else {\r\n this.logger.verbose(\"Existing acquireTokenByCode request found\", correlationId);\r\n atbcMeasurement.discard();\r\n }\r\n return await response;\r\n }\r\n else if (request.nativeAccountId) {\r\n if (this.canUsePlatformBroker(request, request.nativeAccountId)) {\r\n const result = await this.acquireTokenNative({\r\n ...request,\r\n correlationId,\r\n }, ApiId.acquireTokenByCode, request.nativeAccountId).catch((e) => {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError &&\r\n isFatalNativeAuthError(e)) {\r\n this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n }\r\n throw e;\r\n });\r\n atbcMeasurement.end({\r\n accountType: getAccountType(result.account),\r\n success: true,\r\n });\r\n return result;\r\n }\r\n else {\r\n throw createBrowserAuthError(unableToAcquireTokenFromNativePlatform);\r\n }\r\n }\r\n else {\r\n throw createBrowserAuthError(authCodeOrNativeAccountIdRequired);\r\n }\r\n }\r\n catch (e) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, exports.InteractionType.Silent, null, e);\r\n atbcMeasurement.end({\r\n success: false,\r\n }, e);\r\n throw e;\r\n }\r\n }\r\n /**\r\n * Creates a SilentAuthCodeClient to redeem an authorization code.\r\n * @param request\r\n * @returns Result of the operation to redeem the authorization code\r\n */\r\n async acquireTokenByCodeAsync(request) {\r\n this.logger.trace(\"acquireTokenByCodeAsync called\", request.correlationId);\r\n this.acquireTokenByCodeAsyncMeasurement =\r\n this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);\r\n this.acquireTokenByCodeAsyncMeasurement?.increment({\r\n visibilityChangeCount: 0,\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n const silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);\r\n const silentTokenResult = await silentAuthCodeClient\r\n .acquireToken(request)\r\n .then((response) => {\r\n this.acquireTokenByCodeAsyncMeasurement?.end({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n });\r\n return response;\r\n })\r\n .catch((tokenRenewalError) => {\r\n this.acquireTokenByCodeAsyncMeasurement?.end({\r\n success: false,\r\n }, tokenRenewalError);\r\n throw tokenRenewalError;\r\n })\r\n .finally(() => {\r\n document.removeEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n });\r\n return silentTokenResult;\r\n }\r\n /**\r\n * Attempt to acquire an access token from the cache\r\n * @param silentCacheClient SilentCacheClient\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n async acquireTokenFromCache(commonRequest, cacheLookupPolicy) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenFromCache, commonRequest.correlationId);\r\n switch (cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessToken:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n const silentCacheClient = this.createSilentCacheClient(commonRequest.correlationId);\r\n return invokeAsync(silentCacheClient.acquireToken.bind(silentCacheClient), PerformanceEvents.SilentCacheClientAcquireToken, this.logger, this.performanceClient, commonRequest.correlationId)(commonRequest);\r\n default:\r\n throw createClientAuthError(tokenRefreshRequired);\r\n }\r\n }\r\n /**\r\n * Attempt to acquire an access token via a refresh token\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param cacheLookupPolicy CacheLookupPolicy\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n async acquireTokenByRefreshToken(commonRequest, cacheLookupPolicy) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenByRefreshToken, commonRequest.correlationId);\r\n switch (cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n case CacheLookupPolicy.RefreshToken:\r\n case CacheLookupPolicy.RefreshTokenAndNetwork:\r\n const silentRefreshClient = this.createSilentRefreshClient(commonRequest.correlationId);\r\n return invokeAsync(silentRefreshClient.acquireToken.bind(silentRefreshClient), PerformanceEvents.SilentRefreshClientAcquireToken, this.logger, this.performanceClient, commonRequest.correlationId)(commonRequest);\r\n default:\r\n throw createClientAuthError(tokenRefreshRequired);\r\n }\r\n }\r\n /**\r\n * Attempt to acquire an access token via an iframe\r\n * @param request CommonSilentFlowRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n async acquireTokenBySilentIframe(request) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenBySilentIframe, request.correlationId);\r\n const silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n return invokeAsync(silentIframeClient.acquireToken.bind(silentIframeClient), PerformanceEvents.SilentIframeClientAcquireToken, this.logger, this.performanceClient, request.correlationId)(request);\r\n }\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n async logout(logoutRequest) {\r\n const correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\", correlationId);\r\n return this.logoutRedirect({\r\n correlationId,\r\n ...logoutRequest,\r\n });\r\n }\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n async logoutRedirect(logoutRequest) {\r\n const correlationId = this.getRequestCorrelationId(logoutRequest);\r\n redirectPreflightCheck(this.initialized, this.config);\r\n this.browserStorage.setInteractionInProgress(true);\r\n const redirectClient = this.createRedirectClient(correlationId);\r\n return redirectClient.logout(logoutRequest);\r\n }\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n logoutPopup(logoutRequest) {\r\n try {\r\n const correlationId = this.getRequestCorrelationId(logoutRequest);\r\n preflightCheck$1(this.initialized);\r\n this.browserStorage.setInteractionInProgress(true);\r\n const popupClient = this.createPopupClient(correlationId);\r\n return popupClient.logout(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n }\r\n /**\r\n * Creates a cache interaction client to clear broswer cache.\r\n * @param logoutRequest\r\n */\r\n async clearCache(logoutRequest) {\r\n if (!this.isBrowserEnvironment) {\r\n this.logger.info(\"in non-browser environment, returning early.\");\r\n return;\r\n }\r\n const correlationId = this.getRequestCorrelationId(logoutRequest);\r\n const cacheClient = this.createSilentCacheClient(correlationId);\r\n return cacheClient.logout(logoutRequest);\r\n }\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\r\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\r\n * @returns Array of AccountInfo objects in cache\r\n */\r\n getAllAccounts(accountFilter) {\r\n return getAllAccounts(this.logger, this.browserStorage, this.isBrowserEnvironment, accountFilter);\r\n }\r\n /**\r\n * Returns the first account found in the cache that matches the account filter passed in.\r\n * @param accountFilter\r\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\r\n */\r\n getAccount(accountFilter) {\r\n return getAccount(accountFilter, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param username\r\n * @returns The account object stored in MSAL\r\n */\r\n getAccountByUsername(username) {\r\n return getAccountByUsername(username, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n getAccountByHomeId(homeAccountId) {\r\n return getAccountByHomeId(homeAccountId, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n getAccountByLocalId(localAccountId) {\r\n return getAccountByLocalId(localAccountId, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n setActiveAccount(account) {\r\n setActiveAccount(account, this.browserStorage);\r\n }\r\n /**\r\n * Gets the currently active account\r\n */\r\n getActiveAccount() {\r\n return getActiveAccount(this.browserStorage);\r\n }\r\n // #endregion\r\n /**\r\n * Hydrates the cache with the tokens from an AuthenticationResult\r\n * @param result\r\n * @param request\r\n * @returns\r\n */\r\n async hydrateCache(result, request) {\r\n this.logger.verbose(\"hydrateCache called\");\r\n // Account gets saved to browser storage regardless of native or not\r\n const accountEntity = AccountEntity.createFromAccountInfo(result.account, result.cloudGraphHostName, result.msGraphHost);\r\n await this.browserStorage.setAccount(accountEntity, result.correlationId);\r\n if (result.fromNativeBroker) {\r\n this.logger.verbose(\"Response was from native broker, storing in-memory\");\r\n // Tokens from native broker are stored in-memory\r\n return this.nativeInternalStorage.hydrateCache(result, request);\r\n }\r\n else {\r\n return this.browserStorage.hydrateCache(result, request);\r\n }\r\n }\r\n // #region Helpers\r\n /**\r\n * Acquire a token from native device (e.g. WAM)\r\n * @param request\r\n */\r\n async acquireTokenNative(request, apiId, accountId) {\r\n this.logger.trace(\"acquireTokenNative called\");\r\n if (!this.nativeExtensionProvider) {\r\n throw createBrowserAuthError(nativeConnectionNotEstablished);\r\n }\r\n const nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, apiId, this.performanceClient, this.nativeExtensionProvider, accountId || this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n return nativeClient.acquireToken(request);\r\n }\r\n /**\r\n * Returns boolean indicating if this request can use the platform broker\r\n * @param request\r\n */\r\n canUsePlatformBroker(request, accountId) {\r\n this.logger.trace(\"canUsePlatformBroker called\");\r\n if (!NativeMessageHandler.isPlatformBrokerAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme)) {\r\n this.logger.trace(\"canUsePlatformBroker: isPlatformBrokerAvailable returned false, returning false\");\r\n return false;\r\n }\r\n if (request.prompt) {\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n this.logger.trace(\"canUsePlatformBroker: prompt is compatible with platform broker flow\");\r\n break;\r\n default:\r\n this.logger.trace(`canUsePlatformBroker: prompt = ${request.prompt} is not compatible with platform broker flow, returning false`);\r\n return false;\r\n }\r\n }\r\n if (!accountId && !this.getNativeAccountId(request)) {\r\n this.logger.trace(\"canUsePlatformBroker: nativeAccountId is not available, returning false\");\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Get the native accountId from the account\r\n * @param request\r\n * @returns\r\n */\r\n getNativeAccountId(request) {\r\n const account = request.account ||\r\n this.getAccount({\r\n loginHint: request.loginHint,\r\n sid: request.sid,\r\n }) ||\r\n this.getActiveAccount();\r\n return (account && account.nativeAccountId) || \"\";\r\n }\r\n /**\r\n * Returns new instance of the Popup Interaction Client\r\n * @param correlationId\r\n */\r\n createPopupClient(correlationId) {\r\n return new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n }\r\n /**\r\n * Returns new instance of the Redirect Interaction Client\r\n * @param correlationId\r\n */\r\n createRedirectClient(correlationId) {\r\n return new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n }\r\n /**\r\n * Returns new instance of the Silent Iframe Interaction Client\r\n * @param correlationId\r\n */\r\n createSilentIframeClient(correlationId) {\r\n return new SilentIframeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.ssoSilent, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n }\r\n /**\r\n * Returns new instance of the Silent Cache Interaction Client\r\n */\r\n createSilentCacheClient(correlationId) {\r\n return new SilentCacheClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n }\r\n /**\r\n * Returns new instance of the Silent Refresh Interaction Client\r\n */\r\n createSilentRefreshClient(correlationId) {\r\n return new SilentRefreshClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n }\r\n /**\r\n * Returns new instance of the Silent AuthCode Interaction Client\r\n */\r\n createSilentAuthCodeClient(correlationId) {\r\n return new SilentAuthCodeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenByCode, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n addEventCallback(callback, eventTypes) {\r\n return this.eventHandler.addEventCallback(callback, eventTypes);\r\n }\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n removeEventCallback(callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n }\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n addPerformanceCallback(callback) {\r\n blockNonBrowserEnvironment();\r\n return this.performanceClient.addPerformanceCallback(callback);\r\n }\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n removePerformanceCallback(callbackId) {\r\n return this.performanceClient.removePerformanceCallback(callbackId);\r\n }\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n enableAccountStorageEvents() {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (!this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Adding account storage listener.\");\r\n this.listeningToStorageEvents = true;\r\n window.addEventListener(\"storage\", this.handleAccountCacheChange);\r\n }\r\n else {\r\n this.logger.verbose(\"Account storage listener already registered.\");\r\n }\r\n }\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n disableAccountStorageEvents() {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Removing account storage listener.\");\r\n window.removeEventListener(\"storage\", this.handleAccountCacheChange);\r\n this.listeningToStorageEvents = false;\r\n }\r\n else {\r\n this.logger.verbose(\"No account storage listener registered.\");\r\n }\r\n }\r\n /**\r\n * Emit account added/removed events when cached accounts are changed in a different tab or frame\r\n */\r\n handleAccountCacheChange(e) {\r\n try {\r\n // Handle active account filter change\r\n if (e.key?.includes(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS)) {\r\n // This event has no payload, it only signals cross-tab app instances that the results of calling getActiveAccount() will have changed\r\n this.eventHandler.emitEvent(EventType.ACTIVE_ACCOUNT_CHANGED);\r\n }\r\n // Handle account object change\r\n const cacheValue = e.newValue || e.oldValue;\r\n if (!cacheValue) {\r\n return;\r\n }\r\n const parsedValue = JSON.parse(cacheValue);\r\n if (typeof parsedValue !== \"object\" ||\r\n !AccountEntity.isAccountEntity(parsedValue)) {\r\n return;\r\n }\r\n const accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);\r\n const accountInfo = accountEntity.getAccountInfo();\r\n if (!e.oldValue && e.newValue) {\r\n this.logger.info(\"Account was added to cache in a different window\");\r\n this.eventHandler.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);\r\n }\r\n else if (!e.newValue && e.oldValue) {\r\n this.logger.info(\"Account was removed from cache in a different window\");\r\n this.eventHandler.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);\r\n }\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n }\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n getTokenCache() {\r\n return this.tokenCache;\r\n }\r\n /**\r\n * Returns the logger instance\r\n */\r\n getLogger() {\r\n return this.logger;\r\n }\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n setLogger(logger) {\r\n this.logger = logger;\r\n }\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n initializeWrapperLibrary(sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n }\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n setNavigationClient(navigationClient) {\r\n this.navigationClient = navigationClient;\r\n }\r\n /**\r\n * Returns the configuration object\r\n */\r\n getConfiguration() {\r\n return this.config;\r\n }\r\n /**\r\n * Returns the performance client\r\n */\r\n getPerformanceClient() {\r\n return this.performanceClient;\r\n }\r\n /**\r\n * Returns the browser env indicator\r\n */\r\n isBrowserEnv() {\r\n return this.isBrowserEnvironment;\r\n }\r\n /**\r\n * Generates a correlation id for a request if none is provided.\r\n *\r\n * @protected\r\n * @param {?Partial<BaseAuthRequest>} [request]\r\n * @returns {string}\r\n */\r\n getRequestCorrelationId(request) {\r\n if (request?.correlationId) {\r\n return request.correlationId;\r\n }\r\n if (this.isBrowserEnvironment) {\r\n return createNewGuid();\r\n }\r\n /*\r\n * Included for fallback for non-browser environments,\r\n * and to ensure this method always returns a string.\r\n */\r\n return Constants.EMPTY_STRING;\r\n }\r\n // #endregion\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n async loginRedirect(request) {\r\n const correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginRedirect called\", correlationId);\r\n return this.acquireTokenRedirect({\r\n correlationId,\r\n ...(request || DEFAULT_REQUEST),\r\n });\r\n }\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n loginPopup(request) {\r\n const correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginPopup called\", correlationId);\r\n return this.acquireTokenPopup({\r\n correlationId,\r\n ...(request || DEFAULT_REQUEST),\r\n });\r\n }\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n async acquireTokenSilent(request) {\r\n const correlationId = this.getRequestCorrelationId(request);\r\n const atsMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilent, correlationId);\r\n atsMeasurement.add({\r\n cacheLookupPolicy: request.cacheLookupPolicy,\r\n scenarioId: request.scenarioId,\r\n });\r\n preflightCheck(this.initialized, atsMeasurement);\r\n this.logger.verbose(\"acquireTokenSilent called\", correlationId);\r\n const account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw createBrowserAuthError(noAccountError);\r\n }\r\n atsMeasurement.add({ accountType: getAccountType(account) });\r\n const thumbprint = {\r\n clientId: this.config.auth.clientId,\r\n authority: request.authority || Constants.EMPTY_STRING,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: account.homeAccountId,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid,\r\n shrOptions: request.shrOptions,\r\n };\r\n const silentRequestKey = JSON.stringify(thumbprint);\r\n const cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\r\n if (typeof cachedResponse === \"undefined\") {\r\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", correlationId);\r\n const response = invokeAsync(this.acquireTokenSilentAsync.bind(this), PerformanceEvents.AcquireTokenSilentAsync, this.logger, this.performanceClient, correlationId)({\r\n ...request,\r\n correlationId,\r\n }, account)\r\n .then((result) => {\r\n this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.end({\r\n success: true,\r\n fromCache: result.fromCache,\r\n isNativeBroker: result.fromNativeBroker,\r\n cacheLookupPolicy: request.cacheLookupPolicy,\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length,\r\n });\r\n return result;\r\n })\r\n .catch((error) => {\r\n this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.end({\r\n success: false,\r\n }, error);\r\n throw error;\r\n });\r\n this.activeSilentTokenRequests.set(silentRequestKey, response);\r\n return {\r\n ...(await response),\r\n state: request.state,\r\n };\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", correlationId);\r\n // Discard measurements for memoized calls, as they are usually only a couple of ms and will artificially deflate metrics\r\n atsMeasurement.discard();\r\n return {\r\n ...(await cachedResponse),\r\n state: request.state,\r\n };\r\n }\r\n }\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n * @param {@link (SilentRequest:type)}\r\n * @param {@link (AccountInfo:type)}\r\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}\r\n */\r\n async acquireTokenSilentAsync(request, account) {\r\n const trackPageVisibility = () => this.trackPageVisibility(request.correlationId);\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, exports.InteractionType.Silent, request);\r\n if (request.correlationId) {\r\n this.performanceClient.incrementFields({ visibilityChangeCount: 0 }, request.correlationId);\r\n }\r\n document.addEventListener(\"visibilitychange\", trackPageVisibility);\r\n const silentRequest = await invokeAsync(initializeSilentRequest, PerformanceEvents.InitializeSilentRequest, this.logger, this.performanceClient, request.correlationId)(request, account, this.config, this.performanceClient, this.logger);\r\n const cacheLookupPolicy = request.cacheLookupPolicy || CacheLookupPolicy.Default;\r\n const result = this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy).catch(async (refreshTokenError) => {\r\n const shouldTryToResolveSilently = checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheLookupPolicy);\r\n if (shouldTryToResolveSilently) {\r\n if (!this.activeIframeRequest) {\r\n let _resolve;\r\n // Always set the active request tracker immediately after checking it to prevent races\r\n this.activeIframeRequest = [\r\n new Promise((resolve) => {\r\n _resolve = resolve;\r\n }),\r\n silentRequest.correlationId,\r\n ];\r\n this.logger.verbose(\"Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.\", silentRequest.correlationId);\r\n return invokeAsync(this.acquireTokenBySilentIframe.bind(this), PerformanceEvents.AcquireTokenBySilentIframe, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest)\r\n .then((iframeResult) => {\r\n _resolve(true);\r\n return iframeResult;\r\n })\r\n .catch((e) => {\r\n _resolve(false);\r\n throw e;\r\n })\r\n .finally(() => {\r\n this.activeIframeRequest = undefined;\r\n });\r\n }\r\n else if (cacheLookupPolicy !== CacheLookupPolicy.Skip) {\r\n const [activePromise, activeCorrelationId] = this.activeIframeRequest;\r\n this.logger.verbose(`Iframe request is already in progress, awaiting resolution for request with correlationId: ${activeCorrelationId}`, silentRequest.correlationId);\r\n const awaitConcurrentIframeMeasure = this.performanceClient.startMeasurement(PerformanceEvents.AwaitConcurrentIframe, silentRequest.correlationId);\r\n awaitConcurrentIframeMeasure.add({\r\n awaitIframeCorrelationId: activeCorrelationId,\r\n });\r\n const activePromiseResult = await activePromise;\r\n awaitConcurrentIframeMeasure.end({\r\n success: activePromiseResult,\r\n });\r\n if (activePromiseResult) {\r\n this.logger.verbose(`Parallel iframe request with correlationId: ${activeCorrelationId} succeeded. Retrying cache and/or RT redemption`, silentRequest.correlationId);\r\n // Retry cache lookup and/or RT exchange after iframe completes\r\n return this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy);\r\n }\r\n else {\r\n this.logger.info(`Iframe request with correlationId: ${activeCorrelationId} failed. Interaction is required.`);\r\n // If previous iframe request failed, it's unlikely to succeed this time. Throw original error.\r\n throw refreshTokenError;\r\n }\r\n }\r\n else {\r\n // Cache policy set to skip and another iframe request is already in progress\r\n this.logger.warning(\"Another iframe request is currently in progress and CacheLookupPolicy is set to Skip. This may result in degraded performance and/or reliability for both calls. Please consider changing the CacheLookupPolicy to take advantage of request queuing and token cache.\", silentRequest.correlationId);\r\n return invokeAsync(this.acquireTokenBySilentIframe.bind(this), PerformanceEvents.AcquireTokenBySilentIframe, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest);\r\n }\r\n }\r\n else {\r\n // Error cannot be silently resolved or iframe renewal is not allowed, interaction required\r\n throw refreshTokenError;\r\n }\r\n });\r\n return result\r\n .then((response) => {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Silent, response);\r\n if (request.correlationId) {\r\n this.performanceClient.addFields({\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n }, request.correlationId);\r\n }\r\n return response;\r\n })\r\n .catch((tokenRenewalError) => {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Silent, null, tokenRenewalError);\r\n throw tokenRenewalError;\r\n })\r\n .finally(() => {\r\n document.removeEventListener(\"visibilitychange\", trackPageVisibility);\r\n });\r\n }\r\n /**\r\n * AcquireTokenSilent without the iframe fallback. This is used to enable the correct fallbacks in cases where there's a potential for multiple silent requests to be made in parallel and prevent those requests from making concurrent iframe requests.\r\n * @param silentRequest\r\n * @param cacheLookupPolicy\r\n * @returns\r\n */\r\n async acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy) {\r\n if (NativeMessageHandler.isPlatformBrokerAvailable(this.config, this.logger, this.nativeExtensionProvider, silentRequest.authenticationScheme) &&\r\n silentRequest.account.nativeAccountId) {\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from native platform\");\r\n return this.acquireTokenNative(silentRequest, ApiId.acquireTokenSilent_silentFlow).catch(async (e) => {\r\n // If native token acquisition fails for availability reasons fallback to web flow\r\n if (e instanceof NativeAuthError && isFatalNativeAuthError(e)) {\r\n this.logger.verbose(\"acquireTokenSilent - native platform unavailable, falling back to web flow\");\r\n this.nativeExtensionProvider = undefined; // Prevent future requests from continuing to attempt\r\n // Cache will not contain tokens, given that previous WAM requests succeeded. Skip cache and RT renewal and go straight to iframe renewal\r\n throw createClientAuthError(tokenRefreshRequired);\r\n }\r\n throw e;\r\n });\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from web flow\");\r\n return invokeAsync(this.acquireTokenFromCache.bind(this), PerformanceEvents.AcquireTokenFromCache, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest, cacheLookupPolicy).catch((cacheError) => {\r\n if (cacheLookupPolicy === CacheLookupPolicy.AccessToken) {\r\n throw cacheError;\r\n }\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, exports.InteractionType.Silent, silentRequest);\r\n return invokeAsync(this.acquireTokenByRefreshToken.bind(this), PerformanceEvents.AcquireTokenByRefreshToken, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest, cacheLookupPolicy);\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Determines whether an error thrown by the refresh token endpoint can be resolved without interaction\r\n * @param refreshTokenError\r\n * @param silentRequest\r\n * @param cacheLookupPolicy\r\n * @returns\r\n */\r\nfunction checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheLookupPolicy) {\r\n const noInteractionRequired = !(refreshTokenError instanceof InteractionRequiredAuthError &&\r\n // For refresh token errors, bad_token does not always require interaction (silently resolvable)\r\n refreshTokenError.subError !==\r\n badToken);\r\n // Errors that result when the refresh token needs to be replaced\r\n const refreshTokenRefreshRequired = refreshTokenError.errorCode === BrowserConstants.INVALID_GRANT_ERROR ||\r\n refreshTokenError.errorCode ===\r\n tokenRefreshRequired;\r\n // Errors that may be resolved before falling back to interaction (through iframe renewal)\r\n const isSilentlyResolvable = (noInteractionRequired && refreshTokenRefreshRequired) ||\r\n refreshTokenError.errorCode ===\r\n noTokensFound ||\r\n refreshTokenError.errorCode ===\r\n refreshTokenExpired;\r\n // Only these policies allow for an iframe renewal attempt\r\n const tryIframeRenewal = iFrameRenewalPolicies.includes(cacheLookupPolicy);\r\n return isSilentlyResolvable && tryIframeRenewal;\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isBridgeError(error) {\r\n return error.status !== undefined;\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass NestedAppAuthAdapter {\r\n constructor(clientId, clientCapabilities, crypto, logger) {\r\n this.clientId = clientId;\r\n this.clientCapabilities = clientCapabilities;\r\n this.crypto = crypto;\r\n this.logger = logger;\r\n }\r\n toNaaTokenRequest(request) {\r\n let extraParams;\r\n if (request.extraQueryParameters === undefined) {\r\n extraParams = new Map();\r\n }\r\n else {\r\n extraParams = new Map(Object.entries(request.extraQueryParameters));\r\n }\r\n const correlationId = request.correlationId || this.crypto.createNewGuid();\r\n const requestBuilder = new RequestParameterBuilder(correlationId);\r\n const claims = requestBuilder.addClientCapabilitiesToClaims(request.claims, this.clientCapabilities);\r\n const scopes = request.scopes || OIDC_DEFAULT_SCOPES;\r\n const tokenRequest = {\r\n platformBrokerId: request.account?.homeAccountId,\r\n clientId: this.clientId,\r\n authority: request.authority,\r\n scope: scopes.join(\" \"),\r\n correlationId,\r\n claims: !StringUtils.isEmptyObj(claims) ? claims : undefined,\r\n state: request.state,\r\n authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,\r\n extraParameters: extraParams,\r\n };\r\n return tokenRequest;\r\n }\r\n fromNaaTokenResponse(request, response, reqTimestamp) {\r\n if (!response.token.id_token || !response.token.access_token) {\r\n throw createClientAuthError(nullOrEmptyToken);\r\n }\r\n const expiresOn = new Date((reqTimestamp + (response.token.expires_in || 0)) * 1000);\r\n const idTokenClaims = extractTokenClaims(response.token.id_token, this.crypto.base64Decode);\r\n const account = this.fromNaaAccountInfo(response.account, response.token.id_token, idTokenClaims);\r\n const scopes = response.token.scope || request.scope;\r\n const authenticationResult = {\r\n authority: response.token.authority || account.environment,\r\n uniqueId: account.localAccountId,\r\n tenantId: account.tenantId,\r\n scopes: scopes.split(\" \"),\r\n account,\r\n idToken: response.token.id_token,\r\n idTokenClaims,\r\n accessToken: response.token.access_token,\r\n fromCache: false,\r\n expiresOn: expiresOn,\r\n tokenType: request.authenticationScheme || AuthenticationScheme.BEARER,\r\n correlationId: request.correlationId,\r\n extExpiresOn: expiresOn,\r\n state: request.state,\r\n };\r\n return authenticationResult;\r\n }\r\n /*\r\n * export type AccountInfo = {\r\n * homeAccountId: string;\r\n * environment: string;\r\n * tenantId: string;\r\n * username: string;\r\n * localAccountId: string;\r\n * name?: string;\r\n * idToken?: string;\r\n * idTokenClaims?: TokenClaims & {\r\n * [key: string]:\r\n * | string\r\n * | number\r\n * | string[]\r\n * | object\r\n * | undefined\r\n * | unknown;\r\n * };\r\n * nativeAccountId?: string;\r\n * authorityType?: string;\r\n * };\r\n */\r\n fromNaaAccountInfo(fromAccount, idToken, idTokenClaims) {\r\n const effectiveIdTokenClaims = idTokenClaims || fromAccount.idTokenClaims;\r\n const localAccountId = fromAccount.localAccountId ||\r\n effectiveIdTokenClaims?.oid ||\r\n effectiveIdTokenClaims?.sub ||\r\n \"\";\r\n const tenantId = fromAccount.tenantId || effectiveIdTokenClaims?.tid || \"\";\r\n const homeAccountId = fromAccount.homeAccountId || `${localAccountId}.${tenantId}`;\r\n const username = fromAccount.username ||\r\n effectiveIdTokenClaims?.preferred_username ||\r\n \"\";\r\n const name = fromAccount.name || effectiveIdTokenClaims?.name;\r\n const tenantProfiles = new Map();\r\n const tenantProfile = buildTenantProfile(homeAccountId, localAccountId, tenantId, effectiveIdTokenClaims);\r\n tenantProfiles.set(tenantId, tenantProfile);\r\n const account = {\r\n homeAccountId,\r\n environment: fromAccount.environment,\r\n tenantId,\r\n username,\r\n localAccountId,\r\n name,\r\n idToken: idToken,\r\n idTokenClaims: effectiveIdTokenClaims,\r\n tenantProfiles,\r\n };\r\n return account;\r\n }\r\n /**\r\n *\r\n * @param error BridgeError\r\n * @returns AuthError, ClientAuthError, ClientConfigurationError, ServerError, InteractionRequiredError\r\n */\r\n fromBridgeError(error) {\r\n if (isBridgeError(error)) {\r\n switch (error.status) {\r\n case BridgeStatusCode.UserCancel:\r\n return new ClientAuthError(userCanceled);\r\n case BridgeStatusCode.NoNetwork:\r\n return new ClientAuthError(noNetworkConnectivity$1);\r\n case BridgeStatusCode.AccountUnavailable:\r\n return new ClientAuthError(noAccountFound);\r\n case BridgeStatusCode.Disabled:\r\n return new ClientAuthError(nestedAppAuthBridgeDisabled);\r\n case BridgeStatusCode.NestedAppAuthUnavailable:\r\n return new ClientAuthError(error.code ||\r\n nestedAppAuthBridgeDisabled, error.description);\r\n case BridgeStatusCode.TransientError:\r\n case BridgeStatusCode.PersistentError:\r\n return new ServerError(error.code, error.description);\r\n case BridgeStatusCode.UserInteractionRequired:\r\n return new InteractionRequiredAuthError(error.code, error.description);\r\n default:\r\n return new AuthError(error.code, error.description);\r\n }\r\n }\r\n else {\r\n return new AuthError(\"unknown_error\", \"An unknown error occurred\");\r\n }\r\n }\r\n /**\r\n * Returns an AuthenticationResult from the given cache items\r\n *\r\n * @param account\r\n * @param idToken\r\n * @param accessToken\r\n * @param reqTimestamp\r\n * @returns\r\n */\r\n toAuthenticationResultFromCache(account, idToken, accessToken, request, correlationId) {\r\n if (!idToken || !accessToken) {\r\n throw createClientAuthError(nullOrEmptyToken);\r\n }\r\n const idTokenClaims = extractTokenClaims(idToken.secret, this.crypto.base64Decode);\r\n const scopes = accessToken.target || request.scopes.join(\" \");\r\n const authenticationResult = {\r\n authority: accessToken.environment || account.environment,\r\n uniqueId: account.localAccountId,\r\n tenantId: account.tenantId,\r\n scopes: scopes.split(\" \"),\r\n account,\r\n idToken: idToken.secret,\r\n idTokenClaims: idTokenClaims || {},\r\n accessToken: accessToken.secret,\r\n fromCache: true,\r\n expiresOn: new Date(Number(accessToken.expiresOn) * 1000),\r\n tokenType: request.authenticationScheme || AuthenticationScheme.BEARER,\r\n correlationId,\r\n extExpiresOn: new Date(Number(accessToken.extendedExpiresOn) * 1000),\r\n state: request.state,\r\n };\r\n return authenticationResult;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * NestedAppAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nconst NestedAppAuthErrorMessage = {\r\n unsupportedMethod: {\r\n code: \"unsupported_method\",\r\n desc: \"This method is not supported in nested app environment.\",\r\n },\r\n};\r\nclass NestedAppAuthError extends AuthError {\r\n constructor(errorCode, errorMessage) {\r\n super(errorCode, errorMessage);\r\n Object.setPrototypeOf(this, NestedAppAuthError.prototype);\r\n this.name = \"NestedAppAuthError\";\r\n }\r\n static createUnsupportedError() {\r\n return new NestedAppAuthError(NestedAppAuthErrorMessage.unsupportedMethod.code, NestedAppAuthErrorMessage.unsupportedMethod.desc);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass NestedAppAuthController {\r\n constructor(operatingContext) {\r\n this.operatingContext = operatingContext;\r\n const proxy = this.operatingContext.getBridgeProxy();\r\n if (proxy !== undefined) {\r\n this.bridgeProxy = proxy;\r\n }\r\n else {\r\n throw new Error(\"unexpected: bridgeProxy is undefined\");\r\n }\r\n // Set the configuration.\r\n this.config = operatingContext.getConfig();\r\n // Initialize logger\r\n this.logger = this.operatingContext.getLogger();\r\n // Initialize performance client\r\n this.performanceClient = this.config.telemetry.client;\r\n // Initialize the crypto class.\r\n this.browserCrypto = operatingContext.isBrowserEnvironment()\r\n ? new CryptoOps(this.logger, this.performanceClient, true)\r\n : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.operatingContext.isBrowserEnvironment()\r\n ? new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger, this.performanceClient, buildStaticAuthorityOptions(this.config.auth))\r\n : DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger, this.performanceClient);\r\n this.eventHandler = new EventHandler(this.logger);\r\n this.nestedAppAuthAdapter = new NestedAppAuthAdapter(this.config.auth.clientId, this.config.auth.clientCapabilities, this.browserCrypto, this.logger);\r\n // Set the active account if available\r\n const accountContext = this.bridgeProxy.getAccountContext();\r\n this.currentAccountContext = accountContext ? accountContext : null;\r\n }\r\n /**\r\n * Factory function to create a new instance of NestedAppAuthController\r\n * @param operatingContext\r\n * @returns Promise<IController>\r\n */\r\n static async createController(operatingContext) {\r\n const controller = new NestedAppAuthController(operatingContext);\r\n return Promise.resolve(controller);\r\n }\r\n /**\r\n * Specific implementation of initialize function for NestedAppAuthController\r\n * @returns\r\n */\r\n async initialize(request) {\r\n const initCorrelationId = request?.correlationId || createNewGuid();\r\n await this.browserStorage.initialize(initCorrelationId);\r\n return Promise.resolve();\r\n }\r\n /**\r\n * Validate the incoming request and add correlationId if not present\r\n * @param request\r\n * @returns\r\n */\r\n ensureValidRequest(request) {\r\n if (request?.correlationId) {\r\n return request;\r\n }\r\n return {\r\n ...request,\r\n correlationId: this.browserCrypto.createNewGuid(),\r\n };\r\n }\r\n /**\r\n * Internal implementation of acquireTokenInteractive flow\r\n * @param request\r\n * @returns\r\n */\r\n async acquireTokenInteractive(request) {\r\n const validRequest = this.ensureValidRequest(request);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, exports.InteractionType.Popup, validRequest);\r\n const atPopupMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPopup, validRequest.correlationId);\r\n atPopupMeasurement?.add({ nestedAppAuthRequest: true });\r\n try {\r\n const naaRequest = this.nestedAppAuthAdapter.toNaaTokenRequest(validRequest);\r\n const reqTimestamp = nowSeconds();\r\n const response = await this.bridgeProxy.getTokenInteractive(naaRequest);\r\n const result = {\r\n ...this.nestedAppAuthAdapter.fromNaaTokenResponse(naaRequest, response, reqTimestamp),\r\n };\r\n // cache the tokens in the response\r\n await this.hydrateCache(result, request);\r\n // cache the account context in memory after successful token fetch\r\n this.currentAccountContext = {\r\n homeAccountId: result.account.homeAccountId,\r\n environment: result.account.environment,\r\n tenantId: result.account.tenantId,\r\n };\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Popup, result);\r\n atPopupMeasurement.add({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length,\r\n });\r\n atPopupMeasurement.end({\r\n success: true,\r\n requestId: result.requestId,\r\n });\r\n return result;\r\n }\r\n catch (e) {\r\n const error = this.nestedAppAuthAdapter.fromBridgeError(e);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Popup, null, e);\r\n atPopupMeasurement.end({\r\n success: false,\r\n }, e);\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Internal implementation of acquireTokenSilent flow\r\n * @param request\r\n * @returns\r\n */\r\n async acquireTokenSilentInternal(request) {\r\n const validRequest = this.ensureValidRequest(request);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, exports.InteractionType.Silent, validRequest);\r\n // Look for tokens in the cache first\r\n const result = await this.acquireTokenFromCache(validRequest);\r\n if (result) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Silent, result);\r\n return result;\r\n }\r\n // proceed with acquiring tokens via the host\r\n const ssoSilentMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoSilent, validRequest.correlationId);\r\n ssoSilentMeasurement?.increment({\r\n visibilityChangeCount: 0,\r\n });\r\n ssoSilentMeasurement?.add({\r\n nestedAppAuthRequest: true,\r\n });\r\n try {\r\n const naaRequest = this.nestedAppAuthAdapter.toNaaTokenRequest(validRequest);\r\n const reqTimestamp = nowSeconds();\r\n const response = await this.bridgeProxy.getTokenSilent(naaRequest);\r\n const result = this.nestedAppAuthAdapter.fromNaaTokenResponse(naaRequest, response, reqTimestamp);\r\n // cache the tokens in the response\r\n await this.hydrateCache(result, request);\r\n // cache the account context in memory after successful token fetch\r\n this.currentAccountContext = {\r\n homeAccountId: result.account.homeAccountId,\r\n environment: result.account.environment,\r\n tenantId: result.account.tenantId,\r\n };\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Silent, result);\r\n ssoSilentMeasurement?.add({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length,\r\n });\r\n ssoSilentMeasurement?.end({\r\n success: true,\r\n requestId: result.requestId,\r\n });\r\n return result;\r\n }\r\n catch (e) {\r\n const error = this.nestedAppAuthAdapter.fromBridgeError(e);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Silent, null, e);\r\n ssoSilentMeasurement?.end({\r\n success: false,\r\n }, e);\r\n throw error;\r\n }\r\n }\r\n /**\r\n * acquires tokens from cache\r\n * @param request\r\n * @returns\r\n */\r\n async acquireTokenFromCache(request) {\r\n const atsMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilent, request.correlationId);\r\n atsMeasurement?.add({\r\n nestedAppAuthRequest: true,\r\n });\r\n // if the request has claims, we cannot look up in the cache\r\n if (request.claims) {\r\n this.logger.verbose(\"Claims are present in the request, skipping cache lookup\");\r\n return null;\r\n }\r\n // if the request has forceRefresh, we cannot look up in the cache\r\n if (request.forceRefresh) {\r\n this.logger.verbose(\"forceRefresh is set to true, skipping cache lookup\");\r\n return null;\r\n }\r\n // respect cache lookup policy\r\n let result = null;\r\n if (!request.cacheLookupPolicy) {\r\n request.cacheLookupPolicy = CacheLookupPolicy.Default;\r\n }\r\n switch (request.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessToken:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n result = await this.acquireTokenFromCacheInternal(request);\r\n break;\r\n default:\r\n return null;\r\n }\r\n if (result) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, exports.InteractionType.Silent, result);\r\n atsMeasurement?.add({\r\n accessTokenSize: result?.accessToken.length,\r\n idTokenSize: result?.idToken.length,\r\n });\r\n atsMeasurement?.end({\r\n success: true,\r\n });\r\n return result;\r\n }\r\n this.logger.error(\"Cached tokens are not found for the account, proceeding with silent token request.\");\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, exports.InteractionType.Silent, null);\r\n atsMeasurement?.end({\r\n success: false,\r\n });\r\n return null;\r\n }\r\n /**\r\n *\r\n * @param request\r\n * @returns\r\n */\r\n async acquireTokenFromCacheInternal(request) {\r\n // always prioritize the account context from the bridge\r\n const accountContext = this.bridgeProxy.getAccountContext() || this.currentAccountContext;\r\n let currentAccount = null;\r\n if (accountContext) {\r\n currentAccount = getAccount(accountContext, this.logger, this.browserStorage);\r\n }\r\n // fall back to brokering if no cached account is found\r\n if (!currentAccount) {\r\n this.logger.verbose(\"No active account found, falling back to the host\");\r\n return Promise.resolve(null);\r\n }\r\n this.logger.verbose(\"active account found, attempting to acquire token silently\");\r\n const authRequest = {\r\n ...request,\r\n correlationId: request.correlationId || this.browserCrypto.createNewGuid(),\r\n authority: request.authority || currentAccount.environment,\r\n scopes: request.scopes?.length\r\n ? request.scopes\r\n : [...OIDC_DEFAULT_SCOPES],\r\n };\r\n // fetch access token and check for expiry\r\n const tokenKeys = this.browserStorage.getTokenKeys();\r\n const cachedAccessToken = this.browserStorage.getAccessToken(currentAccount, authRequest, tokenKeys, currentAccount.tenantId, this.performanceClient, authRequest.correlationId);\r\n // If there is no access token, log it and return null\r\n if (!cachedAccessToken) {\r\n this.logger.verbose(\"No cached access token found\");\r\n return Promise.resolve(null);\r\n }\r\n else if (wasClockTurnedBack(cachedAccessToken.cachedAt) ||\r\n isTokenExpired(cachedAccessToken.expiresOn, this.config.system.tokenRenewalOffsetSeconds)) {\r\n this.logger.verbose(\"Cached access token has expired\");\r\n return Promise.resolve(null);\r\n }\r\n const cachedIdToken = this.browserStorage.getIdToken(currentAccount, tokenKeys, currentAccount.tenantId, this.performanceClient, authRequest.correlationId);\r\n if (!cachedIdToken) {\r\n this.logger.verbose(\"No cached id token found\");\r\n return Promise.resolve(null);\r\n }\r\n return this.nestedAppAuthAdapter.toAuthenticationResultFromCache(currentAccount, cachedIdToken, cachedAccessToken, authRequest, authRequest.correlationId);\r\n }\r\n /**\r\n * acquireTokenPopup flow implementation\r\n * @param request\r\n * @returns\r\n */\r\n async acquireTokenPopup(request) {\r\n return this.acquireTokenInteractive(request);\r\n }\r\n /**\r\n * acquireTokenRedirect flow is not supported in nested app auth\r\n * @param request\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n acquireTokenRedirect(request) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n /**\r\n * acquireTokenSilent flow implementation\r\n * @param silentRequest\r\n * @returns\r\n */\r\n async acquireTokenSilent(silentRequest) {\r\n return this.acquireTokenSilentInternal(silentRequest);\r\n }\r\n /**\r\n * Hybrid flow is not currently supported in nested app auth\r\n * @param request\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n acquireTokenByCode(request // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n /**\r\n * acquireTokenNative flow is not currently supported in nested app auth\r\n * @param request\r\n * @param apiId\r\n * @param accountId\r\n */\r\n acquireTokenNative(request, apiId, // eslint-disable-line @typescript-eslint/no-unused-vars\r\n accountId // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n /**\r\n * acquireTokenByRefreshToken flow is not currently supported in nested app auth\r\n * @param commonRequest\r\n * @param silentRequest\r\n */\r\n acquireTokenByRefreshToken(commonRequest, // eslint-disable-line @typescript-eslint/no-unused-vars\r\n silentRequest // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n * @param eventTypes\r\n */\r\n addEventCallback(callback, eventTypes) {\r\n return this.eventHandler.addEventCallback(callback, eventTypes);\r\n }\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n removeEventCallback(callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n addPerformanceCallback(callback) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n removePerformanceCallback(callbackId) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n enableAccountStorageEvents() {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n disableAccountStorageEvents() {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n // #region Account APIs\r\n /**\r\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\r\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\r\n * @returns Array of AccountInfo objects in cache\r\n */\r\n getAllAccounts(accountFilter) {\r\n return getAllAccounts(this.logger, this.browserStorage, this.isBrowserEnv(), accountFilter);\r\n }\r\n /**\r\n * Returns the first account found in the cache that matches the account filter passed in.\r\n * @param accountFilter\r\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\r\n */\r\n getAccount(accountFilter) {\r\n return getAccount(accountFilter, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param username\r\n * @returns The account object stored in MSAL\r\n */\r\n getAccountByUsername(username) {\r\n return getAccountByUsername(username, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n getAccountByHomeId(homeAccountId) {\r\n return getAccountByHomeId(homeAccountId, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n getAccountByLocalId(localAccountId) {\r\n return getAccountByLocalId(localAccountId, this.logger, this.browserStorage);\r\n }\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n setActiveAccount(account) {\r\n /*\r\n * StandardController uses this to allow the developer to set the active account\r\n * in the nested app auth scenario the active account is controlled by the app hosting the nested app\r\n */\r\n return setActiveAccount(account, this.browserStorage);\r\n }\r\n /**\r\n * Gets the currently active account\r\n */\r\n getActiveAccount() {\r\n return getActiveAccount(this.browserStorage);\r\n }\r\n // #endregion\r\n handleRedirectPromise(hash // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n return Promise.resolve(null);\r\n }\r\n loginPopup(request // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n return this.acquireTokenInteractive(request || DEFAULT_REQUEST);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n loginRedirect(request) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n logout(logoutRequest) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n logoutRedirect(logoutRequest // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n logoutPopup(logoutRequest // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n ssoSilent(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n request) {\r\n return this.acquireTokenSilentInternal(request);\r\n }\r\n getTokenCache() {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n /**\r\n * Returns the logger instance\r\n */\r\n getLogger() {\r\n return this.logger;\r\n }\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n setLogger(logger) {\r\n this.logger = logger;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n initializeWrapperLibrary(sku, version) {\r\n /*\r\n * Standard controller uses this to set the sku and version of the wrapper library in the storage\r\n * we do nothing here\r\n */\r\n return;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setNavigationClient(navigationClient) {\r\n this.logger.warning(\"setNavigationClient is not supported in nested app auth\");\r\n }\r\n getConfiguration() {\r\n return this.config;\r\n }\r\n isBrowserEnv() {\r\n return this.operatingContext.isBrowserEnvironment();\r\n }\r\n getBrowserCrypto() {\r\n return this.browserCrypto;\r\n }\r\n getPerformanceClient() {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n getRedirectResponse() {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n async clearCache(logoutRequest) {\r\n throw NestedAppAuthError.createUnsupportedError();\r\n }\r\n async hydrateCache(result, request) {\r\n this.logger.verbose(\"hydrateCache called\");\r\n const accountEntity = AccountEntity.createFromAccountInfo(result.account, result.cloudGraphHostName, result.msGraphHost);\r\n await this.browserStorage.setAccount(accountEntity, result.correlationId);\r\n return this.browserStorage.hydrateCache(result, request);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nasync function createV3Controller(config, request) {\r\n const standard = new StandardOperatingContext(config);\r\n await standard.initialize();\r\n return StandardController.createController(standard, request);\r\n}\r\nasync function createController(config) {\r\n const standard = new StandardOperatingContext(config);\r\n const nestedApp = new NestedAppOperatingContext(config);\r\n const operatingContexts = [standard.initialize(), nestedApp.initialize()];\r\n await Promise.all(operatingContexts);\r\n if (nestedApp.isAvailable() && config.auth.supportsNestedAppAuth) {\r\n return NestedAppAuthController.createController(nestedApp);\r\n }\r\n else if (standard.isAvailable()) {\r\n return StandardController.createController(standard);\r\n }\r\n else {\r\n // Since neither of the actual operating contexts are available keep the UnknownOperatingContextController\r\n return null;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nclass PublicClientApplication {\r\n /**\r\n * Creates StandardController and passes it to the PublicClientApplication\r\n *\r\n * @param configuration {Configuration}\r\n */\r\n static async createPublicClientApplication(configuration) {\r\n const controller = await createV3Controller(configuration);\r\n const pca = new PublicClientApplication(configuration, controller);\r\n return pca;\r\n }\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n * @param IController Optional parameter to explictly set the controller. (Will be removed when we remove public constructor)\r\n */\r\n constructor(configuration, controller) {\r\n this.controller =\r\n controller ||\r\n new StandardController(new StandardOperatingContext(configuration));\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n * @param request {?InitializeApplicationRequest}\r\n */\r\n async initialize(request) {\r\n return this.controller.initialize(request);\r\n }\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n async acquireTokenPopup(request) {\r\n return this.controller.acquireTokenPopup(request);\r\n }\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n acquireTokenRedirect(request) {\r\n return this.controller.acquireTokenRedirect(request);\r\n }\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthenticationResult} object\r\n */\r\n acquireTokenSilent(silentRequest) {\r\n return this.controller.acquireTokenSilent(silentRequest);\r\n }\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n acquireTokenByCode(request) {\r\n return this.controller.acquireTokenByCode(request);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n * @param eventTypes\r\n */\r\n addEventCallback(callback, eventTypes) {\r\n return this.controller.addEventCallback(callback, eventTypes);\r\n }\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n removeEventCallback(callbackId) {\r\n return this.controller.removeEventCallback(callbackId);\r\n }\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n addPerformanceCallback(callback) {\r\n return this.controller.addPerformanceCallback(callback);\r\n }\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n removePerformanceCallback(callbackId) {\r\n return this.controller.removePerformanceCallback(callbackId);\r\n }\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n enableAccountStorageEvents() {\r\n this.controller.enableAccountStorageEvents();\r\n }\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n disableAccountStorageEvents() {\r\n this.controller.disableAccountStorageEvents();\r\n }\r\n /**\r\n * Returns the first account found in the cache that matches the account filter passed in.\r\n * @param accountFilter\r\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\r\n */\r\n getAccount(accountFilter) {\r\n return this.controller.getAccount(accountFilter);\r\n }\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n * @deprecated - Use getAccount instead\r\n */\r\n getAccountByHomeId(homeAccountId) {\r\n return this.controller.getAccountByHomeId(homeAccountId);\r\n }\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n * @deprecated - Use getAccount instead\r\n */\r\n getAccountByLocalId(localId) {\r\n return this.controller.getAccountByLocalId(localId);\r\n }\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param userName\r\n * @returns The account object stored in MSAL\r\n * @deprecated - Use getAccount instead\r\n */\r\n getAccountByUsername(userName) {\r\n return this.controller.getAccountByUsername(userName);\r\n }\r\n /**\r\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\r\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\r\n * @returns Array of AccountInfo objects in cache\r\n */\r\n getAllAccounts(accountFilter) {\r\n return this.controller.getAllAccounts(accountFilter);\r\n }\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n handleRedirectPromise(hash) {\r\n return this.controller.handleRedirectPromise(hash);\r\n }\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n loginPopup(request) {\r\n return this.controller.loginPopup(request);\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n loginRedirect(request) {\r\n return this.controller.loginRedirect(request);\r\n }\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n logout(logoutRequest) {\r\n return this.controller.logout(logoutRequest);\r\n }\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n logoutRedirect(logoutRequest) {\r\n return this.controller.logoutRedirect(logoutRequest);\r\n }\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n logoutPopup(logoutRequest) {\r\n return this.controller.logoutPopup(logoutRequest);\r\n }\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ssoSilent(request) {\r\n return this.controller.ssoSilent(request);\r\n }\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n getTokenCache() {\r\n return this.controller.getTokenCache();\r\n }\r\n /**\r\n * Returns the logger instance\r\n */\r\n getLogger() {\r\n return this.controller.getLogger();\r\n }\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n setLogger(logger) {\r\n this.controller.setLogger(logger);\r\n }\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n setActiveAccount(account) {\r\n this.controller.setActiveAccount(account);\r\n }\r\n /**\r\n * Gets the currently active account\r\n */\r\n getActiveAccount() {\r\n return this.controller.getActiveAccount();\r\n }\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n initializeWrapperLibrary(sku, version) {\r\n return this.controller.initializeWrapperLibrary(sku, version);\r\n }\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n setNavigationClient(navigationClient) {\r\n this.controller.setNavigationClient(navigationClient);\r\n }\r\n /**\r\n * Returns the configuration object\r\n * @internal\r\n */\r\n getConfiguration() {\r\n return this.controller.getConfiguration();\r\n }\r\n /**\r\n * Hydrates cache with the tokens and account in the AuthenticationResult object\r\n * @param result\r\n * @param request - The request object that was used to obtain the AuthenticationResult\r\n * @returns\r\n */\r\n async hydrateCache(result, request) {\r\n return this.controller.hydrateCache(result, request);\r\n }\r\n /**\r\n * Clears tokens and account from the browser cache.\r\n * @param logoutRequest\r\n */\r\n clearCache(logoutRequest) {\r\n return this.controller.clearCache(logoutRequest);\r\n }\r\n}\r\n/**\r\n * creates NestedAppAuthController and passes it to the PublicClientApplication,\r\n * falls back to StandardController if NestedAppAuthController is not available\r\n *\r\n * @param configuration\r\n * @returns IPublicClientApplication\r\n *\r\n */\r\nasync function createNestablePublicClientApplication(configuration) {\r\n const nestedAppAuth = new NestedAppOperatingContext(configuration);\r\n await nestedAppAuth.initialize();\r\n if (nestedAppAuth.isAvailable()) {\r\n const controller = new NestedAppAuthController(nestedAppAuth);\r\n const nestablePCA = new PublicClientApplication(configuration, controller);\r\n await nestablePCA.initialize();\r\n return nestablePCA;\r\n }\r\n return createStandardPublicClientApplication(configuration);\r\n}\r\n/**\r\n * creates PublicClientApplication using StandardController\r\n *\r\n * @param configuration\r\n * @returns IPublicClientApplication\r\n *\r\n */\r\nasync function createStandardPublicClientApplication(configuration) {\r\n const pca = new PublicClientApplication(configuration);\r\n await pca.initialize();\r\n return pca;\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * UnknownOperatingContextController class\r\n *\r\n * - Until initialize method is called, this controller is the default\r\n * - AFter initialize method is called, this controller will be swapped out for the appropriate controller\r\n * if the operating context can be determined; otherwise this controller will continued be used\r\n *\r\n * - Why do we have this? We don't want to dynamically import (download) all of the code in StandardController if we don't need to.\r\n *\r\n * - Only includes implementation for getAccounts and handleRedirectPromise\r\n * - All other methods are will throw initialization error (because either initialize method or the factory method were not used)\r\n * - This controller is necessary for React Native wrapper, server side rendering and any other scenario where we don't have a DOM\r\n *\r\n */\r\nclass UnknownOperatingContextController {\r\n constructor(operatingContext) {\r\n // Flag representing whether or not the initialize API has been called and completed\r\n this.initialized = false;\r\n this.operatingContext = operatingContext;\r\n this.isBrowserEnvironment =\r\n this.operatingContext.isBrowserEnvironment();\r\n this.config = operatingContext.getConfig();\r\n this.logger = operatingContext.getLogger();\r\n // Initialize performance client\r\n this.performanceClient = this.config.telemetry.client;\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment\r\n ? new CryptoOps(this.logger, this.performanceClient)\r\n : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment\r\n ? new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger, this.performanceClient, undefined)\r\n : DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger, this.performanceClient);\r\n }\r\n getBrowserStorage() {\r\n return this.browserStorage;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getAccount(accountFilter) {\r\n return null;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getAccountByHomeId(homeAccountId) {\r\n return null;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getAccountByLocalId(localAccountId) {\r\n return null;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getAccountByUsername(username) {\r\n return null;\r\n }\r\n getAllAccounts() {\r\n return [];\r\n }\r\n initialize() {\r\n this.initialized = true;\r\n return Promise.resolve();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n acquireTokenPopup(request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n acquireTokenRedirect(request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return Promise.resolve();\r\n }\r\n acquireTokenSilent(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n silentRequest) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n acquireTokenByCode(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n acquireTokenNative(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n request, \r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n apiId, \r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n accountId) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n acquireTokenByRefreshToken(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n commonRequest, \r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n silentRequest) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n addEventCallback(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n callback, \r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n eventTypes) {\r\n return null;\r\n }\r\n removeEventCallback(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n callbackId) { }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n addPerformanceCallback(callback) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return \"\";\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n removePerformanceCallback(callbackId) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return true;\r\n }\r\n enableAccountStorageEvents() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n disableAccountStorageEvents() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n handleRedirectPromise(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n hash) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n return Promise.resolve(null);\r\n }\r\n loginPopup(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n loginRedirect(request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n logout(logoutRequest) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n logoutRedirect(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n logoutRequest) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n logoutPopup(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n logoutRequest) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n ssoSilent(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n getTokenCache() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n getLogger() {\r\n return this.logger;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setLogger(logger) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setActiveAccount(account) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n getActiveAccount() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return null;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n initializeWrapperLibrary(sku, version) {\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setNavigationClient(navigationClient) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n getConfiguration() {\r\n return this.config;\r\n }\r\n isBrowserEnv() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return true;\r\n }\r\n getBrowserCrypto() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n getPerformanceClient() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n getRedirectResponse() {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n return {};\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n async clearCache(logoutRequest) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n async hydrateCache(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n result, \r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n request) {\r\n blockAPICallsBeforeInitialize(this.initialized);\r\n blockNonBrowserEnvironment();\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass UnknownOperatingContext extends BaseOperatingContext {\r\n /**\r\n * Returns the unique identifier for this operating context\r\n * @returns string\r\n */\r\n getId() {\r\n return UnknownOperatingContext.ID;\r\n }\r\n /**\r\n * Return the module name. Intended for use with import() to enable dynamic import\r\n * of the implementation associated with this operating context\r\n * @returns\r\n */\r\n getModuleName() {\r\n return UnknownOperatingContext.MODULE_NAME;\r\n }\r\n /**\r\n * Checks whether the operating context is available.\r\n * Confirms that the code is running a browser rather. This is required.\r\n * @returns Promise<boolean> indicating whether this operating context is currently available.\r\n */\r\n async initialize() {\r\n /**\r\n * This operating context is in use when we have not checked for what the operating context is.\r\n * The context is unknown until we check it.\r\n */\r\n return true;\r\n }\r\n}\r\n/*\r\n * TODO: Once we have determine the bundling code return here to specify the name of the bundle\r\n * containing the implementation for this operating context\r\n */\r\nUnknownOperatingContext.MODULE_NAME = \"\";\r\n/**\r\n * Unique identifier for the operating context\r\n */\r\nUnknownOperatingContext.ID = \"UnknownOperatingContext\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * PublicClientNext is an early look at the planned implementation of PublicClientApplication in the next major version of MSAL.js.\r\n * It contains support for multiple API implementations based on the runtime environment that it is running in.\r\n *\r\n * The goals of these changes are to provide a clean separation of behavior between different operating contexts (Nested App Auth, Platform Brokers, Plain old Browser, etc.)\r\n * while still providing a consistent API surface for developers.\r\n *\r\n * Please use PublicClientApplication for any prod/real-world scenarios.\r\n * Note: PublicClientNext is experimental and subject to breaking changes without following semver\r\n *\r\n */\r\nclass PublicClientNext {\r\n static async createPublicClientApplication(configuration) {\r\n const controller = await createController(configuration);\r\n let pca;\r\n if (controller !== null) {\r\n pca = new PublicClientNext(configuration, controller);\r\n }\r\n else {\r\n pca = new PublicClientNext(configuration);\r\n }\r\n return pca;\r\n }\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientNext used to instantiate the PublicClientNext object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n * @param IController Optional parameter to explictly set the controller. (Will be removed when we remove public constructor)\r\n */\r\n constructor(configuration, controller) {\r\n this.configuration = configuration;\r\n if (controller) {\r\n this.controller = controller;\r\n }\r\n else {\r\n const operatingContext = new UnknownOperatingContext(configuration);\r\n this.controller = new UnknownOperatingContextController(operatingContext);\r\n }\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n */\r\n async initialize() {\r\n if (this.controller instanceof UnknownOperatingContextController) {\r\n const result = await createController(this.configuration);\r\n if (result !== null) {\r\n this.controller = result;\r\n }\r\n return this.controller.initialize();\r\n }\r\n return Promise.resolve();\r\n }\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n async acquireTokenPopup(request) {\r\n return this.controller.acquireTokenPopup(request);\r\n }\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n acquireTokenRedirect(request) {\r\n return this.controller.acquireTokenRedirect(request);\r\n }\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthenticationResult} object\r\n */\r\n acquireTokenSilent(silentRequest) {\r\n return this.controller.acquireTokenSilent(silentRequest);\r\n }\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n acquireTokenByCode(request) {\r\n return this.controller.acquireTokenByCode(request);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n addEventCallback(callback, eventTypes) {\r\n return this.controller.addEventCallback(callback, eventTypes);\r\n }\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n removeEventCallback(callbackId) {\r\n return this.controller.removeEventCallback(callbackId);\r\n }\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n addPerformanceCallback(callback) {\r\n return this.controller.addPerformanceCallback(callback);\r\n }\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n removePerformanceCallback(callbackId) {\r\n return this.controller.removePerformanceCallback(callbackId);\r\n }\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n enableAccountStorageEvents() {\r\n this.controller.enableAccountStorageEvents();\r\n }\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n disableAccountStorageEvents() {\r\n this.controller.disableAccountStorageEvents();\r\n }\r\n /**\r\n * Returns the first account found in the cache that matches the account filter passed in.\r\n * @param accountFilter\r\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\r\n */\r\n getAccount(accountFilter) {\r\n return this.controller.getAccount(accountFilter);\r\n }\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n * @deprecated - Use getAccount instead\r\n */\r\n getAccountByHomeId(homeAccountId) {\r\n return this.controller.getAccountByHomeId(homeAccountId);\r\n }\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n * @deprecated - Use getAccount instead\r\n */\r\n getAccountByLocalId(localId) {\r\n return this.controller.getAccountByLocalId(localId);\r\n }\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param userName\r\n * @returns The account object stored in MSAL\r\n * @deprecated - Use getAccount instead\r\n */\r\n getAccountByUsername(userName) {\r\n return this.controller.getAccountByUsername(userName);\r\n }\r\n /**\r\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\r\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\r\n * @returns Array of AccountInfo objects in cache\r\n */\r\n getAllAccounts(accountFilter) {\r\n return this.controller.getAllAccounts(accountFilter);\r\n }\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n handleRedirectPromise(hash) {\r\n return this.controller.handleRedirectPromise(hash);\r\n }\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n loginPopup(request) {\r\n return this.controller.loginPopup(request);\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n loginRedirect(request) {\r\n return this.controller.loginRedirect(request);\r\n }\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n logout(logoutRequest) {\r\n return this.controller.logout(logoutRequest);\r\n }\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n logoutRedirect(logoutRequest) {\r\n return this.controller.logoutRedirect(logoutRequest);\r\n }\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n logoutPopup(logoutRequest) {\r\n return this.controller.logoutPopup(logoutRequest);\r\n }\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ssoSilent(request) {\r\n return this.controller.ssoSilent(request);\r\n }\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n getTokenCache() {\r\n return this.controller.getTokenCache();\r\n }\r\n /**\r\n * Returns the logger instance\r\n */\r\n getLogger() {\r\n return this.controller.getLogger();\r\n }\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n setLogger(logger) {\r\n this.controller.setLogger(logger);\r\n }\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n setActiveAccount(account) {\r\n this.controller.setActiveAccount(account);\r\n }\r\n /**\r\n * Gets the currently active account\r\n */\r\n getActiveAccount() {\r\n return this.controller.getActiveAccount();\r\n }\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n initializeWrapperLibrary(sku, version) {\r\n return this.controller.initializeWrapperLibrary(sku, version);\r\n }\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n setNavigationClient(navigationClient) {\r\n this.controller.setNavigationClient(navigationClient);\r\n }\r\n /**\r\n * Returns the configuration object\r\n * @internal\r\n */\r\n getConfiguration() {\r\n return this.controller.getConfiguration();\r\n }\r\n /**\r\n * Hydrates cache with the tokens and account in the AuthenticationResult object\r\n * @param result\r\n * @param request - The request object that was used to obtain the AuthenticationResult\r\n * @returns\r\n */\r\n async hydrateCache(result, request) {\r\n return this.controller.hydrateCache(result, request);\r\n }\r\n /**\r\n * Clears tokens and account from the browser cache.\r\n * @param logoutRequest\r\n */\r\n clearCache(logoutRequest) {\r\n return this.controller.clearCache(logoutRequest);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst stubbedPublicClientApplication = {\r\n initialize: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n acquireTokenPopup: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n acquireTokenRedirect: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n acquireTokenSilent: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n acquireTokenByCode: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n getAllAccounts: () => {\r\n return [];\r\n },\r\n getAccount: () => {\r\n return null;\r\n },\r\n getAccountByHomeId: () => {\r\n return null;\r\n },\r\n getAccountByUsername: () => {\r\n return null;\r\n },\r\n getAccountByLocalId: () => {\r\n return null;\r\n },\r\n handleRedirectPromise: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n loginPopup: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n loginRedirect: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n logout: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n logoutRedirect: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n logoutPopup: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n ssoSilent: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n addEventCallback: () => {\r\n return null;\r\n },\r\n removeEventCallback: () => {\r\n return;\r\n },\r\n addPerformanceCallback: () => {\r\n return \"\";\r\n },\r\n removePerformanceCallback: () => {\r\n return false;\r\n },\r\n enableAccountStorageEvents: () => {\r\n return;\r\n },\r\n disableAccountStorageEvents: () => {\r\n return;\r\n },\r\n getTokenCache: () => {\r\n throw createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled);\r\n },\r\n getLogger: () => {\r\n throw createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled);\r\n },\r\n setLogger: () => {\r\n return;\r\n },\r\n setActiveAccount: () => {\r\n return;\r\n },\r\n getActiveAccount: () => {\r\n return null;\r\n },\r\n initializeWrapperLibrary: () => {\r\n return;\r\n },\r\n setNavigationClient: () => {\r\n return;\r\n },\r\n getConfiguration: () => {\r\n throw createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled);\r\n },\r\n hydrateCache: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n clearCache: () => {\r\n return Promise.reject(createBrowserConfigurationAuthError(stubbedPublicClientApplicationCalled));\r\n },\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass EventMessageUtils {\r\n /**\r\n * Gets interaction status from event message\r\n * @param message\r\n * @param currentStatus\r\n */\r\n static getInteractionStatusFromEvent(message, currentStatus) {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_START:\r\n return InteractionStatus.Login;\r\n case EventType.SSO_SILENT_START:\r\n return InteractionStatus.SsoSilent;\r\n case EventType.ACQUIRE_TOKEN_START:\r\n if (message.interactionType === exports.InteractionType.Redirect ||\r\n message.interactionType === exports.InteractionType.Popup) {\r\n return InteractionStatus.AcquireToken;\r\n }\r\n break;\r\n case EventType.HANDLE_REDIRECT_START:\r\n return InteractionStatus.HandleRedirect;\r\n case EventType.LOGOUT_START:\r\n return InteractionStatus.Logout;\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.SSO_SILENT_FAILURE:\r\n if (currentStatus &&\r\n currentStatus !== InteractionStatus.SsoSilent) {\r\n // Prevent this event from clearing any status other than ssoSilent\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGOUT_END:\r\n if (currentStatus &&\r\n currentStatus !== InteractionStatus.Logout) {\r\n // Prevent this event from clearing any status other than logout\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.HANDLE_REDIRECT_END:\r\n if (currentStatus &&\r\n currentStatus !== InteractionStatus.HandleRedirect) {\r\n // Prevent this event from clearing any status other than handleRedirect\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n case EventType.RESTORE_FROM_BFCACHE:\r\n if (message.interactionType === exports.InteractionType.Redirect ||\r\n message.interactionType === exports.InteractionType.Popup) {\r\n if (currentStatus &&\r\n currentStatus !== InteractionStatus.Login &&\r\n currentStatus !== InteractionStatus.AcquireToken) {\r\n // Prevent this event from clearing any status other than login or acquireToken\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n }\r\n break;\r\n }\r\n return null;\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass SignedHttpRequest {\r\n constructor(shrParameters, shrOptions) {\r\n const loggerOptions = (shrOptions && shrOptions.loggerOptions) || {};\r\n this.logger = new Logger(loggerOptions, name, version);\r\n this.cryptoOps = new CryptoOps(this.logger);\r\n this.popTokenGenerator = new PopTokenGenerator(this.cryptoOps);\r\n this.shrParameters = shrParameters;\r\n }\r\n /**\r\n * Generates and caches a keypair for the given request options.\r\n * @returns Public key digest, which should be sent to the token issuer.\r\n */\r\n async generatePublicKeyThumbprint() {\r\n const { kid } = await this.popTokenGenerator.generateKid(this.shrParameters);\r\n return kid;\r\n }\r\n /**\r\n * Generates a signed http request for the given payload with the given key.\r\n * @param payload Payload to sign (e.g. access token)\r\n * @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)\r\n * @param claims Additional claims to include/override in the signed JWT\r\n * @returns Pop token signed with the corresponding private key\r\n */\r\n async signRequest(payload, publicKeyThumbprint, claims) {\r\n return this.popTokenGenerator.signPayload(payload, publicKeyThumbprint, this.shrParameters, claims);\r\n }\r\n /**\r\n * Removes cached keys from browser for given public key thumbprint\r\n * @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)\r\n * @returns If keys are properly deleted\r\n */\r\n async removeKeys(publicKeyThumbprint) {\r\n return this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Returns browser performance measurement module if session flag is enabled. Returns undefined otherwise.\r\n */\r\nfunction getPerfMeasurementModule() {\r\n let sessionStorage;\r\n try {\r\n sessionStorage = window[BrowserCacheLocation.SessionStorage];\r\n const perfEnabled = sessionStorage?.getItem(BROWSER_PERF_ENABLED_KEY);\r\n if (Number(perfEnabled) === 1) {\r\n return Promise.resolve().then(function () { return BrowserPerformanceMeasurement$1; });\r\n }\r\n // Mute errors if it's a non-browser environment or cookies are blocked.\r\n }\r\n catch (e) { }\r\n return undefined;\r\n}\r\n/**\r\n * Returns boolean, indicating whether browser supports window.performance.now() function.\r\n */\r\nfunction supportsBrowserPerformanceNow() {\r\n return (typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.now === \"function\");\r\n}\r\n/**\r\n * Returns event duration in milliseconds using window performance API if available. Returns undefined otherwise.\r\n * @param startTime {DOMHighResTimeStamp | undefined}\r\n * @returns {number | undefined}\r\n */\r\nfunction getPerfDurationMs(startTime) {\r\n if (!startTime || !supportsBrowserPerformanceNow()) {\r\n return undefined;\r\n }\r\n return Math.round(window.performance.now() - startTime);\r\n}\r\nclass BrowserPerformanceClient extends PerformanceClient {\r\n constructor(configuration, intFields, abbreviations) {\r\n super(configuration.auth.clientId, configuration.auth.authority || `${Constants.DEFAULT_AUTHORITY}`, new Logger(configuration.system?.loggerOptions || {}, name, version), name, version, configuration.telemetry?.application || {\r\n appName: \"\",\r\n appVersion: \"\",\r\n }, intFields, abbreviations);\r\n }\r\n generateId() {\r\n return createNewGuid();\r\n }\r\n getPageVisibility() {\r\n return document.visibilityState?.toString() || null;\r\n }\r\n deleteIncompleteSubMeasurements(inProgressEvent) {\r\n void getPerfMeasurementModule()?.then((module) => {\r\n const rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);\r\n const isRootEvent = rootEvent &&\r\n rootEvent.eventId === inProgressEvent.event.eventId;\r\n const incompleteMeasurements = [];\r\n if (isRootEvent && rootEvent?.incompleteSubMeasurements) {\r\n rootEvent.incompleteSubMeasurements.forEach((subMeasurement) => {\r\n incompleteMeasurements.push({ ...subMeasurement });\r\n });\r\n }\r\n // Clean up remaining marks for incomplete sub-measurements\r\n module.BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);\r\n });\r\n }\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n * Also captures browser page visibilityState.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}\r\n */\r\n startMeasurement(measureName, correlationId) {\r\n // Capture page visibilityState and then invoke start/end measurement\r\n const startPageVisibility = this.getPageVisibility();\r\n const inProgressEvent = super.startMeasurement(measureName, correlationId);\r\n const startTime = supportsBrowserPerformanceNow()\r\n ? window.performance.now()\r\n : undefined;\r\n const browserMeasurement = getPerfMeasurementModule()?.then((module) => {\r\n return new module.BrowserPerformanceMeasurement(measureName, inProgressEvent.event.correlationId);\r\n });\r\n void browserMeasurement?.then((measurement) => measurement.startMeasurement());\r\n return {\r\n ...inProgressEvent,\r\n end: (event, error) => {\r\n const res = inProgressEvent.end({\r\n ...event,\r\n startPageVisibility,\r\n endPageVisibility: this.getPageVisibility(),\r\n durationMs: getPerfDurationMs(startTime),\r\n }, error);\r\n void browserMeasurement?.then((measurement) => measurement.endMeasurement());\r\n this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n return res;\r\n },\r\n discard: () => {\r\n inProgressEvent.discard();\r\n void browserMeasurement?.then((measurement) => measurement.flushMeasurement());\r\n this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n },\r\n };\r\n }\r\n /**\r\n * Adds pre-queue time to preQueueTimeByCorrelationId map.\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @returns\r\n */\r\n setPreQueueTime(eventName, correlationId) {\r\n if (!supportsBrowserPerformanceNow()) {\r\n this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${eventName}`);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to set telemetry queue time`);\r\n return;\r\n }\r\n const preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n /**\r\n * Manually complete queue measurement if there is an incomplete pre-queue event.\r\n * Incomplete pre-queue events are instrumentation bugs that should be fixed.\r\n */\r\n if (preQueueEvent) {\r\n this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${preQueueEvent.name} found`, correlationId);\r\n this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);\r\n }\r\n this.preQueueTimeByCorrelationId.set(correlationId, {\r\n name: eventName,\r\n time: window.performance.now(),\r\n });\r\n }\r\n /**\r\n * Calculates and adds queue time measurement for given performance event.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n addQueueMeasurement(eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!supportsBrowserPerformanceNow()) {\r\n this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${eventName}`);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to add queue measurement`);\r\n return;\r\n }\r\n const preQueueTime = super.getPreQueueTime(eventName, correlationId);\r\n if (!preQueueTime) {\r\n return;\r\n }\r\n const currentTime = window.performance.now();\r\n const resQueueTime = queueTime || super.calculateQueuedTime(preQueueTime, currentTime);\r\n return super.addQueueMeasurement(eventName, correlationId, resQueueTime, manuallyCompleted);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass BrowserPerformanceMeasurement {\r\n constructor(name, correlationId) {\r\n this.correlationId = correlationId;\r\n this.measureName = BrowserPerformanceMeasurement.makeMeasureName(name, correlationId);\r\n this.startMark = BrowserPerformanceMeasurement.makeStartMark(name, correlationId);\r\n this.endMark = BrowserPerformanceMeasurement.makeEndMark(name, correlationId);\r\n }\r\n static makeMeasureName(name, correlationId) {\r\n return `msal.measure.${name}.${correlationId}`;\r\n }\r\n static makeStartMark(name, correlationId) {\r\n return `msal.start.${name}.${correlationId}`;\r\n }\r\n static makeEndMark(name, correlationId) {\r\n return `msal.end.${name}.${correlationId}`;\r\n }\r\n static supportsBrowserPerformance() {\r\n return (typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.mark === \"function\" &&\r\n typeof window.performance.measure === \"function\" &&\r\n typeof window.performance.clearMarks === \"function\" &&\r\n typeof window.performance.clearMeasures === \"function\" &&\r\n typeof window.performance.getEntriesByName === \"function\");\r\n }\r\n /**\r\n * Flush browser marks and measurements.\r\n * @param {string} correlationId\r\n * @param {SubMeasurement} measurements\r\n */\r\n static flushMeasurements(correlationId, measurements) {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n measurements.forEach((measurement) => {\r\n const measureName = BrowserPerformanceMeasurement.makeMeasureName(measurement.name, correlationId);\r\n const entriesForMeasurement = window.performance.getEntriesByName(measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n window.performance.clearMeasures(measureName);\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeStartMark(measureName, correlationId));\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeEndMark(measureName, correlationId));\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n }\r\n startMeasurement() {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.startMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n }\r\n endMeasurement() {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.endMark);\r\n window.performance.measure(this.measureName, this.startMark, this.endMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n }\r\n flushMeasurement() {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n const entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n const durationMs = entriesForMeasurement[0].duration;\r\n window.performance.clearMeasures(this.measureName);\r\n window.performance.clearMarks(this.startMark);\r\n window.performance.clearMarks(this.endMark);\r\n return durationMs;\r\n }\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n return null;\r\n }\r\n}\n\nvar BrowserPerformanceMeasurement$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BrowserPerformanceMeasurement: BrowserPerformanceMeasurement\n});\n\nexports.AccountEntity = AccountEntity;\nexports.ApiId = ApiId;\nexports.AuthError = AuthError;\nexports.AuthErrorCodes = AuthErrorCodes;\nexports.AuthErrorMessage = AuthErrorMessage;\nexports.AuthenticationHeaderParser = AuthenticationHeaderParser;\nexports.AuthenticationScheme = AuthenticationScheme;\nexports.AzureCloudInstance = AzureCloudInstance;\nexports.BrowserAuthError = BrowserAuthError;\nexports.BrowserAuthErrorCodes = BrowserAuthErrorCodes;\nexports.BrowserAuthErrorMessage = BrowserAuthErrorMessage;\nexports.BrowserCacheLocation = BrowserCacheLocation;\nexports.BrowserConfigurationAuthError = BrowserConfigurationAuthError;\nexports.BrowserConfigurationAuthErrorCodes = BrowserConfigurationAuthErrorCodes;\nexports.BrowserConfigurationAuthErrorMessage = BrowserConfigurationAuthErrorMessage;\nexports.BrowserPerformanceClient = BrowserPerformanceClient;\nexports.BrowserPerformanceMeasurement = BrowserPerformanceMeasurement;\nexports.BrowserUtils = BrowserUtils;\nexports.CacheLookupPolicy = CacheLookupPolicy;\nexports.ClientAuthError = ClientAuthError;\nexports.ClientAuthErrorCodes = ClientAuthErrorCodes;\nexports.ClientAuthErrorMessage = ClientAuthErrorMessage;\nexports.ClientConfigurationError = ClientConfigurationError;\nexports.ClientConfigurationErrorCodes = ClientConfigurationErrorCodes;\nexports.ClientConfigurationErrorMessage = ClientConfigurationErrorMessage;\nexports.DEFAULT_IFRAME_TIMEOUT_MS = DEFAULT_IFRAME_TIMEOUT_MS;\nexports.EventHandler = EventHandler;\nexports.EventMessageUtils = EventMessageUtils;\nexports.EventType = EventType;\nexports.InteractionRequiredAuthError = InteractionRequiredAuthError;\nexports.InteractionRequiredAuthErrorCodes = InteractionRequiredAuthErrorCodes;\nexports.InteractionRequiredAuthErrorMessage = InteractionRequiredAuthErrorMessage;\nexports.InteractionStatus = InteractionStatus;\nexports.JsonWebTokenTypes = JsonWebTokenTypes;\nexports.LocalStorage = LocalStorage;\nexports.Logger = Logger;\nexports.MemoryStorage = MemoryStorage;\nexports.NavigationClient = NavigationClient;\nexports.OIDC_DEFAULT_SCOPES = OIDC_DEFAULT_SCOPES;\nexports.PerformanceEvents = PerformanceEvents;\nexports.PromptValue = PromptValue;\nexports.ProtocolMode = ProtocolMode;\nexports.PublicClientApplication = PublicClientApplication;\nexports.PublicClientNext = PublicClientNext;\nexports.ServerError = ServerError;\nexports.ServerResponseType = ServerResponseType;\nexports.SessionStorage = SessionStorage;\nexports.SignedHttpRequest = SignedHttpRequest;\nexports.StringUtils = StringUtils;\nexports.StubPerformanceClient = StubPerformanceClient;\nexports.UrlString = UrlString;\nexports.WrapperSKU = WrapperSKU;\nexports.createNestablePublicClientApplication = createNestablePublicClientApplication;\nexports.createStandardPublicClientApplication = createStandardPublicClientApplication;\nexports.stubbedPublicClientApplication = stubbedPublicClientApplication;\nexports.version = version;\n//# sourceMappingURL=msal-browser.cjs.map\n","// Axios v1.3.5 Copyright (c) 2023 Matt Zabriskie and contributors\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nvar utils = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nvar platform = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nvar cookies = platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nvar isURLSameOrigin = platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n};\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nconst VERSION = \"1.3.5\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","'use strict';\nrequire('../modules/es.symbol');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.error.cause');\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.aggregate-error');\nrequire('../modules/es.aggregate-error.cause');\nrequire('../modules/es.array.at');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.find-last');\nrequire('../modules/es.array.find-last-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.push');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.to-reversed');\nrequire('../modules/es.array.to-sorted');\nrequire('../modules/es.array.to-spliced');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array.unshift');\nrequire('../modules/es.array.with');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.array-buffer.detached');\nrequire('../modules/es.array-buffer.transfer');\nrequire('../modules/es.array-buffer.transfer-to-fixed-length');\nrequire('../modules/es.date.get-year');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.set-year');\nrequire('../modules/es.date.to-gmt-string');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.escape');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.function.name');\nrequire('../modules/es.global-this');\nrequire('../modules/es.iterator.constructor');\nrequire('../modules/es.iterator.drop');\nrequire('../modules/es.iterator.every');\nrequire('../modules/es.iterator.filter');\nrequire('../modules/es.iterator.find');\nrequire('../modules/es.iterator.flat-map');\nrequire('../modules/es.iterator.for-each');\nrequire('../modules/es.iterator.from');\nrequire('../modules/es.iterator.map');\nrequire('../modules/es.iterator.reduce');\nrequire('../modules/es.iterator.some');\nrequire('../modules/es.iterator.take');\nrequire('../modules/es.iterator.to-array');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.map');\nrequire('../modules/es.map.group-by');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-exponential');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.group-by');\nrequire('../modules/es.object.has-own');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.proto');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.values');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.all-settled');\nrequire('../modules/es.promise.any');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.promise.try');\nrequire('../modules/es.promise.with-resolvers');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\nrequire('../modules/es.reflect.to-string-tag');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.dot-all');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.sticky');\nrequire('../modules/es.regexp.test');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.set');\nrequire('../modules/es.set.difference.v2');\nrequire('../modules/es.set.intersection.v2');\nrequire('../modules/es.set.is-disjoint-from.v2');\nrequire('../modules/es.set.is-subset-of.v2');\nrequire('../modules/es.set.is-superset-of.v2');\nrequire('../modules/es.set.symmetric-difference.v2');\nrequire('../modules/es.set.union.v2');\nrequire('../modules/es.string.at-alternative');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.is-well-formed');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.replace-all');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.substr');\nrequire('../modules/es.string.to-well-formed');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.at');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.find-last');\nrequire('../modules/es.typed-array.find-last-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-reversed');\nrequire('../modules/es.typed-array.to-sorted');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.typed-array.with');\nrequire('../modules/es.unescape');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-set');\nrequire('../modules/esnext.aggregate-error');\nrequire('../modules/esnext.suppressed-error.constructor');\nrequire('../modules/esnext.array.from-async');\nrequire('../modules/esnext.array.at');\nrequire('../modules/esnext.array.filter-out');\nrequire('../modules/esnext.array.filter-reject');\nrequire('../modules/esnext.array.find-last');\nrequire('../modules/esnext.array.find-last-index');\nrequire('../modules/esnext.array.group');\nrequire('../modules/esnext.array.group-by');\nrequire('../modules/esnext.array.group-by-to-map');\nrequire('../modules/esnext.array.group-to-map');\nrequire('../modules/esnext.array.is-template-object');\nrequire('../modules/esnext.array.last-index');\nrequire('../modules/esnext.array.last-item');\nrequire('../modules/esnext.array.to-reversed');\nrequire('../modules/esnext.array.to-sorted');\nrequire('../modules/esnext.array.to-spliced');\nrequire('../modules/esnext.array.unique-by');\nrequire('../modules/esnext.array.with');\nrequire('../modules/esnext.array-buffer.detached');\nrequire('../modules/esnext.array-buffer.transfer');\nrequire('../modules/esnext.array-buffer.transfer-to-fixed-length');\nrequire('../modules/esnext.async-disposable-stack.constructor');\nrequire('../modules/esnext.async-iterator.constructor');\nrequire('../modules/esnext.async-iterator.as-indexed-pairs');\nrequire('../modules/esnext.async-iterator.async-dispose');\nrequire('../modules/esnext.async-iterator.drop');\nrequire('../modules/esnext.async-iterator.every');\nrequire('../modules/esnext.async-iterator.filter');\nrequire('../modules/esnext.async-iterator.find');\nrequire('../modules/esnext.async-iterator.flat-map');\nrequire('../modules/esnext.async-iterator.for-each');\nrequire('../modules/esnext.async-iterator.from');\nrequire('../modules/esnext.async-iterator.indexed');\nrequire('../modules/esnext.async-iterator.map');\nrequire('../modules/esnext.async-iterator.reduce');\nrequire('../modules/esnext.async-iterator.some');\nrequire('../modules/esnext.async-iterator.take');\nrequire('../modules/esnext.async-iterator.to-array');\nrequire('../modules/esnext.bigint.range');\nrequire('../modules/esnext.composite-key');\nrequire('../modules/esnext.composite-symbol');\nrequire('../modules/esnext.data-view.get-float16');\nrequire('../modules/esnext.data-view.get-uint8-clamped');\nrequire('../modules/esnext.data-view.set-float16');\nrequire('../modules/esnext.data-view.set-uint8-clamped');\nrequire('../modules/esnext.disposable-stack.constructor');\nrequire('../modules/esnext.error.is-error');\nrequire('../modules/esnext.function.demethodize');\nrequire('../modules/esnext.function.is-callable');\nrequire('../modules/esnext.function.is-constructor');\nrequire('../modules/esnext.function.metadata');\nrequire('../modules/esnext.function.un-this');\nrequire('../modules/esnext.global-this');\nrequire('../modules/esnext.iterator.constructor');\nrequire('../modules/esnext.iterator.as-indexed-pairs');\nrequire('../modules/esnext.iterator.concat');\nrequire('../modules/esnext.iterator.dispose');\nrequire('../modules/esnext.iterator.drop');\nrequire('../modules/esnext.iterator.every');\nrequire('../modules/esnext.iterator.filter');\nrequire('../modules/esnext.iterator.find');\nrequire('../modules/esnext.iterator.flat-map');\nrequire('../modules/esnext.iterator.for-each');\nrequire('../modules/esnext.iterator.from');\nrequire('../modules/esnext.iterator.indexed');\nrequire('../modules/esnext.iterator.map');\nrequire('../modules/esnext.iterator.range');\nrequire('../modules/esnext.iterator.reduce');\nrequire('../modules/esnext.iterator.some');\nrequire('../modules/esnext.iterator.take');\nrequire('../modules/esnext.iterator.to-array');\nrequire('../modules/esnext.iterator.to-async');\nrequire('../modules/esnext.json.is-raw-json');\nrequire('../modules/esnext.json.parse');\nrequire('../modules/esnext.json.raw-json');\nrequire('../modules/esnext.map.delete-all');\nrequire('../modules/esnext.map.emplace');\nrequire('../modules/esnext.map.every');\nrequire('../modules/esnext.map.filter');\nrequire('../modules/esnext.map.find');\nrequire('../modules/esnext.map.find-key');\nrequire('../modules/esnext.map.from');\nrequire('../modules/esnext.map.get-or-insert');\nrequire('../modules/esnext.map.get-or-insert-computed');\nrequire('../modules/esnext.map.group-by');\nrequire('../modules/esnext.map.includes');\nrequire('../modules/esnext.map.key-by');\nrequire('../modules/esnext.map.key-of');\nrequire('../modules/esnext.map.map-keys');\nrequire('../modules/esnext.map.map-values');\nrequire('../modules/esnext.map.merge');\nrequire('../modules/esnext.map.of');\nrequire('../modules/esnext.map.reduce');\nrequire('../modules/esnext.map.some');\nrequire('../modules/esnext.map.update');\nrequire('../modules/esnext.map.update-or-insert');\nrequire('../modules/esnext.map.upsert');\nrequire('../modules/esnext.math.clamp');\nrequire('../modules/esnext.math.deg-per-rad');\nrequire('../modules/esnext.math.degrees');\nrequire('../modules/esnext.math.fscale');\nrequire('../modules/esnext.math.f16round');\nrequire('../modules/esnext.math.iaddh');\nrequire('../modules/esnext.math.imulh');\nrequire('../modules/esnext.math.isubh');\nrequire('../modules/esnext.math.rad-per-deg');\nrequire('../modules/esnext.math.radians');\nrequire('../modules/esnext.math.scale');\nrequire('../modules/esnext.math.seeded-prng');\nrequire('../modules/esnext.math.signbit');\nrequire('../modules/esnext.math.sum-precise');\nrequire('../modules/esnext.math.umulh');\nrequire('../modules/esnext.number.from-string');\nrequire('../modules/esnext.number.range');\nrequire('../modules/esnext.object.has-own');\nrequire('../modules/esnext.object.iterate-entries');\nrequire('../modules/esnext.object.iterate-keys');\nrequire('../modules/esnext.object.iterate-values');\nrequire('../modules/esnext.object.group-by');\nrequire('../modules/esnext.observable');\nrequire('../modules/esnext.promise.all-settled');\nrequire('../modules/esnext.promise.any');\nrequire('../modules/esnext.promise.try');\nrequire('../modules/esnext.promise.with-resolvers');\nrequire('../modules/esnext.reflect.define-metadata');\nrequire('../modules/esnext.reflect.delete-metadata');\nrequire('../modules/esnext.reflect.get-metadata');\nrequire('../modules/esnext.reflect.get-metadata-keys');\nrequire('../modules/esnext.reflect.get-own-metadata');\nrequire('../modules/esnext.reflect.get-own-metadata-keys');\nrequire('../modules/esnext.reflect.has-metadata');\nrequire('../modules/esnext.reflect.has-own-metadata');\nrequire('../modules/esnext.reflect.metadata');\nrequire('../modules/esnext.regexp.escape');\nrequire('../modules/esnext.set.add-all');\nrequire('../modules/esnext.set.delete-all');\nrequire('../modules/esnext.set.difference.v2');\nrequire('../modules/esnext.set.difference');\nrequire('../modules/esnext.set.every');\nrequire('../modules/esnext.set.filter');\nrequire('../modules/esnext.set.find');\nrequire('../modules/esnext.set.from');\nrequire('../modules/esnext.set.intersection.v2');\nrequire('../modules/esnext.set.intersection');\nrequire('../modules/esnext.set.is-disjoint-from.v2');\nrequire('../modules/esnext.set.is-disjoint-from');\nrequire('../modules/esnext.set.is-subset-of.v2');\nrequire('../modules/esnext.set.is-subset-of');\nrequire('../modules/esnext.set.is-superset-of.v2');\nrequire('../modules/esnext.set.is-superset-of');\nrequire('../modules/esnext.set.join');\nrequire('../modules/esnext.set.map');\nrequire('../modules/esnext.set.of');\nrequire('../modules/esnext.set.reduce');\nrequire('../modules/esnext.set.some');\nrequire('../modules/esnext.set.symmetric-difference.v2');\nrequire('../modules/esnext.set.symmetric-difference');\nrequire('../modules/esnext.set.union.v2');\nrequire('../modules/esnext.set.union');\nrequire('../modules/esnext.string.at');\nrequire('../modules/esnext.string.cooked');\nrequire('../modules/esnext.string.code-points');\nrequire('../modules/esnext.string.dedent');\nrequire('../modules/esnext.string.is-well-formed');\nrequire('../modules/esnext.string.match-all');\nrequire('../modules/esnext.string.replace-all');\nrequire('../modules/esnext.string.to-well-formed');\nrequire('../modules/esnext.symbol.async-dispose');\nrequire('../modules/esnext.symbol.custom-matcher');\nrequire('../modules/esnext.symbol.dispose');\nrequire('../modules/esnext.symbol.is-registered-symbol');\nrequire('../modules/esnext.symbol.is-registered');\nrequire('../modules/esnext.symbol.is-well-known-symbol');\nrequire('../modules/esnext.symbol.is-well-known');\nrequire('../modules/esnext.symbol.matcher');\nrequire('../modules/esnext.symbol.metadata');\nrequire('../modules/esnext.symbol.metadata-key');\nrequire('../modules/esnext.symbol.observable');\nrequire('../modules/esnext.symbol.pattern-match');\nrequire('../modules/esnext.symbol.replace-all');\nrequire('../modules/esnext.typed-array.from-async');\nrequire('../modules/esnext.typed-array.at');\nrequire('../modules/esnext.typed-array.filter-out');\nrequire('../modules/esnext.typed-array.filter-reject');\nrequire('../modules/esnext.typed-array.find-last');\nrequire('../modules/esnext.typed-array.find-last-index');\nrequire('../modules/esnext.typed-array.group-by');\nrequire('../modules/esnext.typed-array.to-reversed');\nrequire('../modules/esnext.typed-array.to-sorted');\nrequire('../modules/esnext.typed-array.to-spliced');\nrequire('../modules/esnext.typed-array.unique-by');\nrequire('../modules/esnext.typed-array.with');\nrequire('../modules/esnext.uint8-array.from-base64');\nrequire('../modules/esnext.uint8-array.from-hex');\nrequire('../modules/esnext.uint8-array.set-from-base64');\nrequire('../modules/esnext.uint8-array.set-from-hex');\nrequire('../modules/esnext.uint8-array.to-base64');\nrequire('../modules/esnext.uint8-array.to-hex');\nrequire('../modules/esnext.weak-map.delete-all');\nrequire('../modules/esnext.weak-map.from');\nrequire('../modules/esnext.weak-map.of');\nrequire('../modules/esnext.weak-map.emplace');\nrequire('../modules/esnext.weak-map.get-or-insert');\nrequire('../modules/esnext.weak-map.get-or-insert-computed');\nrequire('../modules/esnext.weak-map.upsert');\nrequire('../modules/esnext.weak-set.add-all');\nrequire('../modules/esnext.weak-set.delete-all');\nrequire('../modules/esnext.weak-set.from');\nrequire('../modules/esnext.weak-set.of');\nrequire('../modules/web.atob');\nrequire('../modules/web.btoa');\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.self');\nrequire('../modules/web.structured-clone');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.can-parse');\nrequire('../modules/web.url.parse');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nrequire('../modules/web.url-search-params.delete');\nrequire('../modules/web.url-search-params.has');\nrequire('../modules/web.url-search-params.size');\n\nmodule.exports = require('../internals/path');\n","'use strict';\nmodule.exports = require('./full');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'DataView') return argument;\n throw new $TypeError('Argument is not a DataView');\n};\n","'use strict';\nvar has = require('../internals/map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n","'use strict';\nvar has = require('../internals/weak-map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar has = require('../internals/weak-set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakSetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar DISPOSE = wellKnownSymbol('dispose');\n\nvar push = uncurryThis([].push);\n\n// `GetDisposeMethod` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-getdisposemethod\nvar getDisposeMethod = function (V, hint) {\n if (hint === 'async-dispose') {\n var method = getMethod(V, ASYNC_DISPOSE);\n if (method !== undefined) return method;\n method = getMethod(V, DISPOSE);\n if (method === undefined) return method;\n return function () {\n var O = this;\n var Promise = getBuiltIn('Promise');\n return new Promise(function (resolve) {\n call(method, O);\n resolve(undefined);\n });\n };\n } return getMethod(V, DISPOSE);\n};\n\n// `CreateDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource\nvar createDisposableResource = function (V, hint, method) {\n if (arguments.length < 3 && !isNullOrUndefined(V)) {\n method = aCallable(getDisposeMethod(anObject(V), hint));\n }\n\n return method === undefined ? function () {\n return undefined;\n } : bind(method, V);\n};\n\n// `AddDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource\nmodule.exports = function (disposable, V, hint, method) {\n var resource;\n if (arguments.length < 4) {\n // When `V`` is either `null` or `undefined` and hint is `async-dispose`,\n // we record that the resource was evaluated to ensure we will still perform an `Await` when resources are later disposed.\n if (isNullOrUndefined(V) && hint === 'sync-dispose') return;\n resource = createDisposableResource(V, hint);\n } else {\n resource = createDisposableResource(undefined, hint, method);\n }\n\n push(disposable.stack, resource);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (argument === undefined || isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n if (classof(argument) === 'Uint8Array') return argument;\n throw new $TypeError('Argument is not an Uint8Array');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n try {\n // eslint-disable-next-line no-new -- thrower\n new DataView(O);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar fround = require('../internals/math-fround');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);\nvar getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);\nvar setInternalState = InternalStateModule.set;\nvar NativeArrayBuffer = globalThis[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = globalThis[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = globalThis.Array;\nvar RangeError = globalThis.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(fround(number), 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key, getInternalState) {\n defineBuiltInAccessor(Constructor[PROTOTYPE], key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return boolIsLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var pack = conversion(+value);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n type: ARRAY_BUFFER,\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) {\n this.byteLength = byteLength;\n this.detached = false;\n }\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferState = getInternalArrayBufferState(buffer);\n var bufferLength = bufferState.byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH);\n setInternalState(this, {\n type: DATA_VIEW,\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset,\n bytes: bufferState.bytes\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);\n addGetter($DataView, 'buffer', getInternalDataViewState);\n addGetter($DataView, 'byteLength', getInternalDataViewState);\n addGetter($DataView, 'byteOffset', getInternalDataViewState);\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new, sonarjs/inconsistent-function-call -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer);\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n\n copyConstructorProperties($ArrayBuffer, NativeArrayBuffer);\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getAsyncIterator = require('../internals/get-async-iterator');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar toArray = require('../internals/async-iterator-iteration').toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values'));\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n var O = toObject(asyncItems);\n if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);\n var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator;\n var A = isConstructor(C) ? new C() : [];\n var iterator = usingAsyncIterator\n ? getAsyncIterator(O, usingAsyncIterator)\n : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator)));\n resolve(toArray(iterator, mapfn, A));\n });\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar mapGet = MapHelpers.get;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\nmodule.exports = function groupToMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var map = new Map();\n var length = lengthOfArrayLike(self);\n var index = 0;\n var key, value;\n for (;length > index; index++) {\n value = self[index];\n key = boundFunction(value, index, O);\n if (mapHas(map, key)) push(mapGet(map, key), value);\n else mapSet(map, key, [value]);\n } return map;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar objectCreate = require('../internals/object-create');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar $Array = Array;\nvar push = uncurryThis([].push);\n\nmodule.exports = function ($this, callbackfn, that, specificConstructor) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var target = objectCreate(null);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var Constructor, key, value;\n for (;length > index; index++) {\n value = self[index];\n key = toPropertyKey(boundFunction(value, index, O));\n // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in target) push(target[key], value);\n else target[key] = [value];\n }\n // TODO: Remove this block from `core-js@4`\n if (specificConstructor) {\n Constructor = specificConstructor(O);\n if (Constructor !== $Array) {\n for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);\n }\n } return target;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE === 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var index = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return -1;\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n var length = array.length;\n\n if (length < 8) {\n // insertion sort\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n }\n } else {\n // merge sort\n var middle = floor(length / 2);\n var left = sort(arraySlice(array, 0, middle), comparefn);\n var right = sort(arraySlice(array, middle), comparefn);\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n }\n }\n\n return array;\n};\n\nmodule.exports = sort;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nmodule.exports = function uniqueBy(resolver) {\n var that = toObject(this);\n var length = lengthOfArrayLike(that);\n var result = [];\n var map = new Map();\n var resolverFunction = !isNullOrUndefined(resolver) ? aCallable(resolver) : function (value) {\n return value;\n };\n var index, item, key;\n for (index = 0; index < length; index++) {\n item = that[index];\n key = resolverFunction(item);\n if (!mapHas(map, key)) mapSet(map, key, item);\n }\n iterate(map, function (value) {\n push(result, value);\n });\n return result;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject) {\n var done = result.done;\n Promise.resolve(result.value).then(function (value) {\n resolve(createIterResultObject(value, done));\n }, reject);\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n return new Promise(function (resolve, reject) {\n var result = anObject(call(state.next, state.iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n },\n 'return': function () {\n var iterator = getInternalState(this).iterator;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(iterator, 'return');\n if ($return === undefined) return resolve(createIterResultObject(undefined, true));\n var result = anObject(call($return, iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, method, argument, reject) {\n try {\n var returnMethod = getMethod(iterator, 'return');\n if (returnMethod) {\n return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function () {\n method(argument);\n }, function (error) {\n reject(error);\n });\n }\n } catch (error2) {\n return reject(error2);\n } method(argument);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar perform = require('../internals/perform');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Promise = getBuiltIn('Promise');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper';\nvar WRAP_FOR_VALID_ASYNC_ITERATOR = 'WrapForValidAsyncIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {\n var IS_GENERATOR = !IS_ITERATOR;\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER);\n\n var getStateOrEarlyExit = function (that) {\n var stateCompletion = perform(function () {\n return getInternalState(that);\n });\n\n var stateError = stateCompletion.error;\n var state = stateCompletion.value;\n\n if (stateError || (IS_GENERATOR && state.done)) {\n return { exit: true, value: stateError ? Promise.reject(state) : Promise.resolve(createIterResultObject(undefined, true)) };\n } return { exit: false, value: state };\n };\n\n return defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var stateCompletion = getStateOrEarlyExit(this);\n var state = stateCompletion.value;\n if (stateCompletion.exit) return state;\n var handlerCompletion = perform(function () {\n return anObject(state.nextHandler(Promise));\n });\n var handlerError = handlerCompletion.error;\n var value = handlerCompletion.value;\n if (handlerError) state.done = true;\n return handlerError ? Promise.reject(value) : Promise.resolve(value);\n },\n 'return': function () {\n var stateCompletion = getStateOrEarlyExit(this);\n var state = stateCompletion.value;\n if (stateCompletion.exit) return state;\n state.done = true;\n var iterator = state.iterator;\n var returnMethod, result;\n var completion = perform(function () {\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n return getMethod(iterator, 'return');\n });\n returnMethod = result = completion.value;\n if (completion.error) return Promise.reject(result);\n if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));\n completion = perform(function () {\n return call(returnMethod, iterator);\n });\n result = completion.value;\n if (completion.error) return Promise.reject(result);\n return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {\n anObject(resolved);\n return createIterResultObject(undefined, true);\n });\n }\n });\n};\n\nvar WrapForValidAsyncIteratorPrototype = createAsyncIteratorProxyPrototype(true);\nvar AsyncIteratorHelperPrototype = createAsyncIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(AsyncIteratorHelperPrototype, TO_STRING_TAG, 'Async Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var AsyncIteratorProxy = function AsyncIterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n AsyncIteratorProxy.prototype = IS_ITERATOR ? WrapForValidAsyncIteratorPrototype : AsyncIteratorHelperPrototype;\n\n return AsyncIteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/async-iterator-map');\n\nvar callback = function (value, counter) {\n return [counter, value];\n};\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n return call(map, this, callback);\n};\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar createMethod = function (TYPE) {\n var IS_TO_ARRAY = TYPE === 0;\n var IS_FOR_EACH = TYPE === 1;\n var IS_EVERY = TYPE === 2;\n var IS_SOME = TYPE === 3;\n return function (object, fn, target) {\n anObject(object);\n var MAPPING = fn !== undefined;\n if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n var record = getIteratorDirect(object);\n var Promise = getBuiltIn('Promise');\n var iterator = record.iterator;\n var next = record.next;\n var counter = 0;\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n if (MAPPING) try {\n doesNotExceedSafeInteger(counter);\n } catch (error5) { ifAbruptCloseAsyncIterator(error5); }\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n if (IS_TO_ARRAY) {\n target.length = counter;\n resolve(target);\n } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n } else {\n var value = step.value;\n try {\n if (MAPPING) {\n var result = fn(value, counter);\n\n var handler = function ($result) {\n if (IS_FOR_EACH) {\n loop();\n } else if (IS_EVERY) {\n $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n } else if (IS_TO_ARRAY) {\n try {\n target[counter++] = $result;\n loop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n } else {\n $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } else {\n target[counter++] = value;\n loop();\n }\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n };\n};\n\nmodule.exports = {\n toArray: createMethod(0),\n forEach: createMethod(1),\n every: createMethod(2),\n some: createMethod(3),\n find: createMethod(4)\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var mapper = state.mapper;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = mapper(value, state.counter++);\n\n var handler = function (mapped) {\n resolve(createIterResultObject(mapped, false));\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error2) { ifAbruptCloseAsyncIterator(error2); }\n }\n } catch (error) { doneAndReject(error); }\n }, doneAndReject);\n });\n});\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared-store');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = globalThis.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || globalThis[USE_FUNCTION_CONSTRUCTOR]) {\n try {\n // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n","'use strict';\nvar call = require('../internals/function-call');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\n\nmodule.exports = createAsyncIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n","'use strict';\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n // TODO: use `Object.create(null)` in `core-js@4`\n var result = {};\n var index = 0;\n for (; index < 64; index++) result[characters.charAt(index)] = index;\n return result;\n};\n\nmodule.exports = {\n i2c: base64Alphabet,\n c2i: inverse(base64Alphabet),\n i2cUrl: base64UrlAlphabet,\n c2iUrl: inverse(base64UrlAlphabet)\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar iterate = require('../internals/iterate');\n\nmodule.exports = function (C, adder, ENTRY) {\n return function from(source /* , mapFn, thisArg */) {\n var O = toObject(source);\n var length = arguments.length;\n var mapFn = length > 1 ? arguments[1] : undefined;\n var mapping = mapFn !== undefined;\n var boundFunction = mapping ? bind(mapFn, length > 2 ? arguments[2] : undefined) : undefined;\n var result = new C();\n var n = 0;\n iterate(O, function (nextItem) {\n var entry = mapping ? boundFunction(nextItem, n++) : nextItem;\n if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n else adder(result, entry);\n });\n return result;\n };\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// https://tc39.github.io/proposal-setmap-offrom/\nmodule.exports = function (C, adder, ENTRY) {\n return function of() {\n var result = new C();\n var length = arguments.length;\n for (var index = 0; index < length; index++) {\n var entry = arguments[index];\n if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n else adder(result, entry);\n } return result;\n };\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: null,\n last: null,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: null,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = null;\n entry = entry.next;\n }\n state.first = state.last = null;\n state.index = create(null);\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: null\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: null\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n if (data) return data[state.id];\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\nvar isObject = require('../internals/is-object');\n\nvar $Object = Object;\nvar $TypeError = TypeError;\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\n\nvar Node = function () {\n // keys\n this.object = null;\n this.symbol = null;\n // child nodes\n this.primitives = null;\n this.objectsByIndex = create(null);\n};\n\nNode.prototype.get = function (key, initializer) {\n return this[key] || (this[key] = initializer());\n};\n\nNode.prototype.next = function (i, it, IS_OBJECT) {\n var store = IS_OBJECT\n ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap())\n : this.primitives || (this.primitives = new Map());\n var entry = store.get(it);\n if (!entry) store.set(it, entry = new Node());\n return entry;\n};\n\nvar root = new Node();\n\nmodule.exports = function () {\n var active = root;\n var length = arguments.length;\n var i, it;\n // for prevent leaking, start from objects\n for (i = 0; i < length; i++) {\n if (isObject(it = arguments[i])) active = active.next(i, it, true);\n }\n if (this === $Object && active === root) throw new $TypeError('Composite keys must contain a non-primitive component');\n for (i = 0; i < length; i++) {\n if (!isObject(it = arguments[i])) active = active.next(i, it, false);\n } return active;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar $RangeError = RangeError;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar nativeDateToISOString = DatePrototype.toISOString;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar getUTCDate = uncurryThis(DatePrototype.getUTCDate);\nvar getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);\nvar getUTCHours = uncurryThis(DatePrototype.getUTCHours);\nvar getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);\nvar getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);\nvar getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);\nvar getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value');\n var date = this;\n var year = getUTCFullYear(date);\n var milliseconds = getUTCMilliseconds(date);\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(getUTCMonth(date) + 1, 2, 0) +\n '-' + padStart(getUTCDate(date), 2, 0) +\n 'T' + padStart(getUTCHours(date), 2, 0) +\n ':' + padStart(getUTCMinutes(date), 2, 0) +\n ':' + padStart(getUTCSeconds(date), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw new $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/environment-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe\n var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function demethodize() {\n return uncurryThis(aCallable(this));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n var alphabet = options && options.alphabet;\n if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n throw new $TypeError('Incorrect `alphabet` option');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (obj) {\n var object = anObject(obj);\n var alreadyAsync = true;\n var method = getMethod(object, ASYNC_ITERATOR);\n var iterator;\n if (!isCallable(method)) {\n method = getIteratorMethod(object);\n alreadyAsync = false;\n }\n if (method !== undefined) {\n iterator = call(method, object);\n } else {\n iterator = object;\n alreadyAsync = true;\n }\n anObject(iterator);\n return getIteratorDirect(alreadyAsync ? iterator : new AsyncFromSyncIterator(getIteratorDirect(iterator)));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar anObject = require('../internals/an-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n var Constructor = globalThis[CONSTRUCTOR];\n var Prototype = Constructor && Constructor.prototype;\n return Prototype && Prototype[METHOD];\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj, stringHandling) {\n if (!stringHandling || typeof obj !== 'string') anObject(obj);\n var method = getIteratorMethod(obj);\n return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number !== number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent += eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[index - 1] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa += pow(2, mantissaLength);\n exponent -= eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar $Object = Object;\n\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) return false;\n var O = $Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || hasOwn(Iterators, classof(O));\n};\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar getInternalState = require('../internals/internal-state').get;\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n if (iterator) iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/iterator-map');\n\nvar callback = function (value, counter) {\n return [counter, value];\n};\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n return call(map, this, callback);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: entries(map), next: next }, function (entry) {\n return fn(entry[1], entry[0]);\n }) : forEach(map, fn);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.upsert` method\n// https://github.com/tc39/proposal-upsert\nmodule.exports = function upsert(key, updateFn /* , insertFn */) {\n var map = anObject(this);\n var get = aCallable(map.get);\n var has = aCallable(map.has);\n var set = aCallable(map.set);\n var insertFn = arguments.length > 2 ? arguments[2] : undefined;\n var value;\n if (!isCallable(updateFn) && !isCallable(insertFn)) {\n throw new $TypeError('At least one callback required');\n }\n if (call(has, map, key)) {\n value = call(get, map, key);\n if (isCallable(updateFn)) {\n value = updateFn(value);\n call(set, map, key, value);\n }\n } else if (isCallable(insertFn)) {\n value = insertFn();\n call(set, map, key, value);\n } return value;\n};\n","'use strict';\n// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n // Old FF bug\n // eslint-disable-next-line no-loss-of-precision -- required for old engines\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) !== -2e-17\n) ? function expm1(x) {\n var n = +x;\n return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;\n} : $expm1;\n","'use strict';\nvar sign = require('../internals/math-sign');\nvar roundTiesToEven = require('../internals/math-round-ties-to-even');\n\nvar abs = Math.abs;\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\n\nmodule.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {\n var n = +x;\n var absolute = abs(n);\n var s = sign(n);\n if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;\n var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;\n var result = a - (a - absolute);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;\n return s * result;\n};\n","'use strict';\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23;\nvar FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104\nvar FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126;\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);\n};\n","'use strict';\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n return log(x) * LOG10E;\n};\n","'use strict';\nvar log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n var n = +x;\n return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);\n};\n","'use strict';\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n// eslint-disable-next-line es/no-math-log2 -- safe\nmodule.exports = Math.log2 || function log2(x) {\n return log(x) / LN2;\n};\n","'use strict';\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\nvar INVERSE_EPSILON = 1 / EPSILON;\n\nmodule.exports = function (n) {\n return n + INVERSE_EPSILON - INVERSE_EPSILON;\n};\n","'use strict';\n// `Math.scale` method implementation\n// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = function scale(x, inLow, inHigh, outLow, outHigh) {\n var nx = +x;\n var nInLow = +inLow;\n var nInHigh = +inHigh;\n var nOutLow = +outLow;\n var nOutHigh = +outHigh;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN;\n if (nx === Infinity || nx === -Infinity) return nx;\n return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;\n};\n","'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\n/* eslint-disable es/no-json -- safe */\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n // eslint-disable-next-line es/no-nonstandard-json-properties -- feature detection\n var raw = JSON.rawJSON(unsafeInt);\n // eslint-disable-next-line es/no-nonstandard-json-properties -- feature detection\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar globalIsFinite = globalThis.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = globalThis.parseFloat;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = globalThis.parseInt;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar INCORRECT_RANGE = 'Incorrect Iterator.range arguments';\nvar NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\n\nvar $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {\n // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4`\n if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {\n throw new $TypeError(INCORRECT_RANGE);\n }\n if (start === Infinity || start === -Infinity) {\n throw new $RangeError(INCORRECT_RANGE);\n }\n var ifIncrease = end > start;\n var inclusiveEnd = false;\n var step;\n if (option === undefined) {\n step = undefined;\n } else if (isObject(option)) {\n step = option.step;\n inclusiveEnd = !!option.inclusive;\n } else if (typeof option == type) {\n step = option;\n } else {\n throw new $TypeError(INCORRECT_RANGE);\n }\n if (isNullOrUndefined(step)) {\n step = ifIncrease ? one : -one;\n }\n if (typeof step != type) {\n throw new $TypeError(INCORRECT_RANGE);\n }\n if (step === Infinity || step === -Infinity || (step === zero && start !== end)) {\n throw new $RangeError(INCORRECT_RANGE);\n }\n // eslint-disable-next-line no-self-compare -- NaN check\n var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero);\n setInternalState(this, {\n type: NUMERIC_RANGE_ITERATOR,\n start: start,\n end: end,\n step: step,\n inclusive: inclusiveEnd,\n hitsEnd: hitsEnd,\n currentCount: zero,\n zero: zero\n });\n if (!DESCRIPTORS) {\n this.start = start;\n this.end = end;\n this.step = step;\n this.inclusive = inclusiveEnd;\n }\n}, NUMERIC_RANGE_ITERATOR, function next() {\n var state = getInternalState(this);\n if (state.hitsEnd) return createIterResultObject(undefined, true);\n var start = state.start;\n var end = state.end;\n var step = state.step;\n var currentYieldingValue = start + (step * state.currentCount++);\n if (currentYieldingValue === end) state.hitsEnd = true;\n var inclusiveEnd = state.inclusive;\n var endCondition;\n if (end > start) {\n endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end;\n } else {\n endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue;\n }\n if (endCondition) {\n state.hitsEnd = true;\n return createIterResultObject(undefined, true);\n } return createIterResultObject(currentYieldingValue, false);\n});\n\nvar addGetter = function (key) {\n defineBuiltInAccessor($RangeIterator.prototype, key, {\n get: function () {\n return getInternalState(this)[key];\n },\n set: function () { /* empty */ },\n configurable: true,\n enumerable: false\n });\n};\n\nif (DESCRIPTORS) {\n addGetter('start');\n addGetter('end');\n addGetter('inclusive');\n addGetter('step');\n}\n\nmodule.exports = $RangeIterator;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n // eslint-disable-next-line es/no-array-prototype-foreach -- safe\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar hasOwn = require('../internals/has-own-property');\nvar objectKeys = require('../internals/object-keys');\nvar toObject = require('../internals/to-object');\n\nvar OBJECT_ITERATOR = 'Object Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);\n\nmodule.exports = createIteratorConstructor(function ObjectIterator(source, mode) {\n var object = toObject(source);\n setInternalState(this, {\n type: OBJECT_ITERATOR,\n mode: mode,\n object: object,\n keys: objectKeys(object),\n index: 0\n });\n}, 'Object', function next() {\n var state = getInternalState(this);\n var keys = state.keys;\n while (true) {\n if (keys === null || state.index >= keys.length) {\n state.object = state.keys = null;\n return createIterResultObject(undefined, true);\n }\n var key = keys[state.index++];\n var object = state.object;\n if (!hasOwn(object, key)) continue;\n switch (state.mode) {\n case 'keys': return createIterResultObject(key, false);\n case 'values': return createIterResultObject(object[key], false);\n } /* entries */ return createIterResultObject([key, object[key]], false);\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-undef, no-useless-call, sonarjs/no-reference-error -- required for testing */\n/* eslint-disable es/no-legacy-object-prototype-accessor-methods -- required for testing */\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n // This feature detection crashes old WebKit\n // https://github.com/zloirock/core-js/issues/232\n if (WEBKIT && WEBKIT < 535) return;\n var key = Math.random();\n // In FF throws only define methods\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete globalThis[key];\n});\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar shared = require('../internals/shared');\n\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\nvar push = uncurryThis([].push);\n\nvar metadata = shared('metadata');\nvar store = metadata.store || (metadata.store = new WeakMap());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\n\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\n\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\n\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\n\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });\n return keys;\n};\n\nvar toMetadataKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\n\nmodule.exports = {\n store: store,\n getMap: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n toKey: toMetadataKey\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\n// `SameValueZero` abstract operation\n// https://tc39.es/ecma262/#sec-samevaluezero\nmodule.exports = function (x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y || x !== x && y !== y;\n};\n","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENVIRONMENT = require('../internals/environment');\nvar USER_AGENT = require('../internals/environment-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n var version = globalThis.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set();\n set.add(1);\n set.add(2);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.40.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.cooked` method\n// https://tc39.es/proposal-string-cooked/\nmodule.exports = function cooked(template /* , ...substitutions */) {\n var cookedTemplate = toIndexedObject(template);\n var literalSegments = lengthOfArrayLike(cookedTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n var nextVal = cookedTemplate[i++];\n if (nextVal === undefined) throw new $TypeError('Incorrect template');\n push(elements, toString(nextVal));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr === '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\n// adapted from https://github.com/jridgewell/string-dedent\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar ZERO_CODE = 48;\nvar NINE_CODE = 57;\nvar LOWER_A_CODE = 97;\nvar LOWER_F_CODE = 102;\nvar UPPER_A_CODE = 65;\nvar UPPER_F_CODE = 70;\n\nvar isDigit = function (str, index) {\n var c = charCodeAt(str, index);\n return c >= ZERO_CODE && c <= NINE_CODE;\n};\n\nvar parseHex = function (str, index, end) {\n if (end >= str.length) return -1;\n var n = 0;\n for (; index < end; index++) {\n var c = hexToInt(charCodeAt(str, index));\n if (c === -1) return -1;\n n = n * 16 + c;\n }\n return n;\n};\n\nvar hexToInt = function (c) {\n if (c >= ZERO_CODE && c <= NINE_CODE) return c - ZERO_CODE;\n if (c >= LOWER_A_CODE && c <= LOWER_F_CODE) return c - LOWER_A_CODE + 10;\n if (c >= UPPER_A_CODE && c <= UPPER_F_CODE) return c - UPPER_A_CODE + 10;\n return -1;\n};\n\nmodule.exports = function (raw) {\n var out = '';\n var start = 0;\n // We need to find every backslash escape sequence, and cook the escape into a real char.\n var i = 0;\n var n;\n while ((i = stringIndexOf(raw, '\\\\', i)) > -1) {\n out += stringSlice(raw, start, i);\n // If the backslash is the last char of the string, then it was an invalid sequence.\n // This can't actually happen in a tagged template literal, but could happen if you manually\n // invoked the tag with an array.\n if (++i === raw.length) return;\n var next = charAt(raw, i++);\n switch (next) {\n // Escaped control codes need to be individually processed.\n case 'b':\n out += '\\b';\n break;\n case 't':\n out += '\\t';\n break;\n case 'n':\n out += '\\n';\n break;\n case 'v':\n out += '\\v';\n break;\n case 'f':\n out += '\\f';\n break;\n case 'r':\n out += '\\r';\n break;\n // Escaped line terminators just skip the char.\n case '\\r':\n // Treat `\\r\\n` as a single terminator.\n if (i < raw.length && charAt(raw, i) === '\\n') ++i;\n // break omitted\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n break;\n // `\\0` is a null control char, but `\\0` followed by another digit is an illegal octal escape.\n case '0':\n if (isDigit(raw, i)) return;\n out += '\\0';\n break;\n // Hex escapes must contain 2 hex chars.\n case 'x':\n n = parseHex(raw, i, i + 2);\n if (n === -1) return;\n i += 2;\n out += fromCharCode(n);\n break;\n // Unicode escapes contain either 4 chars, or an unlimited number between `{` and `}`.\n // The hex value must not overflow 0x10FFFF.\n case 'u':\n if (i < raw.length && charAt(raw, i) === '{') {\n var end = stringIndexOf(raw, '}', ++i);\n if (end === -1) return;\n n = parseHex(raw, i, end);\n i = end + 1;\n } else {\n n = parseHex(raw, i, i + 4);\n i += 4;\n }\n if (n === -1 || n > 0x10FFFF) return;\n out += fromCodePoint(n);\n break;\n default:\n if (isDigit(next, 0)) return;\n out += next;\n }\n start = i;\n }\n return out + stringSlice(raw, start);\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isIterable = require('../internals/is-iterable');\nvar isObject = require('../internals/is-object');\n\nvar Set = getBuiltIn('Set');\n\nvar isSetLike = function (it) {\n return isObject(it)\n && typeof it.size == 'number'\n && isCallable(it.has)\n && isCallable(it.keys);\n};\n\n// fallback old -> new set methods proposal arguments\nmodule.exports = function (it) {\n if (isSetLike(it)) return it;\n return isIterable(it) ? new Set(it) : it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar round = Math.round;\n\nmodule.exports = function (it) {\n var value = round(it);\n return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar RangeError = globalThis.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar addGetter = function (it, key) {\n defineBuiltInAccessor(it, key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw new RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw new RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return arrayFromConstructorAndList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\n/* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar Int8Array = globalThis.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","'use strict';\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getTypedArrayConstructor = require('../internals/array-buffer-view-core').getTypedArrayConstructor;\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(getTypedArrayConstructor(instance), list);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n var length = string.length;\n for (;index < length; index++) {\n var chr = at(string, index);\n if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n var chunkLength = chunk.length;\n\n if (chunkLength < 4) {\n chunk += chunkLength === 2 ? 'AA' : 'A';\n }\n\n var triplet = (alphabet[at(chunk, 0)] << 18)\n + (alphabet[at(chunk, 1)] << 12)\n + (alphabet[at(chunk, 2)] << 6)\n + alphabet[at(chunk, 3)];\n\n var chunkBytes = [\n (triplet >> 16) & 255,\n (triplet >> 8) & 255,\n triplet & 255\n ];\n\n if (chunkLength === 2) {\n if (throwOnExtraBits && chunkBytes[1] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0]];\n }\n\n if (chunkLength === 3) {\n if (throwOnExtraBits && chunkBytes[2] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0], chunkBytes[1]];\n }\n\n return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n var elementsLength = elements.length;\n for (var index = 0; index < elementsLength; index++) {\n bytes[written + index] = elements[index];\n }\n return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n aString(string);\n anObjectOrUndefined(options);\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n throw new TypeError('Incorrect `lastChunkHandling` option');\n }\n\n if (into) notDetached(into.buffer);\n\n var bytes = into || [];\n var written = 0;\n var read = 0;\n var chunk = '';\n var index = 0;\n\n if (maxLength) while (true) {\n index = skipAsciiWhitespace(string, index);\n if (index === string.length) {\n if (chunk.length > 0) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n if (lastChunkHandling === 'loose') {\n if (chunk.length === 1) {\n throw new SyntaxError('Malformed padding: exactly one additional character');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n } else {\n throw new SyntaxError('Missing padding');\n }\n }\n read = string.length;\n break;\n }\n var chr = at(string, index);\n ++index;\n if (chr === '=') {\n if (chunk.length < 2) {\n throw new SyntaxError('Padding is too early');\n }\n index = skipAsciiWhitespace(string, index);\n if (chunk.length === 2) {\n if (index === string.length) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n throw new SyntaxError('Malformed padding: only one =');\n }\n if (at(string, index) === '=') {\n ++index;\n index = skipAsciiWhitespace(string, index);\n }\n }\n if (index < string.length) {\n throw new SyntaxError('Unexpected character after padding');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n read = string.length;\n break;\n }\n if (!hasOwn(alphabet, chr)) {\n throw new SyntaxError('Unexpected character');\n }\n var remainingBytes = maxLength - written;\n if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n break;\n }\n\n chunk += chr;\n if (chunk.length === 4) {\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n chunk = '';\n read = index;\n if (written === maxLength) {\n break;\n }\n }\n }\n\n return { bytes: bytes, read: read, written: written };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar parseInt = globalThis.parseInt;\nvar min = Math.min;\nvar NOT_HEX = /[^\\da-f]/i;\nvar exec = uncurryThis(NOT_HEX.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (string, into) {\n var stringLength = string.length;\n if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n var bytes = into || new Uint8Array(maxLength);\n var read = 0;\n var written = 0;\n while (written < maxLength) {\n var hexits = stringSlice(string, read, read += 2);\n if (exec(NOT_HEX, hexits)) throw new SyntaxError('String should only contain hex characters');\n bytes[written++] = parseInt(hexits, 16);\n }\n return { bytes: bytes, read: read };\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'https://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'https://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('https://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-set -- safe\nvar WeakSetPrototype = WeakSet.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-set -- safe\n WeakSet: WeakSet,\n add: uncurryThis(WeakSetPrototype.add),\n has: uncurryThis(WeakSetPrototype.has),\n remove: uncurryThis(WeakSetPrototype['delete'])\n};\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\n\nvar FORCED = !fails(function () {\n return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://tc39.es/ecma262/#sec-aggregate-error\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n return function AggregateError(errors, message) { return apply(init, this, arguments); };\n }, FORCED, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = globalThis[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice && end === undefined) {\n return nativeArrayBufferSlice(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new ArrayBuffer(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n setUint8(viewTarget, index++, getUint8(viewSource, first++));\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://tc39.es/ecma262/#sec-array.prototype.at\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlastindex\n$({ target: 'Array', proto: true }, {\n findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLastIndex');\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlast\n$({ target: 'Array', proto: true }, {\n findLast: function findLast(callbackfn /* , that = undefined */) {\n return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLast');\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n // eslint-disable-next-line es/no-array-of -- safe\n return !($Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (isConstructor(this) ? this : $Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\n\n// `Array.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-array.prototype.toreversed\n$({ target: 'Array', proto: true }, {\n toReversed: function toReversed() {\n return arrayToReversed(toIndexedObject(this), $Array);\n }\n});\n\naddToUnscopables('toReversed');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\nvar sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort'));\n\n// `Array.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-array.prototype.tosorted\n$({ target: 'Array', proto: true }, {\n toSorted: function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = toIndexedObject(this);\n var A = arrayFromConstructorAndList($Array, O);\n return sort(A, compareFn);\n }\n});\n\naddToUnscopables('toSorted');\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = $Array(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n }\n});\n\naddToUnscopables('toSpliced');\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayWith = require('../internals/array-with');\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar $Array = Array;\n\n// `Array.prototype.with` method\n// https://tc39.es/ecma262/#sec-array.prototype.with\n$({ target: 'Array', proto: true }, {\n 'with': function (index, value) {\n return arrayWith(toIndexedObject(this), $Array, index, value);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, {\n DataView: ArrayBufferModule.DataView\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.data-view.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\n// IE8- non-standard case\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection\n return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = uncurryThis(Date.prototype.getFullYear);\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n getYear: function getYear() {\n return getFullYear(this) - 1900;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return thisTimeValue(new $Date());\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar DatePrototype = Date.prototype;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar setFullYear = uncurryThis(DatePrototype.setFullYear);\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n setYear: function setYear(year) {\n // validate\n thisTimeValue(this);\n var yi = toIntegerOrInfinity(year);\n var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi;\n return setFullYear(this, yyyy);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n toGMTString: Date.prototype.toUTCString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O, 'number');\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) !== INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = globalThis[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(/./.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar toUpperCase = uncurryThis(''.toUpperCase);\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n var result = numberToString(code, 16);\n while (result.length < length) result = '0' + result;\n return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n escape: function escape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, code;\n while (index < length) {\n chr = charAt(str, index++);\n if (exec(raw, chr)) {\n result += chr;\n } else {\n code = charCodeAt(chr, 0);\n if (code < 256) {\n result += '%' + hex(code, 2);\n } else {\n result += '%u' + toUpperCase(hex(code, 4));\n }\n }\n } return result;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n bind: bind\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {\n if (!isCallable(this) || !isObject(O)) return false;\n var P = this.prototype;\n return isObject(P) ? isPrototypeOf(P, O) : O instanceof this;\n }, HAS_INSTANCE) });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: globalThis.globalThis !== globalThis }, {\n globalThis: globalThis\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true }, {\n find: function find(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n anObject(this);\n aCallable(fn);\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n\n// `Iterator.from` method\n// https://tc39.es/ecma262/#sec-iterator.from\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n from: function from(O) {\n var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);\n return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new IteratorProxy(iteratorRecord);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n map: map\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n if (!this.remaining--) {\n this.done = true;\n return iteratorClose(iterator, 'normal', undefined);\n }\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.take\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n take: function take(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar push = [].push;\n\n// `Iterator.prototype.toArray` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.toarray\n$({ target: 'Iterator', proto: true, real: true }, {\n toArray: function toArray() {\n var result = [];\n iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true });\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(globalThis.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar iterate = require('../internals/iterate');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\nvar fails = require('../internals/fails');\n\nvar Map = MapHelpers.Map;\nvar has = MapHelpers.has;\nvar get = MapHelpers.get;\nvar set = MapHelpers.set;\nvar push = uncurryThis([].push);\n\nvar DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () {\n return Map.groupBy('ab', function (it) {\n return it;\n }).get('a').length !== 1;\n});\n\n// `Map.groupBy` method\n// https://tc39.es/ecma262/#sec-map.groupby\n$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var map = new Map();\n var k = 0;\n iterate(items, function (value) {\n var key = callbackfn(value, k++);\n if (!has(map, key)) set(map, key, [value]);\n else push(get(map, key), value);\n });\n return map;\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor($acosh(Number.MAX_VALUE)) !== 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || $acosh(Infinity) !== Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n var n = +x;\n return n < 1 ? NaN : n > 94906265.62425156\n ? log(n) + LN2\n : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n var n = +x;\n return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));\n}\n\nvar FORCED = !($asinh && 1 / $asinh(0) > 0);\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n asinh: asinh\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\nvar FORCED = !($atanh && 1 / $atanh(-0) < 0);\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n atanh: function atanh(x) {\n var n = +x;\n return n === 0 ? n : log((1 + n) / (1 - n)) / 2;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n var n = +x;\n return sign(n) * pow(abs(n), 1 / 3);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n var n = x >>> 0;\n return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\nvar FORCED = !$cosh || $cosh(710) === Infinity;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 });\n","'use strict';\nvar $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: log10\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","'use strict';\nvar $ = require('../internals/export');\nvar log2 = require('../internals/math-log2');\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: log2\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-math-sinh -- required for testing\n return Math.sinh(-2e-17) !== -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n var n = +x;\n return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var n = +x;\n var a = expm1(n);\n var b = expm1(-n);\n return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n));\n }\n});\n","'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: trunc\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = globalThis[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = globalThis.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, {\n parseFloat: parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, {\n parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar log10 = require('../internals/math-log10');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar round = Math.round;\nvar nativeToExponential = uncurryThis(1.0.toExponential);\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\n\n// Edge 17-\nvar ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11'\n // IE11- && Edge 14-\n && nativeToExponential(1.255, 2) === '1.25e+0'\n // FF86-, V8 ~ Chrome 49-50\n && nativeToExponential(12345, 3) === '1.235e+4'\n // FF86-, V8 ~ Chrome 49-50\n && nativeToExponential(25, 0) === '3e+1';\n\n// IE8-\nvar throwsOnInfinityFraction = function () {\n return fails(function () {\n nativeToExponential(1, Infinity);\n }) && fails(function () {\n nativeToExponential(1, -Infinity);\n });\n};\n\n// Safari <11 && FF <50\nvar properNonFiniteThisCheck = function () {\n return !fails(function () {\n nativeToExponential(Infinity, Infinity);\n nativeToExponential(NaN, Infinity);\n });\n};\n\nvar FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck();\n\n// `Number.prototype.toExponential` method\n// https://tc39.es/ecma262/#sec-number.prototype.toexponential\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toExponential: function toExponential(fractionDigits) {\n var x = thisNumberValue(this);\n if (fractionDigits === undefined) return nativeToExponential(x);\n var f = toIntegerOrInfinity(fractionDigits);\n if (!$isFinite(x)) return String(x);\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits');\n if (ROUNDS_PROPERLY) return nativeToExponential(x, f);\n var s = '';\n var m, e, c, d;\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x === 0) {\n e = 0;\n m = repeat('0', f + 1);\n } else {\n // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08\n // TODO: improve accuracy with big fraction digits\n var l = log10(x);\n e = floor(l);\n var w = pow(10, e - f);\n var n = round(x / w);\n if (2 * x >= (2 * n + 1) * w) {\n n += 1;\n }\n if (n >= pow(10, f + 1)) {\n n /= 10;\n e += 1;\n }\n m = $String(n);\n }\n if (f !== 0) {\n m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);\n }\n if (e === 0) {\n c = '+';\n d = '0';\n } else {\n c = e > 0 ? '+' : '-';\n d = $String(abs(e));\n }\n m += 'e' + c + d;\n return s + m;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = uncurryThis(1.0.toPrecision);\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision(thisNumberValue(this))\n : nativeToPrecision(thisNumberValue(this), precision);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://tc39.es/ecma262/#sec-object.fromentries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toPropertyKey = require('../internals/to-property-key');\nvar iterate = require('../internals/iterate');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-groupby -- testing\nvar nativeGroupBy = Object.groupBy;\nvar create = getBuiltIn('Object', 'create');\nvar push = uncurryThis([].push);\n\nvar DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () {\n return nativeGroupBy('ab', function (it) {\n return it;\n }).a.length !== 1;\n});\n\n// `Object.groupBy` method\n// https://tc39.es/ecma262/#sec-object.groupby\n$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var obj = create(null);\n var k = 0;\n iterate(items, function (value) {\n var key = toPropertyKey(callbackfn(value, k++));\n // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in obj) push(obj[key], value);\n else obj[key] = [value];\n });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://tc39.es/ecma262/#sec-object.hasown\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n isExtensible: $isExtensible\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isFrozen: function isFrozen(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isFrozen ? $isFrozen(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isSealed: function isSealed(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isSealed ? $isSealed(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isObject = require('../internals/is-object');\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\nvar toObject = require('../internals/to-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n defineBuiltInAccessor(ObjectPrototype, PROTO, {\n configurable: true,\n get: function __proto__() {\n return getPrototypeOf(toObject(this));\n },\n set: function __proto__(proto) {\n var O = requireObjectCoercible(this);\n if (isPossiblePrototype(proto) && isObject(O)) {\n setPrototypeOf(O, proto);\n }\n }\n });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar slice = require('../internals/array-slice');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar aCallable = require('../internals/a-callable');\nvar perform = require('../internals/perform');\n\nvar Promise = globalThis.Promise;\n\nvar ACCEPT_ARGUMENTS = false;\n// Avoiding the use of polyfills of the previous iteration of this proposal\n// that does not accept arguments of the callback\nvar FORCED = !Promise || !Promise['try'] || perform(function () {\n Promise['try'](function (argument) {\n ACCEPT_ARGUMENTS = argument === 8;\n }, 8);\n}).error || !ACCEPT_ARGUMENTS;\n\n// `Promise.try` method\n// https://tc39.es/ecma262/#sec-promise.try\n$({ target: 'Promise', stat: true, forced: FORCED }, {\n 'try': function (callbackfn /* , ...args */) {\n var args = arguments.length > 1 ? slice(arguments, 1) : [];\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(function () {\n return apply(aCallable(callbackfn), undefined, args);\n });\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPropertyKey(propertyKey);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible(target);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype, setter;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (isDataDescriptor(ownDescriptor)) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n } else {\n setter = ownDescriptor.set;\n if (setter === undefined) return false;\n call(setter, receiver, V);\n } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var Constructor = function () { /* empty */ };\n var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n // eslint-disable-next-line es/no-reflect -- required for testing\n return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(globalThis.Reflect, 'Reflect', true);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = globalThis.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = globalThis.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = create(null);\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n result += chr;\n // ignore non-capturing groups\n if (stringSlice(string, index + 1, index + 3) === '?:') {\n continue;\n }\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(globalThis, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function sticky() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-string-prototype-at -- safe\n return 'ð ®·'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://tc39.es/ecma262/#sec-string.prototype.at\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `String.prototype.isWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.iswellformed\n$({ target: 'String', proto: true }, {\n isWellFormed: function isWellFormed() {\n var S = toString(requireObjectCoercible(this));\n var length = S.length;\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) continue;\n // unpaired surrogate\n if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false;\n } return true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar nativeMatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n nativeMatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: $global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return createIterResultObject(undefined, true);\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) {\n state.done = true;\n return createIterResultObject(undefined, true);\n }\n if (state.global) {\n if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return createIterResultObject(match, false);\n }\n state.done = true;\n return createIterResultObject(match, false);\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = toString(string);\n var C = speciesConstructor(R, RegExp);\n var flags = toString(getRegExpFlags(R));\n var matcher, $global, fullUnicode;\n matcher = new C(C === RegExp ? R.source : R, flags);\n $global = !!~stringIndexOf(flags, 'g');\n fullUnicode = !!~stringIndexOf(flags, 'u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (!isNullOrUndefined(regexp)) {\n if (isRegExp(regexp)) {\n flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));\n if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n matcher = getMethod(regexp, MATCH_ALL);\n if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll;\n if (matcher) return call(matcher, regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n S = toString(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(toObject(template).raw);\n var literalSegments = lengthOfArrayLike(rawTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n push(elements, toString(rawTemplate[i++]));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) return call(replacer, searchValue, O, replaceValue);\n if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = indexOf(string, searchString);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\nvar min = Math.min;\n\n// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing\nvar FORCED = !''.substr || 'ab'.substr(-1) !== 'b';\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true, forced: FORCED }, {\n substr: function substr(start, length) {\n var that = toString(requireObjectCoercible(this));\n var size = that.length;\n var intStart = toIntegerOrInfinity(start);\n var intLength, intEnd;\n if (intStart === Infinity) intStart = 0;\n if (intStart < 0) intStart = max(size + intStart, 0);\n intLength = length === undefined ? size : toIntegerOrInfinity(length);\n if (intLength <= 0 || intLength === Infinity) return '';\n intEnd = min(intStart + intLength, size);\n return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar $Array = Array;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\n// eslint-disable-next-line es/no-string-prototype-towellformed -- safe\nvar $toWellFormed = ''.toWellFormed;\nvar REPLACEMENT_CHARACTER = '\\uFFFD';\n\n// Safari bug\nvar TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {\n return call($toWellFormed, 1) !== '1';\n});\n\n// `String.prototype.toWellFormed` method\n// https://tc39.es/ecma262/#sec-string.prototype.towellformed\n$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {\n toWellFormed: function toWellFormed() {\n var S = toString(requireObjectCoercible(this));\n if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);\n var length = S.length;\n var result = $Array(length);\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i);\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER;\n // surrogate pair\n else {\n result[i] = charAt(S, i);\n result[++i] = charAt(S, i);\n }\n } return join(result, '');\n }\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n trimRight: trimEnd\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n trimStart: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? globalThis : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = globalThis.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- ok\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSameTypeAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = globalThis.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (getTypedArrayConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = globalThis.RangeError;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw new RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = getTypedArrayConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = globalThis.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = getTypedArrayConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = globalThis.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n unescape: function unescape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, part;\n while (index < length) {\n chr = charAt(str, index++);\n if (chr === '%') {\n if (charAt(str, index) === 'u') {\n part = stringSlice(str, index + 1, index + 5);\n if (exec(hex4, part)) {\n result += fromCharCode(parseInt(part, 16));\n index += 5;\n continue;\n }\n } else {\n part = stringSlice(str, index, index + 2);\n if (exec(hex2, part)) {\n result += fromCharCode(parseInt(part, 16));\n index += 2;\n continue;\n }\n }\n }\n result += chr;\n } return result;\n }\n});\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = freeze;\n else if (isSealed(key)) arrayIntegrityLevel = seal;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel) arrayIntegrityLevel(key);\n return this;\n }\n });\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.aggregate-error');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array-buffer.detached');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array-buffer.transfer-to-fixed-length');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array-buffer.transfer');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.at');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n filterOut: function filterOut(callbackfn /* , thisArg */) {\n return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('filterOut');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n filterReject: function filterReject(callbackfn /* , thisArg */) {\n return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('filterReject');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.find-last-index');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.find-last');\n","'use strict';\nvar $ = require('../internals/export');\nvar fromAsync = require('../internals/array-from-async');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-nonstandard-array-properties -- safe\nvar nativeFromAsync = Array.fromAsync;\n// https://bugs.webkit.org/show_bug.cgi?id=271703\nvar INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () {\n var counter = 0;\n nativeFromAsync.call(function () {\n counter++;\n return [];\n }, { length: 0 });\n return counter !== 1;\n});\n\n// `Array.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\n$({ target: 'Array', stat: true, forced: INCORRECT_CONSTRUCTURING }, {\n fromAsync: fromAsync\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupByToMap` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, name: 'groupToMap', forced: IS_PURE || !arrayMethodIsStrict('groupByToMap') }, {\n groupByToMap: $groupToMap\n});\n\naddToUnscopables('groupByToMap');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, {\n groupBy: function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(this, callbackfn, thisArg);\n }\n});\n\naddToUnscopables('groupBy');\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true, forced: IS_PURE }, {\n groupToMap: $groupToMap\n});\n\naddToUnscopables('groupToMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.group` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true }, {\n group: function group(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(this, callbackfn, thisArg);\n }\n});\n\naddToUnscopables('group');\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\n\nvar isFrozenStringArray = function (array, allowUndefined) {\n if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;\n var index = 0;\n var length = array.length;\n var element;\n while (index < length) {\n element = array[index++];\n if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {\n return false;\n }\n } return length !== 0;\n};\n\n// `Array.isTemplateObject` method\n// https://github.com/tc39/proposal-array-is-template-object\n$({ target: 'Array', stat: true, sham: true, forced: true }, {\n isTemplateObject: function isTemplateObject(value) {\n if (!isFrozenStringArray(value, true)) return false;\n var raw = value.raw;\n return raw.length === value.length && isFrozenStringArray(raw, false);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` getter\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastIndex', {\n configurable: true,\n get: function lastIndex() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len === 0 ? 0 : len - 1;\n }\n });\n\n addToUnscopables('lastIndex');\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` accessor\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastItem', {\n configurable: true,\n get: function lastItem() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len === 0 ? undefined : O[len - 1];\n },\n set: function lastItem(value) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return O[len === 0 ? 0 : len - 1] = value;\n }\n });\n\n addToUnscopables('lastItem');\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-reversed');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-sorted');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-spliced');\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar uniqueBy = require('../internals/array-unique-by');\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\n$({ target: 'Array', proto: true, forced: true }, {\n uniqueBy: uniqueBy\n});\n\naddToUnscopables('uniqueBy');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.with');\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar Promise = getBuiltIn('Promise');\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getAsyncDisposableStackInternalState = InternalStateModule.getterFor(ASYNC_DISPOSABLE_STACK);\n\nvar HINT = 'async-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingAsyncDisposableStackInternalState = function (stack) {\n var internalState = getAsyncDisposableStackInternalState(stack);\n if (internalState.state === DISPOSED) throw new $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed');\n return internalState;\n};\n\nvar $AsyncDisposableStack = function AsyncDisposableStack() {\n setInternalState(anInstance(this, AsyncDisposableStackPrototype), {\n type: ASYNC_DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype;\n\ndefineBuiltIns(AsyncDisposableStackPrototype, {\n disposeAsync: function disposeAsync() {\n var asyncDisposableStack = this;\n return new Promise(function (resolve, reject) {\n var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack);\n if (internalState.state === DISPOSED) return resolve(undefined);\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) asyncDisposableStack.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n\n var handleError = function (result) {\n if (thrown) {\n suppressed = new SuppressedError(result, suppressed);\n } else {\n thrown = true;\n suppressed = result;\n }\n\n loop();\n };\n\n var loop = function () {\n if (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n Promise.resolve(disposeMethod()).then(loop, handleError);\n } catch (error) {\n handleError(error);\n }\n } else {\n internalState.stack = null;\n thrown ? reject(suppressed) : resolve(undefined);\n }\n };\n\n loop();\n });\n },\n use: function use(value) {\n addDisposableResource(getPendingAsyncDisposableStackInternalState(this), value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n return onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n var newAsyncDisposableStack = new $AsyncDisposableStack();\n getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n return newAsyncDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getAsyncDisposableStackInternalState(this).state === DISPOSED;\n }\n});\n\ndefineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' });\ndefineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n AsyncDisposableStack: $AsyncDisposableStack\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, {\n asIndexedPairs: indexed\n});\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar Promise = getBuiltIn('Promise');\n\nif (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {\n var O = this;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(O, 'return');\n if ($return) {\n Promise.resolve(call($return, O)).then(function () {\n resolve(undefined);\n }, reject);\n } else resolve(undefined);\n });\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar anInstance = require('../internals/an-instance');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\n\nvar AsyncIteratorConstructor = function AsyncIterator() {\n anInstance(this, AsyncIteratorPrototype);\n if (getPrototypeOf(this) === AsyncIteratorPrototype) throw new $TypeError('Abstract class AsyncIterator not directly constructable');\n};\n\nAsyncIteratorConstructor.prototype = AsyncIteratorPrototype;\n\nif (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {\n createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');\n}\n\nif (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {\n createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);\n}\n\n// `AsyncIterator` constructor\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ global: true, constructor: true, forced: IS_PURE }, {\n AsyncIterator: AsyncIteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else if (state.remaining) {\n state.remaining--;\n loop();\n } else resolve(createIterResultObject(step.value, false));\n } catch (err) { doneAndReject(err); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n loop();\n });\n});\n\n// `AsyncIterator.prototype.drop` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/async-iterator-iteration').every;\n\n// `AsyncIterator.prototype.every` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n every: function every(predicate) {\n return $every(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var predicate = state.predicate;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = predicate(value, state.counter++);\n\n var handler = function (selected) {\n selected ? resolve(createIterResultObject(value, false)) : loop();\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { doneAndReject(error2); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n loop();\n });\n});\n\n// `AsyncIterator.prototype.filter` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/async-iterator-iteration').find;\n\n// `AsyncIterator.prototype.find` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n find: function find(predicate) {\n return $find(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var mapper = state.mapper;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n var outerLoop = function () {\n try {\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = mapper(value, state.counter++);\n\n var handler = function (mapped) {\n try {\n state.inner = getAsyncIteratorFlattenable(mapped);\n innerLoop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { doneAndReject(error2); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n var innerLoop = function () {\n var inner = state.inner;\n if (inner) {\n try {\n Promise.resolve(anObject(call(inner.next, inner.iterator))).then(function (result) {\n try {\n if (anObject(result).done) {\n state.inner = null;\n outerLoop();\n } else resolve(createIterResultObject(result.value, false));\n } catch (error1) { ifAbruptCloseAsyncIterator(error1); }\n }, ifAbruptCloseAsyncIterator);\n } catch (error) { ifAbruptCloseAsyncIterator(error); }\n } else outerLoop();\n };\n\n innerLoop();\n });\n});\n\n// `AsyncIterator.prototype.flaMap` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n aCallable(mapper);\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $forEach = require('../internals/async-iterator-iteration').forEach;\n\n// `AsyncIterator.prototype.forEach` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n return $forEach(this, fn);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\nvar IS_PURE = require('../internals/is-pure');\n\n// `AsyncIterator.from` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', stat: true, forced: IS_PURE }, {\n from: function from(O) {\n var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O);\n return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new WrapAsyncIterator(iteratorRecord);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n indexed: indexed\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/async-iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n map: map\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar Promise = getBuiltIn('Promise');\nvar $TypeError = TypeError;\n\n// `AsyncIterator.prototype.reduce` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var iterator = record.iterator;\n var next = record.next;\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n noInitial ? reject(new $TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);\n } else {\n var value = step.value;\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n loop();\n } else try {\n var result = reducer(accumulator, value, counter);\n\n var handler = function ($result) {\n accumulator = $result;\n loop();\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n counter++;\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var returnMethod;\n\n if (!state.remaining--) {\n var resultDone = createIterResultObject(undefined, true);\n state.done = true;\n returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return Promise.resolve(call(returnMethod, iterator, undefined)).then(function () {\n return resultDone;\n });\n }\n return resultDone;\n } return Promise.resolve(call(state.next, iterator)).then(function (step) {\n if (anObject(step).done) {\n state.done = true;\n return createIterResultObject(undefined, true);\n } return createIterResultObject(step.value, false);\n }).then(null, function (error) {\n state.done = true;\n throw error;\n });\n});\n\n// `AsyncIterator.prototype.take` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n take: function take(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $toArray = require('../internals/async-iterator-iteration').toArray;\n\n// `AsyncIterator.prototype.toArray` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n toArray: function toArray() {\n return $toArray(this, undefined, []);\n }\n});\n","'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `BigInt.range` method\n// https://github.com/tc39/proposal-Number.range\n// TODO: Remove from `core-js@4`\nif (typeof BigInt == 'function') {\n $({ target: 'BigInt', stat: true, forced: true }, {\n range: function range(start, end, option) {\n return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar apply = require('../internals/function-apply');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\n\nvar $Object = Object;\n\nvar initializer = function () {\n var freeze = getBuiltIn('Object', 'freeze');\n return freeze ? freeze(create(null)) : create(null);\n};\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n compositeKey: function compositeKey() {\n return apply(getCompositeKeyNode, $Object, arguments).get('object', initializer);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n compositeSymbol: function compositeSymbol() {\n if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]);\n return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol'));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar pow = Math.pow;\n\nvar EXP_MASK16 = 31; // 2 ** 5 - 1\nvar SIGNIFICAND_MASK16 = 1023; // 2 ** 10 - 1\nvar MIN_SUBNORMAL16 = pow(2, -24); // 2 ** -10 * 2 ** -14\nvar SIGNIFICAND_DENOM16 = 0.0009765625; // 2 ** -10\n\nvar unpackFloat16 = function (bytes) {\n var sign = bytes >>> 15;\n var exponent = bytes >>> 10 & EXP_MASK16;\n var significand = bytes & SIGNIFICAND_MASK16;\n if (exponent === EXP_MASK16) return significand === 0 ? (sign === 0 ? Infinity : -Infinity) : NaN;\n if (exponent === 0) return significand * (sign === 0 ? MIN_SUBNORMAL16 : -MIN_SUBNORMAL16);\n return pow(2, exponent - 15) * (sign === 0 ? 1 + significand * SIGNIFICAND_DENOM16 : -1 - significand * SIGNIFICAND_DENOM16);\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint16 = uncurryThis(DataView.prototype.getUint16);\n\n// `DataView.prototype.getFloat16` method\n// https://github.com/tc39/proposal-float16array\n$({ target: 'DataView', proto: true }, {\n getFloat16: function getFloat16(byteOffset /* , littleEndian */) {\n var uint16 = getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return unpackFloat16(uint16);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint8 = uncurryThis(DataView.prototype.getUint8);\n\n// `DataView.prototype.getUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n getUint8Clamped: function getUint8Clamped(byteOffset) {\n return getUint8(this, byteOffset);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\n// TODO: Replace with module dependency in `core-js@4`\nvar log2 = require('../internals/math-log2');\nvar roundTiesToEven = require('../internals/math-round-ties-to-even');\n\nvar pow = Math.pow;\n\nvar MIN_INFINITY16 = 65520; // (2 - 2 ** -11) * 2 ** 15\nvar MIN_NORMAL16 = 0.000061005353927612305; // (1 - 2 ** -11) * 2 ** -14\nvar REC_MIN_SUBNORMAL16 = 16777216; // 2 ** 10 * 2 ** 14\nvar REC_SIGNIFICAND_DENOM16 = 1024; // 2 ** 10;\n\nvar packFloat16 = function (value) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return 0x7E00; // NaN\n if (value === 0) return (1 / value === -Infinity) << 15; // +0 or -0\n\n var neg = value < 0;\n if (neg) value = -value;\n if (value >= MIN_INFINITY16) return neg << 15 | 0x7C00; // Infinity\n if (value < MIN_NORMAL16) return neg << 15 | roundTiesToEven(value * REC_MIN_SUBNORMAL16); // subnormal\n\n // normal\n var exponent = log2(value) | 0;\n if (exponent === -15) {\n // we round from a value between 2 ** -15 * (1 + 1022/1024) (the largest subnormal) and 2 ** -14 * (1 + 0/1024) (the smallest normal)\n // to the latter (former impossible because of the subnormal check above)\n return neg << 15 | REC_SIGNIFICAND_DENOM16;\n }\n var significand = roundTiesToEven((value * pow(2, -exponent) - 1) * REC_SIGNIFICAND_DENOM16);\n if (significand === REC_SIGNIFICAND_DENOM16) {\n // we round from a value between 2 ** n * (1 + 1023/1024) and 2 ** (n + 1) * (1 + 0/1024) to the latter\n return neg << 15 | exponent + 16 << 10;\n }\n return neg << 15 | exponent + 15 << 10 | significand;\n};\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint16 = uncurryThis(DataView.prototype.setUint16);\n\n// `DataView.prototype.setFloat16` method\n// https://github.com/tc39/proposal-float16array\n$({ target: 'DataView', proto: true }, {\n setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {\n aDataView(this);\n var offset = toIndex(byteOffset);\n var bytes = packFloat16(+value);\n return setUint16(this, offset, bytes, arguments.length > 2 ? arguments[2] : false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint8 = uncurryThis(DataView.prototype.setUint8);\n\n// `DataView.prototype.setUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n setUint8Clamped: function setUint8Clamped(byteOffset, value) {\n aDataView(this);\n var offset = toIndex(byteOffset);\n return setUint8(this, offset, toUint8Clamped(value));\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar DISPOSE = wellKnownSymbol('dispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar DISPOSABLE_STACK = 'DisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);\n\nvar HINT = 'sync-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingDisposableStackInternalState = function (stack) {\n var internalState = getDisposableStackInternalState(stack);\n if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');\n return internalState;\n};\n\nvar $DisposableStack = function DisposableStack() {\n setInternalState(anInstance(this, DisposableStackPrototype), {\n type: DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar DisposableStackPrototype = $DisposableStack.prototype;\n\ndefineBuiltIns(DisposableStackPrototype, {\n dispose: function dispose() {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state === DISPOSED) return;\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n while (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n disposeMethod();\n } catch (errorResult) {\n if (thrown) {\n suppressed = new SuppressedError(errorResult, suppressed);\n } else {\n thrown = true;\n suppressed = errorResult;\n }\n }\n }\n internalState.stack = null;\n if (thrown) throw suppressed;\n },\n use: function use(value) {\n addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getPendingDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getPendingDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getPendingDisposableStackInternalState(this);\n var newDisposableStack = new $DisposableStack();\n getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n return newDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getDisposableStackInternalState(this).state === DISPOSED;\n }\n});\n\ndefineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });\ndefineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n DisposableStack: $DisposableStack\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof');\nvar fails = require('../internals/fails');\n\nvar ERROR = 'Error';\nvar DOM_EXCEPTION = 'DOMException';\n// eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe\nvar PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || ({}).__proto__;\n\nvar DOMException = getBuiltIn(DOM_EXCEPTION);\nvar $Error = Error;\nvar $isError = $Error.isError;\n\nvar FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {\n // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.\n // https://github.com/oven-sh/bun/issues/15821\n return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||\n // structuredClone-based implementations\n // eslint-disable-next-line es/no-error-cause -- detection\n !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||\n // instanceof-based and FF Error#stack-based implementations\n $isError(getBuiltIn('Object', 'create')($Error.prototype));\n});\n\n// `Error.isError` method\n// https://github.com/tc39/proposal-is-error\n$({ target: 'Error', stat: true, sham: true, forced: FORCED }, {\n isError: function isError(arg) {\n if (!isObject(arg)) return false;\n var tag = classof(arg);\n return tag === ERROR || tag === DOM_EXCEPTION;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.demethodize` method\n// https://github.com/js-choi/proposal-function-demethodize\n$({ target: 'Function', proto: true, forced: true }, {\n demethodize: demethodize\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar classRegExp = /^\\s*class\\b/;\nvar exec = uncurryThis(classRegExp.exec);\n\nvar isClassConstructor = function (argument) {\n try {\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n if (!DESCRIPTORS || !exec(classRegExp, inspectSource(argument))) return false;\n } catch (error) { /* empty */ }\n var prototype = getOwnPropertyDescriptor(argument, 'prototype');\n return !!prototype && hasOwn(prototype, 'writable') && !prototype.writable;\n};\n\n// `Function.isCallable` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, sham: true, forced: true }, {\n isCallable: function isCallable(argument) {\n return $isCallable(argument) && !isClassConstructor(argument);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isConstructor = require('../internals/is-constructor');\n\n// `Function.isConstructor` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, forced: true }, {\n isConstructor: isConstructor\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n defineProperty(FunctionPrototype, METADATA, {\n value: null\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.unThis` method\n// https://github.com/js-choi/proposal-function-demethodize\n// TODO: Remove from `core-js@4`\n$({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, {\n unThis: demethodize\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, {\n asIndexedPairs: indexed\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar $Array = Array;\n\nvar IteratorProxy = createIteratorProxy(function () {\n while (true) {\n var iterator = this.iterator;\n if (!iterator) {\n var iterableIndex = this.nextIterableIndex++;\n var iterables = this.iterables;\n if (iterableIndex >= iterables.length) {\n this.done = true;\n return createIterResultObject(undefined, true);\n }\n var entry = iterables[iterableIndex];\n this.iterables[iterableIndex] = null;\n iterator = this.iterator = call(entry.method, entry.iterable);\n this.next = iterator.next;\n }\n var result = anObject(call(this.next, iterator));\n if (result.done) {\n this.iterator = null;\n this.next = null;\n continue;\n }\n return result;\n }\n}, false, true);\n\n// `Iterator.concat` method\n// https://github.com/tc39/proposal-iterator-sequencing\n$({ target: 'Iterator', stat: true, forced: true }, {\n concat: function concat() {\n var length = arguments.length;\n var iterables = $Array(length);\n for (var index = 0; index < length; index++) {\n var item = anObject(arguments[index]);\n iterables[index] = {\n iterable: item,\n method: aCallable(getIteratorMethod(item))\n };\n }\n return new IteratorProxy({\n iterables: iterables,\n nextIterableIndex: 0,\n iterator: null,\n next: null\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.constructor');\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar DISPOSE = wellKnownSymbol('dispose');\n\nif (!hasOwn(IteratorPrototype, DISPOSE)) {\n defineBuiltIn(IteratorPrototype, DISPOSE, function () {\n var $return = getMethod(this, 'return');\n if ($return) call($return, this);\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.drop');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.every');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.filter');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.find');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.flat-map');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.for-each');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.from');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n indexed: indexed\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.map');\n","'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\nvar $TypeError = TypeError;\n\n// `Iterator.range` method\n// https://github.com/tc39/proposal-Number.range\n$({ target: 'Iterator', stat: true, forced: true }, {\n range: function range(start, end, option) {\n if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n if (typeof start == 'bigint') return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n throw new $TypeError('Incorrect Iterator.range arguments');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.reduce');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.some');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.take');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.to-array');\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.toAsync` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n toAsync: function toAsync() {\n return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this)))));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar isRawJSON = require('../internals/is-raw-json');\n\n// `JSON.parse` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n isRawJSON: isRawJSON\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') i = this.skip(IS_DIGIT, i + 1);\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isRawJSON = require('../internals/is-raw-json');\nvar toString = require('../internals/to-string');\nvar createProperty = require('../internals/create-property');\nvar parseJSONString = require('../internals/parse-json-string');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar uid = require('../internals/uid');\nvar setInternalState = require('../internals/internal-state').set;\n\nvar $String = String;\nvar $SyntaxError = SyntaxError;\nvar parse = getBuiltIn('JSON', 'parse');\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar create = getBuiltIn('Object', 'create');\nvar freeze = getBuiltIn('Object', 'freeze');\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\nvar ERROR_MESSAGE = 'Unacceptable as raw JSON';\n\nvar isWhitespace = function (it) {\n return it === ' ' || it === '\\t' || it === '\\n' || it === '\\r';\n};\n\n// `JSON.parse` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n rawJSON: function rawJSON(text) {\n var jsonString = toString(text);\n if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {\n throw new $SyntaxError(ERROR_MESSAGE);\n }\n var parsed = parse(jsonString);\n if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);\n var obj = create(null);\n setInternalState(obj, { type: 'RawJSON' });\n createProperty(obj, 'rawJSON', jsonString);\n return FREEZING ? freeze(obj) : obj;\n }\n});\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = $stringify(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = at(json, i);\n if (chr === '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) === MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar remove = require('../internals/map-helpers').remove;\n\n// `Map.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (!boundFunction(value, key, map)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) set(newMap, key, value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.findKey` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n findKey: function findKey(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `Map.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n$({ target: 'Map', stat: true, forced: true }, {\n from: createCollectionFrom(MapHelpers.Map, MapHelpers.set, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n aMap(this);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n // CanonicalizeKeyedCollectionKey\n if (key === 0 && 1 / key === -Infinity) key = 0;\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(aMap(this), key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.map.group-by');\n","'use strict';\nvar $ = require('../internals/export');\nvar sameValueZero = require('../internals/same-value-zero');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.includes` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n includes: function includes(searchElement) {\n return iterate(aMap(this), function (value) {\n if (sameValueZero(value, searchElement)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar isCallable = require('../internals/is-callable');\nvar aCallable = require('../internals/a-callable');\nvar Map = require('../internals/map-helpers').Map;\n\n// `Map.keyBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n keyBy: function keyBy(iterable, keyDerivative) {\n var C = isCallable(this) ? this : Map;\n var newMap = new C();\n aCallable(keyDerivative);\n var setter = aCallable(newMap.set);\n iterate(iterable, function (element) {\n call(setter, newMap, keyDerivative(element), element);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.keyOf` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n keyOf: function keyOf(searchElement) {\n var result = iterate(aMap(this), function (value, key) {\n if (value === searchElement) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapKeys` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapKeys: function mapKeys(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, boundFunction(value, key, map), value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapValues` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapValues: function mapValues(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, key, boundFunction(value, key, map));\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/iterate');\nvar set = require('../internals/map-helpers').set;\n\n// `Map.prototype.merge` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n merge: function merge(iterable /* ...iterables */) {\n var map = aMap(this);\n var argumentsLength = arguments.length;\n var i = 0;\n while (i < argumentsLength) {\n iterate(arguments[i++], function (key, value) {\n set(map, key, value);\n }, { AS_ENTRIES: true });\n }\n return map;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `Map.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n$({ target: 'Map', stat: true, forced: true }, {\n of: createCollectionOf(MapHelpers.Map, MapHelpers.set, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var map = aMap(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(map, function (value, key) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, key, map);\n }\n });\n if (noInitial) throw new $TypeError('Reduce of empty map with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return true;\n }, true) === true;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, {\n updateOrInsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar $TypeError = TypeError;\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.update` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n update: function update(key, callback /* , thunk */) {\n var map = aMap(this);\n var length = arguments.length;\n aCallable(callback);\n var isPresentInMap = has(map, key);\n if (!isPresentInMap && length < 3) {\n throw new $TypeError('Updating absent value');\n }\n var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);\n set(map, key, callback(value, key, map));\n return map;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar min = Math.min;\nvar max = Math.max;\n\n// `Math.clamp` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n clamp: function clamp(x, lower, upper) {\n return min(upper, max(lower, x));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.DEG_PER_RAD` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n DEG_PER_RAD: Math.PI / 180\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar RAD_PER_DEG = 180 / Math.PI;\n\n// `Math.degrees` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT16_EPSILON = 0.0009765625;\nvar FLOAT16_MAX_VALUE = 65504;\nvar FLOAT16_MIN_VALUE = 6.103515625e-05;\n\n// `Math.f16round` method\n// https://github.com/tc39/proposal-float16array\n$({ target: 'Math', stat: true }, {\n f16round: function f16round(x) {\n return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar scale = require('../internals/math-scale');\nvar fround = require('../internals/math-fround');\n\n// `Math.fscale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.iaddh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.imulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n imulh: function imulh(u, v) {\n var UINT16 = 0xFFFF;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.isubh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.RAD_PER_DEG` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n RAD_PER_DEG: 180 / Math.PI\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar DEG_PER_RAD = Math.PI / 180;\n\n// `Math.radians` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar scale = require('../internals/math-scale');\n\n// `Math.scale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n scale: scale\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar numberIsFinite = require('../internals/number-is-finite');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar SEEDED_RANDOM = 'Seeded Random';\nvar SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator';\nvar SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a \"seed\" field with a finite value.';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR);\nvar $TypeError = TypeError;\n\nvar $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) {\n setInternalState(this, {\n type: SEEDED_RANDOM_GENERATOR,\n seed: seed % 2147483647\n });\n}, SEEDED_RANDOM, function next() {\n var state = getInternalState(this);\n var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;\n return createIterResultObject((seed & 1073741823) / 1073741823, false);\n});\n\n// `Math.seededPRNG` method\n// https://github.com/tc39/proposal-seeded-random\n// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html\n$({ target: 'Math', stat: true, forced: true }, {\n seededPRNG: function seededPRNG(it) {\n var seed = anObject(it).seed;\n if (!numberIsFinite(seed)) throw new $TypeError(SEED_TYPE_ERROR);\n return new $SeededRandomGenerator(seed);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.signbit` method\n// https://github.com/tc39/proposal-Math.signbit\n$({ target: 'Math', stat: true, forced: true }, {\n signbit: function signbit(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === n && n === 0 ? 1 / n === -Infinity : n < 0;\n }\n});\n","'use strict';\n// based on Shewchuk's algorithm for exactly floating point addition\n// adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterate = require('../internals/iterate');\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar $Infinity = Infinity;\nvar $NaN = NaN;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar push = uncurryThis([].push);\n\nvar POW_2_1023 = pow(2, 1023);\nvar MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740992\nvar MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308\nvar MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292\n\nvar NOT_A_NUMBER = {};\nvar MINUS_INFINITY = {};\nvar PLUS_INFINITY = {};\nvar MINUS_ZERO = {};\nvar FINITE = {};\n\n// prerequisite: abs(x) >= abs(y)\nvar twosum = function (x, y) {\n var hi = x + y;\n var lo = y - (hi - x);\n return { hi: hi, lo: lo };\n};\n\n// `Math.sumPrecise` method\n// https://github.com/tc39/proposal-math-sum\n$({ target: 'Math', stat: true }, {\n // eslint-disable-next-line max-statements -- ok\n sumPrecise: function sumPrecise(items) {\n var numbers = [];\n var count = 0;\n var state = MINUS_ZERO;\n\n iterate(items, function (n) {\n if (++count >= MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');\n if (typeof n != 'number') throw new $TypeError('Value is not a number');\n if (state !== NOT_A_NUMBER) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (n !== n) state = NOT_A_NUMBER;\n else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;\n else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;\n else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {\n state = FINITE;\n push(numbers, n);\n }\n }\n });\n\n switch (state) {\n case NOT_A_NUMBER: return $NaN;\n case MINUS_INFINITY: return -$Infinity;\n case PLUS_INFINITY: return $Infinity;\n case MINUS_ZERO: return -0;\n }\n\n var partials = [];\n var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount\n var x, y, sum, hi, lo, tmp;\n\n for (var i = 0; i < numbers.length; i++) {\n x = numbers[i];\n var actuallyUsedPartials = 0;\n for (var j = 0; j < partials.length; j++) {\n y = partials[j];\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n if (abs(hi) === $Infinity) {\n var sign = hi === $Infinity ? 1 : -1;\n overflow += sign;\n\n x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n }\n if (lo !== 0) partials[actuallyUsedPartials++] = lo;\n x = hi;\n }\n partials.length = actuallyUsedPartials;\n if (x !== 0) push(partials, x);\n }\n\n // compute the exact sum of partials, stopping once we lose precision\n var n = partials.length - 1;\n hi = 0;\n lo = 0;\n\n if (overflow !== 0) {\n var next = n >= 0 ? partials[n] : 0;\n n--;\n if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {\n return overflow > 0 ? $Infinity : -$Infinity;\n }\n // here we actually have to do the arithmetic\n // drop a factor of 2 so we can do it without overflow\n // assert(abs(overflow) === 1)\n sum = twosum(overflow * POW_2_1023, next / 2);\n hi = sum.hi;\n lo = sum.lo;\n lo *= 2;\n if (abs(2 * hi) === $Infinity) {\n // rounding to the maximum value\n if (hi > 0) {\n return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;\n } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;\n }\n\n if (lo !== 0) {\n partials[++n] = lo;\n lo = 0;\n }\n\n hi *= 2;\n }\n\n while (n >= 0) {\n sum = twosum(hi, partials[n--]);\n hi = sum.hi;\n lo = sum.lo;\n if (lo !== 0) break;\n }\n\n if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y === x - hi) hi = x;\n }\n\n return hi;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.umulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n umulh: function umulh(u, v) {\n var UINT16 = 0xFFFF;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';\nvar INVALID_RADIX = 'Invalid radix';\nvar $RangeError = RangeError;\nvar $SyntaxError = SyntaxError;\nvar $TypeError = TypeError;\nvar $parseInt = parseInt;\nvar pow = Math.pow;\nvar valid = /^[\\d.a-z]+$/;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(valid.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\n\n// `Number.fromString` method\n// https://github.com/tc39/proposal-number-fromstring\n$({ target: 'Number', stat: true, forced: true }, {\n fromString: function fromString(string, radix) {\n var sign = 1;\n if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION);\n if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n if (charAt(string, 0) === '-') {\n sign = -1;\n string = stringSlice(string, 1);\n if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n }\n var R = radix === undefined ? 10 : toIntegerOrInfinity(radix);\n if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);\n if (!exec(valid, string)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n var parts = split(string, '.');\n var mathNum = $parseInt(parts[0], R);\n if (parts.length > 1) mathNum += $parseInt(parts[1], R) / pow(R, parts[1].length);\n if (R === 10 && numberToString(mathNum, R) !== string) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n return sign * mathNum;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `Number.range` method\n// https://github.com/tc39/proposal-Number.range\n// TODO: Remove from `core-js@4`\n$({ target: 'Number', stat: true, forced: true }, {\n range: function range(start, end, option) {\n return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.object.group-by');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.object.has-own');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateEntries` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateEntries: function iterateEntries(object) {\n return new ObjectIterator(object, 'entries');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateKeys` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateKeys: function iterateKeys(object) {\n return new ObjectIterator(object, 'keys');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateValues` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateValues: function iterateValues(object) {\n return new ObjectIterator(object, 'values');\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-observable\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\nvar OBSERVABLE = 'Observable';\nvar SUBSCRIPTION = 'Subscription';\nvar SUBSCRIPTION_OBSERVER = 'SubscriptionObserver';\nvar getterFor = InternalStateModule.getterFor;\nvar setInternalState = InternalStateModule.set;\nvar getObservableInternalState = getterFor(OBSERVABLE);\nvar getSubscriptionInternalState = getterFor(SUBSCRIPTION);\nvar getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);\n\nvar SubscriptionState = function (observer) {\n this.observer = anObject(observer);\n this.cleanup = null;\n this.subscriptionObserver = null;\n};\n\nSubscriptionState.prototype = {\n type: SUBSCRIPTION,\n clean: function () {\n var cleanup = this.cleanup;\n if (cleanup) {\n this.cleanup = null;\n try {\n cleanup();\n } catch (error) {\n hostReportErrors(error);\n }\n }\n },\n close: function () {\n if (!DESCRIPTORS) {\n var subscription = this.facade;\n var subscriptionObserver = this.subscriptionObserver;\n subscription.closed = true;\n if (subscriptionObserver) subscriptionObserver.closed = true;\n } this.observer = null;\n },\n isClosed: function () {\n return this.observer === null;\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n var subscriptionState = setInternalState(this, new SubscriptionState(observer));\n var start;\n if (!DESCRIPTORS) this.closed = false;\n try {\n if (start = getMethod(observer, 'start')) call(start, observer, this);\n } catch (error) {\n hostReportErrors(error);\n }\n if (subscriptionState.isClosed()) return;\n var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(subscriptionState);\n try {\n var cleanup = subscriber(subscriptionObserver);\n var subscription = cleanup;\n if (!isNullOrUndefined(cleanup)) subscriptionState.cleanup = isCallable(cleanup.unsubscribe)\n ? function () { subscription.unsubscribe(); }\n : aCallable(cleanup);\n } catch (error) {\n subscriptionObserver.error(error);\n return;\n } if (subscriptionState.isClosed()) subscriptionState.clean();\n};\n\nSubscription.prototype = defineBuiltIns({}, {\n unsubscribe: function unsubscribe() {\n var subscriptionState = getSubscriptionInternalState(this);\n if (!subscriptionState.isClosed()) {\n subscriptionState.close();\n subscriptionState.clean();\n }\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', {\n configurable: true,\n get: function closed() {\n return getSubscriptionInternalState(this).isClosed();\n }\n});\n\nvar SubscriptionObserver = function (subscriptionState) {\n setInternalState(this, {\n type: SUBSCRIPTION_OBSERVER,\n subscriptionState: subscriptionState\n });\n if (!DESCRIPTORS) this.closed = false;\n};\n\nSubscriptionObserver.prototype = defineBuiltIns({}, {\n next: function next(value) {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n try {\n var nextMethod = getMethod(observer, 'next');\n if (nextMethod) call(nextMethod, observer, value);\n } catch (error) {\n hostReportErrors(error);\n }\n }\n },\n error: function error(value) {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n subscriptionState.close();\n try {\n var errorMethod = getMethod(observer, 'error');\n if (errorMethod) call(errorMethod, observer, value);\n else hostReportErrors(value);\n } catch (err) {\n hostReportErrors(err);\n } subscriptionState.clean();\n }\n },\n complete: function complete() {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n subscriptionState.close();\n try {\n var completeMethod = getMethod(observer, 'complete');\n if (completeMethod) call(completeMethod, observer);\n } catch (error) {\n hostReportErrors(error);\n } subscriptionState.clean();\n }\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', {\n configurable: true,\n get: function closed() {\n return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, ObservablePrototype);\n setInternalState(this, {\n type: OBSERVABLE,\n subscriber: aCallable(subscriber)\n });\n};\n\nvar ObservablePrototype = $Observable.prototype;\n\ndefineBuiltIns(ObservablePrototype, {\n subscribe: function subscribe(observer) {\n var length = arguments.length;\n return new Subscription(isCallable(observer) ? {\n next: observer,\n error: length > 1 ? arguments[1] : undefined,\n complete: length > 2 ? arguments[2] : undefined\n } : isObject(observer) ? observer : {}, getObservableInternalState(this).subscriber);\n }\n});\n\ndefineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });\n\n$({ global: true, constructor: true, forced: true }, {\n Observable: $Observable\n});\n\nsetSpecies(OBSERVABLE);\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getIterator = require('../internals/get-iterator');\nvar getMethod = require('../internals/get-method');\nvar iterate = require('../internals/iterate');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\n\n// `Observable.from` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n from: function from(x) {\n var C = isConstructor(this) ? this : getBuiltIn('Observable');\n var observableMethod = getMethod(anObject(x), $$OBSERVABLE);\n if (observableMethod) {\n var observable = anObject(call(observableMethod, x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n var iterator = getIterator(x);\n return new C(function (observer) {\n iterate(iterator, function (it, stop) {\n observer.next(it);\n if (observer.closed) return stop();\n }, { IS_ITERATOR: true, INTERRUPTED: true });\n observer.complete();\n });\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/esnext.observable.constructor');\nrequire('../modules/esnext.observable.from');\nrequire('../modules/esnext.observable.of');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isConstructor = require('../internals/is-constructor');\n\nvar Array = getBuiltIn('Array');\n\n// `Observable.of` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n of: function of() {\n var C = isConstructor(this) ? this : getBuiltIn('Observable');\n var length = arguments.length;\n var items = Array(length);\n var index = 0;\n while (index < length) items[index] = arguments[index++];\n return new C(function (observer) {\n for (var i = 0; i < length; i++) {\n observer.next(items[i]);\n if (observer.closed) return;\n } observer.complete();\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.any');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.try.js');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.with-resolvers');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.defineMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) {\n var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]);\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar getOrCreateMetadataMap = ReflectMetadataModule.getMap;\nvar store = ReflectMetadataModule.store;\n\n// `Reflect.deleteMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\nvar concat = uncurryThis([].concat);\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? arrayUniqueBy(concat(oKeys, pKeys)) : pKeys : oKeys;\n};\n\n// `Reflect.getMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n return ordinaryMetadataKeys(anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\n// `Reflect.getMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryGetMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n return ordinaryOwnMetadataKeys(anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\n// `Reflect.hasMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.hasOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.metadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, key) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key));\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar padStart = require('../internals/string-pad').start;\nvar WHITESPACES = require('../internals/whitespaces');\n\nvar $Array = Array;\n// eslint-disable-next-line es/no-nonstandard-regexp-properties -- safe\nvar $escape = RegExp.escape;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;\nvar SYNTAX_SOLIDUS = /^[$()*+./?[\\\\\\]^{|}]/;\nvar OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!\"#%&\\',\\\\-:;<=>@`~' + WHITESPACES + ']');\nvar exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);\n\nvar ControlEscape = {\n '\\u0009': 't',\n '\\u000A': 'n',\n '\\u000B': 'v',\n '\\u000C': 'f',\n '\\u000D': 'r'\n};\n\nvar escapeChar = function (chr) {\n var hex = numberToString(charCodeAt(chr, 0), 16);\n return hex.length < 3 ? '\\\\x' + padStart(hex, 2, '0') : '\\\\u' + padStart(hex, 4, '0');\n};\n\n// Avoiding the use of polyfills of the previous iteration of this proposal\nvar FORCED = !$escape || $escape('ab') !== '\\\\x61b';\n\n// `RegExp.escape` method\n// https://github.com/tc39/proposal-regex-escaping\n$({ target: 'RegExp', stat: true, forced: FORCED }, {\n escape: function escape(S) {\n aString(S);\n var length = S.length;\n var result = $Array(length);\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(S, i);\n if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {\n result[i] = escapeChar(chr);\n } else if (hasOwn(ControlEscape, chr)) {\n result[i] = '\\\\' + ControlEscape[chr];\n } else if (exec(SYNTAX_SOLIDUS, chr)) {\n result[i] = '\\\\' + chr;\n } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {\n result[i] = escapeChar(chr);\n } else {\n var charCode = charCodeAt(chr, 0);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) result[i] = chr;\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);\n // surrogate pair\n else {\n result[i] = chr;\n result[++i] = charAt(S, i);\n }\n }\n }\n\n return join(result, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\n\n// `Set.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar remove = require('../internals/set-helpers').remove;\n\n// `Set.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $difference = require('../internals/set-difference');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n difference: function difference(other) {\n return call($difference, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.difference.v2');\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (!boundFunction(value, value, set)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n if (boundFunction(value, value, set)) add(newSet, value);\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(set, function (value) {\n if (boundFunction(value, value, set)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar SetHelpers = require('../internals/set-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `Set.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n$({ target: 'Set', stat: true, forced: true }, {\n from: createCollectionFrom(SetHelpers.Set, SetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $intersection = require('../internals/set-intersection');\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n intersection: function intersection(other) {\n return call($intersection, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.intersection.v2');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isDisjointFrom = require('../internals/set-is-disjoint-from');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isDisjointFrom: function isDisjointFrom(other) {\n return call($isDisjointFrom, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.is-disjoint-from.v2');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSubsetOf = require('../internals/set-is-subset-of');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSubsetOf: function isSubsetOf(other) {\n return call($isSubsetOf, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.is-subset-of.v2');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSupersetOf = require('../internals/set-is-superset-of');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSupersetOf: function isSupersetOf(other) {\n return call($isSupersetOf, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.is-superset-of.v2');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\nvar toString = require('../internals/to-string');\n\nvar arrayJoin = uncurryThis([].join);\nvar push = uncurryThis([].push);\n\n// `Set.prototype.join` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n join: function join(separator) {\n var set = aSet(this);\n var sep = separator === undefined ? ',' : toString(separator);\n var array = [];\n iterate(set, function (value) {\n push(array, value);\n });\n return arrayJoin(array, sep);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.map` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n map: function map(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n add(newSet, boundFunction(value, value, set));\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar SetHelpers = require('../internals/set-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `Set.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n$({ target: 'Set', stat: true, forced: true }, {\n of: createCollectionOf(SetHelpers.Set, SetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\nvar $TypeError = TypeError;\n\n// `Set.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var set = aSet(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(set, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, value, set);\n }\n });\n if (noInitial) throw new $TypeError('Reduce of empty set with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (boundFunction(value, value, set)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $symmetricDifference = require('../internals/set-symmetric-difference');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n symmetricDifference: function symmetricDifference(other) {\n return call($symmetricDifference, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.symmetric-difference.v2');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $union = require('../internals/set-union');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n union: function union(other) {\n return call($union, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.set.union.v2');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar StringMultibyteModule = require('../internals/string-multibyte');\n\nvar codeAt = StringMultibyteModule.codeAt;\nvar charAt = StringMultibyteModule.charAt;\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// TODO: unify with String#@@iterator\nvar $StringIterator = createIteratorConstructor(function StringIterator(string) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: string,\n index: 0\n });\n}, 'String', function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject({ codePoint: codeAt(point, 0), position: index }, false);\n});\n\n// `String.prototype.codePoints` method\n// https://github.com/tc39/proposal-string-prototype-codepoints\n$({ target: 'String', proto: true, forced: true }, {\n codePoints: function codePoints() {\n return new $StringIterator(toString(requireObjectCoercible(this)));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar cooked = require('../internals/string-cooked');\n\n// `String.cooked` method\n// https://github.com/tc39/proposal-string-cooked\n$({ target: 'String', stat: true, forced: true }, {\n cooked: cooked\n});\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar $ = require('../internals/export');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar apply = require('../internals/function-apply');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar isCallable = require('../internals/is-callable');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createArrayFromList = require('../internals/array-slice');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar cooked = require('../internals/string-cooked');\nvar parse = require('../internals/string-parse');\nvar whitespaces = require('../internals/whitespaces');\n\nvar DedentMap = new WeakMapHelpers.WeakMap();\nvar weakMapGet = WeakMapHelpers.get;\nvar weakMapHas = WeakMapHelpers.has;\nvar weakMapSet = WeakMapHelpers.set;\n\nvar $Array = Array;\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = Object.freeze || Object;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\nvar min = Math.min;\nvar charAt = uncurryThis(''.charAt);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\nvar exec = uncurryThis(/./.exec);\n\nvar NEW_LINE = /([\\n\\u2028\\u2029]|\\r\\n?)/g;\nvar LEADING_WHITESPACE = RegExp('^[' + whitespaces + ']*');\nvar NON_WHITESPACE = RegExp('[^' + whitespaces + ']');\nvar INVALID_TAG = 'Invalid tag';\nvar INVALID_OPENING_LINE = 'Invalid opening line';\nvar INVALID_CLOSING_LINE = 'Invalid closing line';\n\nvar dedentTemplateStringsArray = function (template) {\n var rawInput = template.raw;\n // https://github.com/tc39/proposal-string-dedent/issues/75\n if (FREEZING && !isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen');\n if (weakMapHas(DedentMap, rawInput)) return weakMapGet(DedentMap, rawInput);\n var raw = dedentStringsArray(rawInput);\n var cookedArr = cookStrings(raw);\n defineProperty(cookedArr, 'raw', {\n value: freeze(raw)\n });\n freeze(cookedArr);\n weakMapSet(DedentMap, rawInput, cookedArr);\n return cookedArr;\n};\n\nvar dedentStringsArray = function (template) {\n var t = toObject(template);\n var length = lengthOfArrayLike(t);\n var blocks = $Array(length);\n var dedented = $Array(length);\n var i = 0;\n var lines, common, quasi, k;\n\n if (!length) throw new $TypeError(INVALID_TAG);\n\n for (; i < length; i++) {\n var element = t[i];\n if (typeof element == 'string') blocks[i] = split(element, NEW_LINE);\n else throw new $TypeError(INVALID_TAG);\n }\n\n for (i = 0; i < length; i++) {\n var lastSplit = i + 1 === length;\n lines = blocks[i];\n if (i === 0) {\n if (lines.length === 1 || lines[0].length > 0) {\n throw new $TypeError(INVALID_OPENING_LINE);\n }\n lines[1] = '';\n }\n if (lastSplit) {\n if (lines.length === 1 || exec(NON_WHITESPACE, lines[lines.length - 1])) {\n throw new $TypeError(INVALID_CLOSING_LINE);\n }\n lines[lines.length - 2] = '';\n lines[lines.length - 1] = '';\n }\n // eslint-disable-next-line sonarjs/no-redundant-assignments -- false positive, https://github.com/SonarSource/SonarJS/issues/4767\n for (var j = 2; j < lines.length; j += 2) {\n var text = lines[j];\n var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;\n var leading = exec(LEADING_WHITESPACE, text)[0];\n if (!lineContainsTemplateExpression && leading.length === text.length) {\n lines[j] = '';\n continue;\n }\n common = commonLeadingIndentation(leading, common);\n }\n }\n\n var count = common ? common.length : 0;\n\n for (i = 0; i < length; i++) {\n lines = blocks[i];\n quasi = lines[0];\n k = 1;\n for (; k < lines.length; k += 2) {\n quasi += lines[k] + stringSlice(lines[k + 1], count);\n }\n dedented[i] = quasi;\n }\n\n return dedented;\n};\n\nvar commonLeadingIndentation = function (a, b) {\n if (b === undefined || a === b) return a;\n var i = 0;\n for (var len = min(a.length, b.length); i < len; i++) {\n if (charAt(a, i) !== charAt(b, i)) break;\n }\n return stringSlice(a, 0, i);\n};\n\nvar cookStrings = function (raw) {\n var i = 0;\n var length = raw.length;\n var result = $Array(length);\n for (; i < length; i++) {\n result[i] = parse(raw[i]);\n } return result;\n};\n\nvar makeDedentTag = function (tag) {\n return makeBuiltIn(function (template /* , ...substitutions */) {\n var args = createArrayFromList(arguments);\n args[0] = dedentTemplateStringsArray(anObject(template));\n return apply(tag, this, args);\n }, '');\n};\n\nvar cookedDedentTag = makeDedentTag(cooked);\n\n// `String.dedent` method\n// https://github.com/tc39/proposal-string-dedent\n$({ target: 'String', stat: true, forced: true }, {\n dedent: function dedent(templateOrFn /* , ...substitutions */) {\n anObject(templateOrFn);\n if (isCallable(templateOrFn)) return makeDedentTag(templateOrFn);\n return apply(cookedDedentTag, this, arguments);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.is-well-formed');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.match-all');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.to-well-formed');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorStack = require('../internals/error-stack-install');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar fails = require('../internals/fails');\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativeSuppressedError = globalThis.SuppressedError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\n\n// https://github.com/oven-sh/bun/issues/9282\nvar WRONG_ARITY = !!NativeSuppressedError && NativeSuppressedError.length !== 3;\n\n// https://github.com/oven-sh/bun/issues/9283\nvar EXTRA_ARGS_SUPPORT = !!NativeSuppressedError && fails(function () {\n return new NativeSuppressedError(1, 2, 3, { cause: 4 }).cause === 4;\n});\n\nvar PATCH = WRONG_ARITY || EXTRA_ARGS_SUPPORT;\n\nvar $SuppressedError = function SuppressedError(error, suppressed, message) {\n var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = PATCH && (!isInstance || getPrototypeOf(this) === SuppressedErrorPrototype)\n ? new NativeSuppressedError()\n : setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);\n } else {\n that = isInstance ? this : create(SuppressedErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $SuppressedError, that.stack, 1);\n createNonEnumerableProperty(that, 'error', error);\n createNonEnumerableProperty(that, 'suppressed', suppressed);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($SuppressedError, $Error);\nelse copyConstructorProperties($SuppressedError, $Error, { name: true });\n\nvar SuppressedErrorPrototype = $SuppressedError.prototype = PATCH ? NativeSuppressedError.prototype : create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $SuppressedError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'SuppressedError')\n});\n\nif (PATCH && !IS_PURE) SuppressedErrorPrototype.constructor = $SuppressedError;\n\n// `SuppressedError` constructor\n// https://github.com/tc39/proposal-explicit-resource-management\n$({ global: true, constructor: true, arity: 3, forced: PATCH }, {\n SuppressedError: $SuppressedError\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.customMatcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('customMatcher');\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = globalThis.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.at');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSameTypeAndList(this, list);\n}, true);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSameTypeAndList(this, list);\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.find-last-index');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.find-last');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar arrayFromAsync = require('../internals/array-from-async');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\nexportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n aConstructor(C);\n resolve(arrayFromAsync(asyncItems, mapfn, thisArg));\n }).then(function (list) {\n return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);\n });\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $group = require('../internals/array-group');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\nexportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(aTypedArray(this), callbackfn, thisArg, getTypedArrayConstructor);\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.to-reversed');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.to-sorted');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toBigInt = require('../internals/to-big-int');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar max = Math.max;\nvar min = Math.min;\n\n// `%TypedArray%.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced\nexportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {\n var O = aTypedArray(this);\n var C = getTypedArrayConstructor(O);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n insertCount = argumentsLength - 2;\n if (insertCount) {\n convertedItems = new C(insertCount);\n thisIsBigIntArray = isBigIntArray(convertedItems);\n for (var i = 2; i < argumentsLength; i++) {\n value = arguments[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n }\n }\n newLen = len + insertCount - actualDeleteCount;\n A = new C(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n}, true);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\n\n// `%TypedArray%.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nexportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {\n aTypedArray(this);\n return arrayFromConstructorAndList(getTypedArrayConstructor(this), arrayUniqueBy(this, resolver));\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.typed-array.with');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $fromBase64 = require('../internals/uint8-from-base64');\n\nvar Uint8Array = globalThis.Uint8Array;\n\n// `Uint8Array.fromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true }, {\n fromBase64: function fromBase64(string /* , options */) {\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);\n return arrayFromConstructorAndList(Uint8Array, result.bytes);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// `Uint8Array.fromHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, {\n fromHex: function fromHex(string) {\n return $fromHex(aString(string)).bytes;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar $fromBase64 = require('../internals/uint8-from-base64');\nvar anUint8Array = require('../internals/an-uint8-array');\n\nvar Uint8Array = globalThis.Uint8Array;\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true }, {\n setFromBase64: function setFromBase64(string /* , options */) {\n anUint8Array(this);\n\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n return { read: result.read, written: result.written };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// `Uint8Array.prototype.setFromHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, {\n setFromHex: function setFromHex(string) {\n anUint8Array(this);\n aString(string);\n notDetached(this.buffer);\n var read = $fromHex(string, this).read;\n return { read: read, written: read / 2 };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\n// `Uint8Array.prototype.toBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, {\n toBase64: function toBase64(/* options */) {\n var array = anUint8Array(this);\n var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var omitPadding = !!options && !!options.omitPadding;\n notDetached(this.buffer);\n\n var result = '';\n var i = 0;\n var length = array.length;\n var triplet;\n\n var at = function (shift) {\n return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n };\n\n for (; i + 2 < length; i += 3) {\n triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n result += at(3) + at(2) + at(1) + at(0);\n }\n if (i + 2 === length) {\n triplet = (array[i] << 16) + (array[i + 1] << 8);\n result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n } else if (i + 1 === length) {\n triplet = array[i] << 16;\n result += at(3) + at(2) + (omitPadding ? '' : '==');\n }\n\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar numberToString = uncurryThis(1.0.toString);\n\n// `Uint8Array.prototype.toHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, {\n toHex: function toHex() {\n anUint8Array(this);\n notDetached(this.buffer);\n var result = '';\n for (var i = 0, length = this.length; i < length; i++) {\n var hex = numberToString(this[i], 16);\n result += hex.length === 1 ? '0' + hex : hex;\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar remove = require('../internals/weak-map-helpers').remove;\n\n// `WeakMap.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aWeakMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aWeakMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `WeakMap.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\n$({ target: 'WeakMap', stat: true, forced: true }, {\n from: createCollectionFrom(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n aWeakMap(this);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n set(this, key); // key validation\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(aWeakMap(this), key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `WeakMap.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\n$({ target: 'WeakMap', stat: true, forced: true }, {\n of: createCollectionOf(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`)\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar add = require('../internals/weak-set-helpers').add;\n\n// `WeakSet.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aWeakSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar remove = require('../internals/weak-set-helpers').remove;\n\n// `WeakSet.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aWeakSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakSetHelpers = require('../internals/weak-set-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `WeakSet.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\n$({ target: 'WeakSet', stat: true, forced: true }, {\n from: createCollectionFrom(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakSetHelpers = require('../internals/weak-set-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `WeakSet.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\n$({ target: 'WeakSet', stat: true, forced: true }, {\n of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar c2i = require('../internals/base64-map').c2i;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]{1,2}$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar BASIC = !!$atob && !fails(function () {\n return $atob('aGk=') !== 'hi';\n});\n\nvar NO_SPACES_IGNORE = BASIC && fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = BASIC && !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = BASIC && $atob.length !== 1;\n\nvar FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, globalThis, data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var length, chr, bs;\n if (string.length % 4 === 0) {\n string = replace(string, finalEq, '');\n }\n length = string.length;\n if (length % 4 === 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (position < length) {\n chr = charAt(string, position++);\n bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n } return output;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar i2c = require('../internals/base64-map').i2c;\n\nvar $btoa = getBuiltIn('btoa');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar BASIC = !!$btoa && !fails(function () {\n return $btoa('hi') !== 'aGk=';\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $btoa();\n});\n\nvar WRONG_ARG_CONVERSION = BASIC && fails(function () {\n return $btoa(null) !== 'bnVsbA==';\n});\n\nvar WRONG_ARITY = BASIC && $btoa.length !== 1;\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, {\n btoa: function btoa(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC) return call($btoa, globalThis, toString(data));\n var string = toString(data);\n var output = '';\n var position = 0;\n var map = i2c;\n var block, charCode;\n while (charAt(string, position) || (map = '=', position % 1)) {\n charCode = charCodeAt(string, position += 3 / 4);\n if (charCode > 0xFF) {\n throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n }\n block = block << 8 | charCode;\n output += charAt(map, 63 & block >> 8 - position % 1 * 8);\n } return output;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || getBuiltInNodeModule('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n // `DOMException.prototype.code` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n // `DOMException.prototype.message` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n // `DOMException.prototype.name` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar fails = require('../internals/fails');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9249\nvar WRONG_ARITY = fails(function () {\n // getOwnPropertyDescriptor for prevent experimental warning in Node 11\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1;\n});\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, {\n queueMicrotask: function queueMicrotask(fn) {\n validateArgumentsLength(arguments.length, 1);\n microtask(aCallable(fn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = globalThis.self !== globalThis;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n if (DESCRIPTORS) {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self');\n // some engines have `self`, but with incorrect descriptor\n // https://github.com/denoland/deno/issues/15765\n if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n defineBuiltInAccessor(globalThis, 'self', {\n get: function self() {\n return globalThis;\n },\n set: function self(value) {\n if (this !== globalThis) throw new $TypeError('Illegal invocation');\n defineProperty(globalThis, 'self', {\n value: value,\n writable: true,\n configurable: true,\n enumerable: true\n });\n },\n configurable: true,\n enumerable: true\n });\n }\n } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n self: globalThis\n });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(globalThis.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(globalThis.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = globalThis.Object;\nvar Array = globalThis.Array;\nvar Date = globalThis.Date;\nvar Error = globalThis.Error;\nvar TypeError = globalThis.TypeError;\nvar PerformanceMark = globalThis.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new globalThis.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new globalThis.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = globalThis.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new globalThis.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new globalThis.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n if (mapHas(map, value)) return mapGet(map, value);\n\n var type = $type || classof(value);\n var clone, length, options, source, target, i;\n\n if (type === 'SharedArrayBuffer') {\n if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n else clone = value;\n } else {\n var DataView = globalThis.DataView;\n\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (isCallable(value.slice) && !value.resizable) {\n clone = value.slice(0);\n } else {\n length = value.byteLength;\n options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n clone = new ArrayBuffer(length, options);\n source = new DataView(value);\n target = new DataView(clone);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n }\n\n mapSet(map, value, clone);\n\n return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n var C = globalThis[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var C, name, cloned, dataTransfer, i, length, keys, key;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n break;\n case 'Object':\n cloned = {};\n break;\n case 'Map':\n cloned = new Map();\n break;\n case 'Set':\n cloned = new Set();\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = new (getBuiltIn(name))([]);\n break;\n case 'EvalError':\n case 'RangeError':\n case 'ReferenceError':\n case 'SuppressedError':\n case 'SyntaxError':\n case 'TypeError':\n case 'URIError':\n cloned = new (getBuiltIn(name))();\n break;\n case 'CompileError':\n case 'LinkError':\n case 'RuntimeError':\n cloned = new (getBuiltIn('WebAssembly', name))();\n break;\n default:\n cloned = new Error();\n }\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n break;\n case 'ArrayBuffer':\n case 'SharedArrayBuffer':\n cloned = cloneBuffer(value, map, type);\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float16Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n length = type === 'DataView' ? value.byteLength : value.length;\n cloned = cloneView(value, type, value.byteOffset, length, map);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n }\n break;\n case 'File':\n if (nativeRestrictedStructuredClone) try {\n cloned = nativeRestrictedStructuredClone(value);\n // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n if (classof(cloned) !== type) cloned = undefined;\n } catch (error) { /* empty */ }\n if (!cloned) try {\n cloned = new File([value], value.name, value);\n } catch (error) { /* empty */ }\n if (!cloned) throwUnpolyfillable(type);\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else cloned = tryNativeRestrictedStructuredClone(value, type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name === 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } else if (name === 'SuppressedError') {\n cloned.error = structuredCloneInternal(value.error, map);\n cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var buffers = new Set();\n var value, type, C, transferred, canvas, context;\n\n while (i < length) {\n value = transfer[i++];\n\n type = classof(value);\n\n if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n }\n\n if (type === 'ArrayBuffer') {\n setAdd(buffers, value);\n continue;\n }\n\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n transferred = nativeStructuredClone(value, { transfer: [value] });\n } else switch (type) {\n case 'ImageBitmap':\n C = globalThis.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'MIDIAccess':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'RTCDataChannel':\n case 'TransformStream':\n case 'WebTransportReceiveStream':\n case 'WebTransportSendStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n mapSet(map, value, transferred);\n }\n\n return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n setIterate(buffers, function (buffer) {\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n nativeRestrictedStructuredClone(buffer, { transfer: [buffer] });\n } else if (isCallable(buffer.transfer)) {\n buffer.transfer();\n } else if (detachTransferable) {\n detachTransferable(buffer);\n } else {\n throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n }\n });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map, buffers;\n\n if (transfer !== undefined) {\n map = new Map();\n buffers = tryToTransfer(transfer, map);\n }\n\n var clone = structuredCloneInternal(value, map);\n\n // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n // https://github.com/zloirock/core-js/issues/1265\n if (buffers) detachBuffers(buffers);\n\n return clone;\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.from-code-point');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar TypeError = globalThis.TypeError;\nvar encodeURIComponent = globalThis.encodeURIComponent;\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar $parseInt = parseInt;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar plus = /\\+/g;\nvar FALLBACK_REPLACER = '\\uFFFD';\nvar VALID_HEX = /^[0-9a-f]+$/i;\n\nvar parseHexOctet = function (string, start) {\n var substr = stringSlice(string, start, start + 2);\n if (!exec(VALID_HEX, substr)) return NaN;\n\n return $parseInt(substr, 16);\n};\n\nvar getLeadingOnes = function (octet) {\n var count = 0;\n for (var mask = 0x80; mask > 0 && (octet & mask) !== 0; mask >>= 1) {\n count++;\n }\n return count;\n};\n\nvar utf8Decode = function (octets) {\n var codePoint = null;\n\n switch (octets.length) {\n case 1:\n codePoint = octets[0];\n break;\n case 2:\n codePoint = (octets[0] & 0x1F) << 6 | (octets[1] & 0x3F);\n break;\n case 3:\n codePoint = (octets[0] & 0x0F) << 12 | (octets[1] & 0x3F) << 6 | (octets[2] & 0x3F);\n break;\n case 4:\n codePoint = (octets[0] & 0x07) << 18 | (octets[1] & 0x3F) << 12 | (octets[2] & 0x3F) << 6 | (octets[3] & 0x3F);\n break;\n }\n\n return codePoint > 0x10FFFF ? null : codePoint;\n};\n\nvar decode = function (input) {\n input = replace(input, plus, ' ');\n var length = input.length;\n var result = '';\n var i = 0;\n\n while (i < length) {\n var decodedChar = charAt(input, i);\n\n if (decodedChar === '%') {\n if (charAt(input, i + 1) === '%' || i + 3 > length) {\n result += '%';\n i++;\n continue;\n }\n\n var octet = parseHexOctet(input, i + 1);\n\n // eslint-disable-next-line no-self-compare -- NaN check\n if (octet !== octet) {\n result += decodedChar;\n i++;\n continue;\n }\n\n i += 2;\n var byteSequenceLength = getLeadingOnes(octet);\n\n if (byteSequenceLength === 0) {\n decodedChar = fromCharCode(octet);\n } else {\n if (byteSequenceLength === 1 || byteSequenceLength > 4) {\n result += FALLBACK_REPLACER;\n i++;\n continue;\n }\n\n var octets = [octet];\n var sequenceIndex = 1;\n\n while (sequenceIndex < byteSequenceLength) {\n i++;\n if (i + 3 > length || charAt(input, i) !== '%') break;\n\n var nextByte = parseHexOctet(input, i + 1);\n\n // eslint-disable-next-line no-self-compare -- NaN check\n if (nextByte !== nextByte) {\n i += 3;\n break;\n }\n if (nextByte > 191 || nextByte < 128) break;\n\n push(octets, nextByte);\n i += 2;\n sequenceIndex++;\n }\n\n if (octets.length !== byteSequenceLength) {\n result += FALLBACK_REPLACER;\n continue;\n }\n\n var codePoint = utf8Decode(octets);\n if (codePoint === null) {\n result += FALLBACK_REPLACER;\n } else {\n decodedChar = fromCodePoint(codePoint);\n }\n }\n }\n\n result += decodedChar;\n i++;\n }\n\n return result;\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n target: getInternalParamsState(params).entries,\n index: 0,\n kind: kind\n });\n}, URL_SEARCH_PARAMS, function next() {\n var state = getInternalIteratorState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n var entry = target[index];\n switch (state.kind) {\n case 'keys': return createIterResultObject(entry.key, false);\n case 'values': return createIterResultObject(entry.value, false);\n } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var entries = this.entries;\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var entries = this.entries;\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(entries, {\n key: decode(shift(entry)),\n value: decode(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n URL.canParse();\n});\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9250\nvar WRONG_ARITY = fails(function () {\n return URL.canParse.length !== 1;\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, {\n canParse: function canParse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return !!new URL(urlString, base);\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar globalThis = require('../internals/global-this');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = globalThis.URL;\nvar TypeError = globalThis.TypeError;\nvar parseInt = globalThis.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n return currLength > maxLength ? currStart : maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n }\n return join(result, '.');\n }\n\n // ipv6\n if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n }\n\n return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n"],"names":["addDays","date","days","result","Date","getTime","setDate","getDate","addWeeks","weeks","DaysInOneWeek","addMonths","months","newMonth","getMonth","setMonth","MonthInOneYear","addYears","years","setFullYear","getFullYear","getMonthStart","getMonthEnd","getYearStart","getYearEnd","month","compareDates","date1","date2","compareDatePart","getDatePartHashValue","getDateRangeArray","dateRangeType","firstDayOfWeek","workWeekDays","daysToSelectInDayView","startDate","datesArray","Array","endDate","Monday","Tuesday","Wednesday","Thursday","Friday","Math","max","Day","getDatePart","Week","WorkWeek","getStartDateOfWeek","Month","Error","nextDate","indexOf","getDay","push","isInDateRangeArray","dateRange","_i","dateRange_1","length","getWeekNumbersInMonth","weeksInMonth","firstWeekOfYear","navigatedDate","selectedYear","selectedMonth","dayOfMonth","fistDayOfMonth","endOfFirstWeek","dateWeekDay","Sunday","adjustWeekDay","endOfWeekRange","weeksArray","i","getWeekNumber","FirstFullWeek","getWeekOfYearFullDays","FirstFourDayWeek","num","getDayOfYear","num3","floor","getFirstDayWeekOfYear","daysOffset","getEndDateOfWeek","numberOfFullDays","dayOfYear","daysInYear","December","num2","year","daysUntilDate","daysInMonth","DayOfWeek","MonthOfYear","FirstWeekOfYear","DateRangeType","DAYS_IN_WEEK","MillisecondsInOneDay","MillisecondsIn1Sec","MillisecondsIn1Min","MillisecondsIn30Mins","MillisecondsIn1Hour","MinutesInOneDay","MinutesInOneHour","elementContains","parent","child","allowVirtualParents","isContained","nextParent","contains","elementContainsAttribute","element","attribute","elementMatch","testElement","hasAttribute","getAttribute","findElementRecursive","matchFunction","document","body","getChildren","allowVirtualChildren","children","item","apply","_virtual","getParent","parentNode","getVirtualParent","isVirtualElement","portalContainsElement","target","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","setAttribute","setVirtualParent","virtualChild","virtualParent","oldParent","index","splice","undefined","getSlots","state","slotNames","slots","root","as","slotProps","slotNames_1","name_1","slotDefinition","_a","slotAs","isSlotPrimitive","isSlotEmpty","nullRender","__spreadArrays","s","il","arguments","r","k","a","j","jl","focusZoneStyles","extendStatics","d","b","Object","setPrototypeOf","__proto__","p","hasOwnProperty","__assign","assign","t","n","prototype","call","this","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","raiseClickFromKeyboardEvent","ev","_b","_c","_d","_e","_f","event","MouseEvent","ctrlKey","metaKey","shiftKey","altKey","bubbles","cancelable","createEvent","initMouseEvent","window","dispatchEvent","_allInstances","_outerZones","Set","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","_super","props","_this","_root","_mergedRef","createMergedRef","_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","KeyCodes","space","_tryInvokeClickForFocusable","left","vertical","_preventDefaultWhenHandled","_moveFocusLeft","right","_moveFocusRight","up","horizontal","_moveFocusUp","down","_moveFocusDown","pageDown","_moveFocusPaging","pageUp","tab","allowTabKey","handleTabKey","all","inputOnly","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","home","_isContentEditableElement","_shouldInputLoseFocus","end","lastChild","enter","preventDefault","_getHorizontalDistanceFromCenter","isForward","activeRect","targetRect","leftAlignment","_focusAlignment","x","targetRectTop","top","activeRectBottom","bottom","targetRectBottom","activeRectTop","width","abs","initializeComponentRef","_id","getId","__","constructor","create","__extends","getOuterZones","size","_onKeyDownCapture","forEach","zone","componentDidMount","_windowElement","getWindow","nodeType","add","addEventListener","querySelector","defaultActiveElement","shouldFocusOnMount","componentDidUpdate","doc","_lastIndexPath","preventFocusRestoration","elementToFocus","componentWillUnmount","delete","removeEventListener","_defaultFocusElement","render","tag","elementType","rootProps","ariaDescribedBy","ariaLabelledBy","className","divProps","Tag","_evaluateFocusBeforeRender","css","mergeStyles","selectors","outline","ref","elementRef","onMouseDownCapture","forceIntoFirstElement","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","point","focusedElement","shouldRestoreFocus","isParked","_isParked","allowFocusRoot","_parkedTabIndex","removeAttribute","previousActiveElement","tabIndex","preventDefaultWhenHandled","targetElement","shouldRaiseClicks","tagName","rootElement","firstElementChild","match","nextElementSibling","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","getBoundingClientRect","elementDistance","isCircularNavigation","lastElementChild","targetTop","distance","shouldWrap","parseFloat","toFixed","scrollableParent","targetBottom","pagesize","clientHeight","isHorizontal","isVertical","rect","top_1","height","childNodes","childIndex","toLowerCase","type","selectionStart","isRangeSelected","selectionEnd","inputValue","value","isReadonly","readOnly","shouldInputLoseFocusOnArrowKey","noWrapDataAttribute","checkForNoWrap","getDocument","defaultProps","FocusZoneDirection","FocusZoneTabbableElements","none","defaultDocument","StylesheetContext","registerStyles","sheets","context","styleCache","isArray","sheetsToRender","cacheKey","targetStylesheets","get","Map","set","sheets_1","sheet","has","renderStyles","styleElement","createElement","textContent","join","head","appendChild","WeakMap","ThemeContext","tokensToStyleObject","tokens","prefix","style","hasCheckedObject","keys","varName","varValue","useThemeProviderStyles","makeStyles","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","color","contentColor","background","fontFamily","fontWeight","fontSize","MozOsxFontSmoothing","mozOsxFontSmoothing","WebkitFontSmoothing","webkitFontSmoothing","mergeProps","options","deepMerge","propSets","propSets_1","propName","propValue","makeMergeProps","ThemeProvider","rootRef","useMergedRefs","useThemeProviderState","useThemeProvider","renderer","mergeStylesRenderer","applyTo","stylesheets","classes","classesToApply","applyToBody","classesToApply_1","classToApply","classList","classesToApply_2","remove","useApplyClassToBody","useThemeProviderClasses","useFocusRects","displayName","getTokens","userTokens","fonts","palette","semanticColors","bodyBackground","bodyText","brand","primaryButtonBackground","borderColor","primaryButtonBorder","primaryButtonText","iconColor","white","dividerColor","secondaryContentColor","hovered","primaryButtonBackgroundHovered","primaryButtonTextHovered","pressed","primaryButtonBackgroundPressed","primaryButtonTextPressed","focused","primaryButtonBackgroundDisabled","buttonTextDisabled","neutralTertiaryAlt","checked","checkedHovered","medium","text","variant","caption","lineHeight","subHeadline","headline","title3","title2","title1","largeTitle","display","graphGet","graphNode","path_1","key","graphSet","styleOrFunction","graph","win","contextualTheme","contextualRenderer","id","isStyleFunction","styles","targetWindow","rtl","renderThemeProvider","customizerContext","Provider","_seed","reset","getInstance","onReset","styleSet","renderFontFace","fontFace","renderKeyframes","keyframes","StyleRendererContext","useStyleRenderer","useTheme","useContext","legacyTheme","themeToIdMap","draftState","userTheme","parentTheme","mergedTheme","themes","ids","themes_1","getThemeId","customizations","inCustomizerContext","settings","scopedSettings","components","dir","WindowContext","useWindow","useDocument","WindowProvider","packagesCache","_win","e","setVersion","packageName","packageVersion","packages","__packages__","FluentTheme","DefaultPalette","themeDarker","themeDark","themeDarkAlt","themePrimary","themeSecondary","themeTertiary","themeLight","themeLighter","themeLighterAlt","black","blackTranslucent40","neutralDark","neutralPrimary","neutralPrimaryAlt","neutralSecondary","neutralSecondaryAlt","neutralTertiary","neutralQuaternary","neutralQuaternaryAlt","neutralLight","neutralLighter","neutralLighterAlt","accent","whiteTranslucent40","yellowDark","yellow","yellowLight","orange","orangeLight","orangeLighter","redDark","red","magentaDark","magenta","magentaLight","purpleDark","purple","purpleLight","blueDark","blueMid","blue","blueLight","tealDark","teal","tealLight","greenDark","green","greenLight","CommunicationColors","NeutralColors","SharedColors","shade30","shade20","shade10","primary","tint10","tint20","tint30","tint40","gray220","gray210","gray200","gray190","gray180","gray170","gray160","gray150","gray140","gray130","gray120","gray110","gray100","gray90","gray80","gray70","gray60","gray50","gray40","gray30","gray20","gray10","pinkRed10","red20","red10","redOrange20","redOrange10","orange30","orange20","orange10","yellow10","orangeYellow20","orangeYellow10","yellowGreen10","green20","green10","greenCyan10","cyan40","cyan30","cyan20","cyan10","cyanBlue20","cyanBlue10","blue10","blueMagenta40","blueMagenta30","blueMagenta20","blueMagenta10","magenta20","magenta10","magentaPink20","magentaPink10","createTheme","depComments","isInverted","baseTheme","effects","spacing","disableGlobalClassNames","DefaultEffects","elevation4","depth4","elevation8","depth8","elevation16","depth16","elevation64","depth64","roundedCorner2","roundedCorner4","roundedCorner6","Depths","depth0","DefaultFontStyles","_registerFontFace","url","localFontName","localFontSrc","src","fontStyle","fontDisplay","_registerFontFaceSet","baseUrl","cdnFolder","cdnFontName","urlBase","light","semilight","regular","semibold","bold","registerDefaultFontFaces","fontUrl","Thai","Arabic","Cyrillic","EastEuropean","Greek","Hebrew","Vietnamese","WestEuropean","Selawik","Armenian","Georgian","FabricConfig","fontBaseUrl","LocalizedFontNames","LocalizedFontFamilies","FontSizes","FontWeights","IconFontSizes","ChineseSimplified","ChineseTraditional","Hindi","Japanese","Korean","size10","size12","size14","size16","size18","size20","size24","size28","size32","size42","size68","mini","xSmall","small","smallPlus","mediumPlus","icon","large","xLarge","xLargePlus","xxLarge","xxLargePlus","superLarge","mega","FontFamilyFallbacks","defaultFontFamily","LanguageToFontMap","ar","bg","cs","el","et","he","hi","hr","hu","ja","kk","ko","lt","lv","pl","ru","sk","th","tr","uk","vi","hy","ka","_createFont","weight","createFontStyles","localeCode","fontFamilyWithFallback","language","lang","_getLocalizedFontFamily","tiny","mergeThemes","partialTheme","defaultFontStyle","concat","EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","from","opacity","to","FADE_OUT","visibility","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","transform","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","easeFunction1","easeFunction2","durationValue1","durationValue2","durationValue3","durationValue4","AnimationStyles","slideRightIn10","_createAnimation","slideRightIn20","slideRightIn40","slideRightIn400","slideLeftIn10","slideLeftIn20","slideLeftIn40","slideLeftIn400","slideUpIn10","slideUpIn20","slideDownIn10","slideDownIn20","slideRightOut10","slideRightOut20","slideRightOut40","slideRightOut400","slideLeftOut10","slideLeftOut20","slideLeftOut40","slideLeftOut400","slideUpOut10","slideUpOut20","slideDownOut10","slideDownOut20","scaleUpIn100","scaleDownIn100","scaleUpOut103","scaleDownOut98","fadeIn100","fadeIn200","fadeIn400","fadeIn500","fadeOut100","fadeOut200","fadeOut400","fadeOut500","rotate90deg","rotateN90deg","animationName","animationDuration","animationTimingFunction","animationFillMode","fromX","pointerEvents","fromY","toX","toY","MotionDurations","MotionTimings","MotionAnimations","fadeInAnimationName","fadeOutAnimationName","scaleDownInAnimationName","scaleDownOutAnimationName","slideLeftOutAnimationName","slideRightOutAnimationName","slideLeftInAnimationName","slideRightInAnimationName","slideUpOutAnimationName","slideDownOutAnimationName","slideUpInAnimationName","slideDownInAnimationName","duration1","duration2","duration3","duration4","accelerate","decelerate","linear","standard","fadeIn","fadeOut","scaleDownIn","scaleDownOut","slideLeftOut","slideRightOut","slideLeftIn","slideRightIn","slideUpOut","slideDownOut","slideUpIn","slideDownIn","DefaultSpacing","s2","s1","m","l1","l2","makeSemanticColors","dep","listTextColor","listText","menuItemBackgroundChecked","warningHighlight","warningText","messageText","successText","_fixDeprecatedSlots","getSemanticColors","errorText","messageLink","messageLinkHovered","infoIcon","errorIcon","blockingIcon","warningIcon","severeWarningIcon","successIcon","infoBackground","errorBackground","blockingBackground","warningBackground","severeWarningBackground","successBackground","bodyFrameBackground","accentButtonText","buttonBackground","inputBackground","inputForegroundChecked","listBackground","menuBackground","cardStandoutBackground","bodyTextChecked","buttonTextCheckedHovered","link","inputBackgroundChecked","inputIcon","inputFocusBorderAlt","menuIcon","menuHeader","accentButtonBackground","inputBackgroundCheckedHovered","inputIconHovered","linkHovered","inputPlaceholderBackgroundChecked","bodyBackgroundChecked","bodyFrameDivider","bodyDivider","variantBorder","buttonBackgroundCheckedHovered","buttonBackgroundPressed","listItemBackgroundChecked","listHeaderBackgroundPressed","menuItemBackgroundPressed","bodyBackgroundHovered","buttonBackgroundHovered","buttonBackgroundDisabled","buttonBorderDisabled","disabledBackground","listItemBackgroundHovered","listHeaderBackgroundHovered","menuItemBackgroundHovered","primaryButtonTextDisabled","disabledSubtext","listItemBackgroundCheckedHovered","disabledBodyText","variantBorderHovered","inputIconDisabled","disabledText","actionLink","buttonText","inputBorderHovered","inputText","menuItemText","bodyStandoutBackground","defaultStateBackground","actionLinkHovered","buttonTextHovered","buttonTextChecked","buttonTextPressed","inputTextHovered","menuItemTextHovered","bodySubtext","focusBorder","inputBorder","smallInputBorder","inputPlaceholderText","buttonBorder","disabledBodySubtext","disabledBorder","buttonBackgroundChecked","menuDivider","cardShadow","cardShadowHovered","g","_styleNonce","CSPSettings","nonce","_themeState","__themeState__","lastStyleElement","registeredStyles","runState","perf","count","duration","flushTimer","mode","buffer","registeredThemableStyles","_themeTokenRegex","now","performance","measure","func","start","loadStyles","loadAsync","styleParts","pos","tokenMatch","exec","matchIndex","rawString","substring","defaultValue","lastIndex","splitStyles","setTimeout","styleArrays","slice","mergedStyleArray","applyThemableStyles","stylesArray","styleRecord","resolveThemableArray","styleString","styleArray","getElementsByTagName","themable","createTextNode","initEvent","args","newStyle","record","themableStyle","loadTheme","themableStyles","option","clearStylesInternal","reloadStyles","records","removeChild","splitStyleArray","map","currentValue","themeSlot","themedValue","console","DEBUG","warn","createComponent","view","factoryOptions","defaultProp","ResultComponent","componentProps","fields","DefaultFields","getSettings","stateReducer","_resolveTokens","allStyles","_resolveStyles","viewProps","_defaultStyles","name","statics","allTokens","allTokens_1","currentTokens","withSlots","slotType","isSlot","toArray","createFactory","DefaultComponent","userProps","userSlotOptions","defaultStyles","flattenedUserProps","transformedProps","_translateShorthand","finalProps","allProps","classNames","allProps_1","_constructFinalProps","component","UserComponent","defaultFactory","mixedProps","_loop_1","slot","ComponentType","slotOptions","_renderSlot","initializeIcons","subset","speak","icons","GlobalNavButton","ChevronDown","ChevronUp","Edit","Add","Cancel","More","Settings","Mail","Filter","Search","Share","BlockedSite","FavoriteStar","FavoriteStarFill","CheckMark","Delete","ChevronLeft","ChevronRight","Calendar","Megaphone","Undo","Flag","Page","Pinned","View","Clear","Download","Upload","Folder","Sort","AlignRight","AlignLeft","AddFriend","Info","SortLines","List","CircleRing","Heart","HeartFill","Tiles","Embed","Glimmer","Ascending","Descending","SortUp","SortDown","SyncToPC","LargeGrid","SkypeCheck","SkypeClock","SkypeMinus","ClearFilter","Flow","StatusCircleCheckmark","MoreVertical","registerIconAliases","DEFAULT_BASE_URL","iconBaseUrl","initialize","setRTL","isRTL","_rtl","getRTL","documentElement","getStyleOptions","_stylesheet","InjectionMode","insertNode","STYLESHEET_SETTING","REUSE_STYLE_NODE","navigator","test","userAgent","_global","Stylesheet","config","_rules","_preservedRules","_rulesToInsert","_counter","_keyToClassName","_onResetCallbacks","_classNameToArgs","_config","injectionMode","defaultPrefix","namespace","cspSettings","classNameCache","_lastStyleElement","ownerDocument","fabricConfig","setConfig","callback","getClassName","cacheClassName","rules","classNameFromKey","getClassNameCache","argsFromClassName","entry","insertedRulesFromClassName","insertRule","rule","preserve","_getStyleElement","cssRules","onInsertRule","getRules","includePreservedRules","resetKeys","_styleElement","_createStyleElement","requestAnimationFrame","nodeToInsertBefore","placeholderStyleTag","_findPlaceholderStyleTag","insertBefore","concatStyleSets","styleSets","subComponentStyles","mergedSet","workingSubcomponentStyles","styleSets_1","currentSet","prop","currentComponentStyles","subCompProp","mergedValue","mergedSubStyles","workingSet_1","styleProps","styleFunctionOrObject","concatStyleSetsWithProps","allStyles_1","extractStyleParts","objects","stylesheet","_processArgs","argsList","argsList_1","arg","split","translatedArgs","font","_vendorSettings","getVendorSettings","nav","isWebkit","isMoz","isOpera","isMs","timeline","rulesArray","mergeStyleSets","mergeCssSets","classNameSet","concatenatedStyleSet","registrations","styleSetArea","registration","registrations_1","specificityMultiplier","mergeCss","styleArgs","DISPLAY_NAME","globalSelectorRegExp","expandSelector","newSelector","currentSelector","replace","extractSelector","selector","__order","extractRules","selectorWithGlobals","replacementInfo","findGlobal","v","trim","reverse","reduce","matchEndIndex","replacement","expandCommaSeparatedGlobals","separatedSelector","currentRules","args_1","expandedRules","expandQuads","parts","repeatString","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","serialized","hasProps","rulesForSelector","getKeyForRules","rootStyle","getDisplayName","rulesToInsert","applyRegistration","processedRule","styleToClassName","kebabRules","rulePairs","charAt","autoPrefixNames","prefixRules","vendorSettings","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","unit","LEFT","RIGHT","NO_FLIP","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","String","flipQuad","numberVal","parseInt","negateNum","useConst","initialValue","refs","mergedCallback","refs_1","useOnEvent","eventName","useCapture","callbackRef","actualElement","on","usePrevious","useRef","useEffect","AnimationClassNames","ColorClassNames","colorName","_defineGetter","obj","suffix","isHover","cssProperty","defineProperty","toString","enumerable","configurable","FontClassNames","HighContrastSelector","HighContrastSelectorWhite","HighContrastSelectorBlack","EdgeChromiumHighContrastSelector","ScreenWidthMinSmall","ScreenWidthMinMedium","ScreenWidthMinLarge","ScreenWidthMinXLarge","ScreenWidthMinXXLarge","ScreenWidthMinXXXLarge","ScreenWidthMaxSmall","ScreenWidthMaxMedium","ScreenWidthMaxLarge","ScreenWidthMaxXLarge","ScreenWidthMaxXXLarge","ScreenWidthMinUhfMobile","getScreenSelector","min","getHighContrastNoAdjustStyle","forcedColorAdjust","MsHighContrastAdjust","getEdgeChromiumNoHighContrastAdjustSelector","normalize","boxShadow","margin","padding","boxSizing","noWrap","overflow","textOverflow","whiteSpace","_continuousPulseStepOne","beaconColorOne","innerDimension","borderWidth","_continuousPulseStepTwo","_continuousPulseStepFour","beaconColorTwo","outerDimension","_continuousPulseStepFive","PulsingBeaconAnimationStyles","continuousPulseAnimationDouble","continuousPulseAnimationSingle","createDefaultAnimation","delayLength","animationIterationCount","animationDelay","DEFAULT_HEIGHT","DEFAULT_WIDTH","getFadedOverflowStyle","getDefaultValue","colorValue","rgbColor","Number","color2rgb","content","position","backgroundImage","getFocusStyle","insetOrOptions","highContrastStyle","outlineColor","isFocusedOnly","inset","border","zIndex","FocusStyle","_getFocusStyleInternal","focusClear","getFocusOutlineStyle","outlineOffset","getInputFocusStyle","borderRadius","borderType","borderPosition","isBorderBottom","_getGlobalClassNames","styleSheet","acc","getGlobalClassNames","getPlaceholderStyles","hiddenContentStyle","getThemedContext","scheme","newSettings","newContext","schemeSource","schemeTheme","schemes","_theme","_onThemeChangeCallbacks","ThemeSettingName","initializeThemeInCustomizations","applySettings","getTheme","registerOnThemeChangeCallback","removeOnThemeChangeCallback","lines","fontName","toUpperCase","_loadFonts","ZIndexes","Nav","ScrollablePane","Coachmark","Layer","KeytipLayer","buildClassMap","styleName","className_1","defaultIconStyles","getIconClassName","code","_iconSettings","getValue","__options","disableWarnings","warnOnMissingIcons","__remapped","normalizeIconName","registerIcons","iconSubset","isRegistered","iconName","normalizedIconName","_warnDuplicateIcon","unregisterIcons","iconNames","iconNames_1","registerIconAlias","mappedToName","getIcon","setIconOptions","_missingIcons","_missingIconsTimer","Async","onError","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_isDisposed","_parent","_onErrorHandler","_noop","dispose","clearTimeout","clearImmediate","clearInterval","cancelAnimationFrame","timeoutId","setImmediate","immediateId","_logError","setInterval","intervalId","throttle","wait","lastResult","lastArgs","waitMS","leading","trailing","lastExecuteTime","userCall","delta","waitLength","debounce","noOpFunction","cancel","flush","pending","maxWait","lastCallTime","isNaN","markExecuted","time","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","SCROLL_GUTTER","AutoScroll","_events","_scrollableParent","_incrementScroll","bind","_scrollRect","_onMouseMove","_onTouchMove","_stopScroll","_computeScrollVelocity","touches","clientX","clientY","scrollRect","clientDirection","scrollClient","scrollRectTop","scrollRectLeft","scrollClientBottom","scrollClientRight","_isVerticalScroll","_scrollVelocity","_startScroll","_timeoutId","scrollTop","round","scrollLeft","BaseComponent","methodNames","len","_makeSafe","_makeAllSafe","prevProps","prevState","_updateComponentRef","_setComponentRef","componentRef","__disposables","_disposables","disposable","__className","results","__async","__events","_resolveRef","refName","__resolves","currentProps","newProps","_warnDeprecations","deprecationMap","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","requiredProps","conditionalPropName","condition","_skipComponentRefResolution","methodName","classMethod","prototypeMethod","retVal","DelayedRender","isRendered","delay","setState","only","EventGroup","_uniqueId","_eventRecords","raise","eventArgs","bubbleEvent","_isElement","createEventObject","evObj","fireEvent","events","__events__","eventRecords","eventRecordList","listIndex","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","cancelBubble","HTMLElement","off","onAll","parent_1","eventRecord","processElementEvent","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","FabricPerformance","setPeriodicReset","measurement","summary","totalDuration","timeStamp","NaN","GLOBAL_SETTINGS_PROP_NAME","CALLBACK_STATE_PROP_NAME","GlobalSettings","globalSettings","_getGlobalSettings","setValue","callbacks","oldValue","changeDescription","addChangeListener","cb","__id__","_getCallbacks","removeChangeListener","globalObj","backspace","shift","ctrl","alt","pauseBreak","capslock","escape","insert","del","zero","one","two","three","four","five","six","seven","eight","nine","c","f","h","l","o","q","u","w","y","z","leftWindow","rightWindow","select","zero_numpad","one_numpad","two_numpad","three_numpad","four_numpad","five_numpad","six_numpad","seven_numpad","eight_numpad","nine_numpad","multiply","subtract","decimalPoint","divide","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","numlock","scrollLock","semicolon","equalSign","comma","dash","period","forwardSlash","graveAccent","openBracket","backSlash","closeBracket","singleQuote","Rectangle","equals","appendFunction","functions","mergeAriaAttributeValues","ariaAttributes","mergedAttribute","filter","findIndex","array","fromIndex","find","createArray","getItem","toMatrix","items","columnCount","rows","removeIndex","_","replaceElement","newElement","copy","addElementAtIndex","itemToAdd","flatten","arraysEqual","array1","array2","_syncModuleCache","asAsync","Component","load","forwardedRef","Placeholder","asyncPlaceholder","rest","then","LoadedComponent","onLoad","catch","assertNever","MAX_CACHE_COUNT","DEFAULT_SPECIFICITY_MULTIPLIER","_memoizedClassNames","classNamesFunction","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","useStaticStyles","__noStyleOverride__","disableCaching","_traverseMap","cacheSize","enableClassNameCacheFullWarning","trace","clear","_traverseEdge","_normalizeValue","inputs","__cachedInputs__","componentAsMemoizer","outer","Outer","inner","Inner","innerMemoizer","defaultRender","innerProps","outerProps","composeComponentAs","isControlled","valueProp","local","newRefs","resolver","newValue","createResolver","NO_CUSTOMIZATIONS","_allSettings","Customizations","_raiseChange","applyScopedSettings","scopeName","properties","localSettings","localScopedSettings","globalScopedSettings","properties_1","property","applyBatchedUpdates","suppressUpdate","_suppressUpdates","observe","onChange","unobserve","Customizer","_onCustomizationChange","forceUpdate","contextTransform","Consumer","parentContext","CustomizerContext","customizable","scope","concatStyles","ComposedComponent","resultClass","ComponentWithInjectedProps","_styleCache","_onSettingChanged","default","mergedStyles","merged","mergeCustomizations","mergeSettings","oldSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","useCustomizationSettings","getRect","innerWidth","innerHeight","_window","defaultView","raiseClick","Event","createNewEvent","_isSSR","setSSR","isEnabled","extendComponent","methods","IS_VISIBLE_ATTRIBUTE","FOCUSZONE_SUB_ATTRIBUTE","getFirstFocusable","currentElement","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","focusAsync","suppressParentTraversal","traverseChildren","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","childMatchParentMatch","suppressChildTraversal","visibilityAttribute","offsetHeight","offsetParent","isVisible","checkTabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","doesElementContainFocus","currentActiveElement","shouldWrapFocus","targetToFocusOnNextRepaint","focusableElement","getFocusableByIndexPath","nextChild","getElementIndexPath","fromElement","toElement","unshift","CURRENT_ID_PROPERTY","DEFAULT_ID_STRING","_initializedStylesheetResets","resetIds","counter","nativeElementMap","label","audio","video","ol","li","button","input","textarea","table","td","colGroup","col","form","iframe","img","getNativeElementProps","excludedPropNames","allowedPropNames","getPropsWithDefaults","propsWithoutDefaults","REACT_LIFECYCLE_EXCLUSIONS","hoistMethods","destination","source","exclusions","hoisted","unhoistMethods","hoistStatics","dest","isIE11","_onMount","_onUpdate","_onUnmount","initializeFocusRects","disableFocusRects","__hasInitializeFocusRects__","_onPointerDown","pointerType","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitials","isRtl","allowPhoneInitials","cleanupDisplayName","initials","splits","getInitialsLatin","DirectionalKeyCodes","isDirectionalKeyCode","addDirectionalKeyCode","_language","STORAGE_KEY","getLanguage","persistenceType","savedLanguage","setLanguage","persistenceParam","localStorage","setItem","data","getDistanceBetweenPoints","point1","point2","left1","top1","left2","top2","sqrt","pow","fitContentToBounds","scale","contentSize","boundsSize","maxScale","contentAspectRatio","boundsAspectRatio","finalScale","calculatePrecision","groups","precisionRound","precision","base","exp","_resetCounter","_emptyObject","empty","_dictionary","_weakMap","setMemoizeWeakMap","weakMap","resetMemoizations","memoize","descriptor","fn","memoizeFunction","maxCacheSize","ignoreNullOrUndefinedResult","rootNode","localResetCounter","val","currentNode","_createNode","createMemoizer","cache","merge","_merge","circularReferences","isCircularReference","isIOS","modalize","affectedNodes","targetDocument","sibling","node","unmodalize","shallowCompare","filteredAssign","isAllowed","sourceObject","mapEnumByName","theEnum","values","arr","omit","isMacResult","isMac","hasHorizontalOverflow","clientWidth","scrollWidth","hasVerticalOverflow","scrollHeight","hasOverflow","toObjectMap","items_1","keys_1","baseElementEvents","baseElementProperties","htmlElementProperties","labelProperties","audioProperties","videoProperties","olProperties","liProperties","anchorProperties","buttonProperties","inputProperties","textAreaProperties","selectProperties","optionProperties","tableProperties","trProperties","thProperties","tdProperties","colGroupProperties","colProperties","formProperties","iframeProperties","imgProperties","imageProperties","divProperties","getNativeProps","keys_2","memoizer","composeRenderFunction","_baseUrl","getResourceUrl","setBaseUrl","_isRTL","RTL_LOCAL_STORAGE_KEY","savedRTL","persistSetting","getRTLSafeKeyCode","safeRequestAnimationFrame","activeTimeouts","safeSetTimeout","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","targetTouches","passive","findScrollableParent","ceil","allowOverscrollOnElement","_disableIosBodyScroll","disableBodyScroll","capture","enableBodyScroll","getScrollbarWidth","scrollDiv","setProperty","offsetWidth","startingElement","computedStyles","getComputedStyle","overflowY","getPropertyValue","Selection","onSelectionChanged","onItemsChanged","getKey","canSelectItem","selectionMode","multiple","_getKey","defaultGetKey","_changeEventSuppressionCount","_exemptedCount","_anchoredIndex","_unselectableCount","_onSelectionChanged","_onItemsChanged","_canSelectItem","_keyToIndexMap","_isModal","setItems","getSelectedCount","setChangeEvents","suppressChange","_hasChanged","_change","isModal","setModal","setAllSelected","shouldClear","newKeyToIndexMap","newUnselectableIndices","hasSelectionChanged","haveItemsChanged","_setAllSelected","newExemptedIndicies","newExemptedCount","indexProperty","_exemptedIndices","exemptKey","_items","newIndex","_isAllSelected","_unselectableIndices","_selectedItems","_updateCount","getItems","getSelection","isIndexSelected","getSelectedIndices","_selectedIndices","getItemIndex","endIndex","isAllSelected","selectableCount","single","isKeySelected","setKeySelected","isSelected","shouldAnchor","setIndexSelected","isExempt","setRangeSelected","startIndex","newAnchorIndex","selectToKey","clearSelection","selectToIndex","selectToRange","anchorIndex","toggleAllSelected","toggleKeySelected","toggleIndexSelected","toggleRangeSelected","preserveModalState","SelectionMode","SelectionDirection","SELECTION_CHANGE","SELECTION_ITEMS_CHANGE","sessionStorage","IsFocusVisibleClassName","IsFocusHiddenClassName","setFocusVisibility","enabled","FORMAT_ARGS_REGEX","FORMAT_REGEX","format","styled","baseStyles","getProps","pure","Wrapped","customizedStyles","additionalProps","concatenatedStyles","pureComponent","mountCounters","setMountCounters","currValue","FocusRects","message","setWarningCallback","warningCallback","warnConditionallyRequiredProps","componentName","resetControlledWarnings","warnControlledUsage","params","warnDeprecations","warnMutuallyExclusive","exclusiveMap","__rest","getOwnPropertySymbols","propertyIsEnumerable","exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","charCodeAt","fromByteArray","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","Uint8Array","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","encodingOrOffset","TypeError","allocUnsafe","string","encoding","isEncoding","actual","write","fromString","ArrayBuffer","isView","arrayView","isInstance","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","isBuffer","numberIsNaN","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","lo","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","error","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","list","swap16","swap32","swap64","toLocaleString","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","super","writable","stack","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","msg","received","isInteger","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","hasOwn","argType","module","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","log","LN2","factory","extend","attributes","decode","decodeURIComponent","init","converter","api","defaults","expires","toUTCString","JSON","stringify","encodeURIComponent","stringifiedAttributes","attributeName","cookie","json","jar","cookies","parse","getJSON","withConverter","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_PARTIAL_FLAG","WRAP_ARY_FLAG","INFINITY","MAX_SAFE_INTEGER","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","RegExp","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsModifier","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","self","Function","freeExports","freeModule","moduleExports","freeProcess","process","nodeUtil","require","types","binding","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","isDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","thisArg","arrayAggregator","setter","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","object","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","mapToArray","overArg","replaceHolders","placeholder","setToArray","setToPairs","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","uid","pick","arrayProto","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","getPrototype","getPrototypeOf","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","iterator","symToStringTag","toStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","random","nativeReverse","DataView","Promise","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","isObject","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","entries","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","paths","skip","number","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","symbol","Ctor","cloneArrayBuffer","dataView","cloneDataView","cloneTypedArray","regexp","cloneRegExp","initCloneByTag","stacked","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","computed","valuesIndex","templateSettings","getMapData","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","depth","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","isFunction","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseGt","other","baseHas","baseHasIn","baseIntersection","arrays","othLength","othIndex","caches","maxLength","seen","baseInvoke","baseIsArguments","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","baseIteratee","identity","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","isTyped","isArrayLikeObject","isPlainObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","criteria","sort","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","baseSortBy","basePickBy","baseSet","basePullAll","basePullAt","indexes","previous","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","actions","action","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","arrayBuffer","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","iterable","createCaseFirst","createCompounder","words","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","wrapper","getFuncName","funcName","getData","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","oldArray","reorder","createInverter","toIteratee","baseInverter","createMathOperation","operator","createOver","arrayFunc","createPadding","chars","charsLength","createRange","step","toFinite","baseRange","createRelationalOperation","toNumber","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","toInteger","pair","noop","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","otherFunc","stubArray","hasPath","hasFunc","isLength","resolve","ctorString","isMaskable","stubFalse","otherArgs","shortOut","reference","details","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","rand","quote","subString","clone","difference","differenceBy","differenceWith","findLastIndex","intersection","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","union","unionBy","unionWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","before","bindKey","WRAP_BIND_FLAG","lastThis","timerId","lastInvokeTime","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","defer","memoized","Cache","negate","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","isError","isNumber","isString","lte","next","done","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","invoke","nativeKeysIn","isProto","baseKeysIn","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","word","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","pattern","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","flow","flowRight","method","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","dividend","divisor","multiplier","multiplicand","minuend","subtrahend","after","castArray","chunk","compact","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functionsIn","initial","mapKeys","mapValues","matches","matchesProperty","nthArg","omitBy","once","orderBy","propertyOf","pullAllBy","pullAllWith","reject","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","separator","spread","tail","take","takeRight","takeRightWhile","takeWhile","tap","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","update","updateWith","valuesIn","wrap","zipObject","zipObjectDeep","entriesIn","extendWith","clamp","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","endsWith","escapeRegExp","every","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isBoolean","isElement","isEmpty","isEqual","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isUndefined","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","pad","strLength","padEnd","padStart","radix","floating","temp","reduceRight","repeat","sample","some","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","startsWith","sum","sumBy","template","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","truncate","omission","search","global","newEnd","unescape","uniqueId","each","eachRight","VERSION","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","getView","iterLength","takeCount","iterIndex","commit","wrapped","moment","defineLocale","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","hours","minutes","isLower","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","mm","hh","dd","M","MM","yy","dayOfMonthOrdinalParse","ordinal","week","dow","doy","weekdaysParseExact","symbolMap","pluralForm","plurals","pluralize","withoutSuffix","isFuture","hour","minute","preparse","postformat","numberMap","suffixes","relativeTimeWithPlural","forms","standalone","isFormat","day","lastDigit","last2Digits","meridiemHour","relativeTimeWithMutation","mutationTable","softMutation","mutation","lastNumber","translate","monthsParseExact","ll","lll","llll","monthsParse","monthsRegex","plural","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","token","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","hundred","ten","numberAsNoun","hm","processHoursFunction","hookCallback","hooks","hasOwnProp","createUTC","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","copyConfig","_isAMomentObject","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","aliases","addUnitAlias","shorthand","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","formatMoment","expandFormat","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","getParseRegexForToken","regexEscape","matched","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","keepTime","set$1","modMonth","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","ms","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","abbr","parentLocale","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","currentDateArray","weekYear","weekdayOverflow","GG","W","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","isObjectEmpty","prototypeMin","prototypeMax","moments","ordering","Duration","quarters","quarter","isoWeek","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","utcOffset","sign","offsetFromString","chunkOffset","matcher","cloneWithOffset","model","diff","setTime","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","addSubtract","isAdding","invalid","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","preParsePostFormat","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","toObject","toDate","toISOString","keepOffset","isLocal","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","_relativeTime","pastFuture","_monthsShort","_monthsParseExact","firstDayOfYear","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","propIsEnumerable","test1","test2","test3","letter","err","shouldUseNative","symbols","DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","getClassNames","activityPersonas","isCompact","isCompactRoot","pulsingBeacon","personaContainer","isCompactPersonaContainer","activityPersona","isCompactPersona","doublePersona","activityTypeIcon","isCompactIcon","activityContent","isCompactContent","activityText","commentText","isCompactTimeStamp","ActivityItem","_onRenderIcon","_onRenderPersonaArray","activityIcon","_onRenderActivityDescription","_getClassNames","activityDescription","activityDescriptionText","_onRenderComments","comments","_onRenderTimeStamp","personaElement","imageUrl","imageInitials","personaList_1","showSize16Personas_1","personaLimit_1","style_1","minWidth","person","onRenderIcon","onRenderActivityDescription","onRenderComments","onRenderTimeStamp","animateBeaconSignal","DEFAULT_PERSONA_SIZE","COMPACT_PERSONA_SIZE","DEFAULT_ICON_SIZE","COMPACT_ICON_SIZE","slideIn","getStyles","customStyles","continuousPulseAnimation","slideInAnimation","fadeInAnimation","ActivityItemStyles","justifyContent","alignItems","borderStyle","flexWrap","flexBasis","paddingRight","marginTop","alignSelf","flex","overflowX","paddingLeft","AnnouncedBase","Root","role","screenReaderText","Announced","SELECTION_BACKWARD","Autofill","_inputElement","_autoFillEnabled","_isComposing","_onCompositionStart","_onCompositionUpdate","_updateValue","_getCurrentInputValue","_onCompositionEnd","_tryEnableAutofill","_async","_onClick","_value","nativeEvent","isComposing","displayValue","enableAutofillOnKeyPress","_onInputChanged","nativeEventComposing","_onChanged","composing","onInputChange","_getDisplayValue","suggestedDisplayValue","_notifyInputChange","defaultVisibleValue","inputElement","selectionDirection","Boolean","UNSAFE_componentWillReceiveProps","nextProps","updateValueInWillReceiveProps","updatedInputValue","newDisplayValue","shouldSelectFullInputValueInComponentDidUpdate","differenceIndex","preventValueSelection","_doesTextStartWith","shouldSelectFullRange","setSelectionRange","nativeProps","autoCapitalize","autoComplete","onCompositionStart","onCompositionUpdate","onCompositionEnd","onInput","onClick","isComposed","onInputValueChange","startWith","BaseAutoFill","nullFunction","nonActionableItemProps","BreadcrumbBase","_focusZone","_onReduceData","renderedItems","renderedOverflowItems","overflowIndex","movedItem","_onGrowData","maxDisplayedItems","_onRenderBreadcrumb","ariaLabel","dividerAs","DividerType","I","onRenderItem","overflowAriaLabel","onRenderOverflowIcon","overflowButtonAs","contextualItems","isActionable","href","_onBreadcrumbClicked","itemProps","lastItemIndex","hasOverflowItems","itemElements","finalOnRenderItem","_onRenderItem","onRender","_classNames","listItem","chevron","iconProps","onRenderMenuIcon","OverflowButton","overflowButton","menuProps","directionalHint","focusZoneProps","isCurrentItem","onRenderContent","finalOnRenderContent","defaultOnRenderCrumbContent","onRenderItemContent","itemLink","overflowMode","Parent","tooltipHostProps","_validateProps","onReduceData","onGrowData","breadcrumbData","onRenderData","GlobalClassNames","SingleLineTextStyle","MinimumScreenSelector","MediumScreenSelector","Breadcrumb","itemBackgroundHoveredColor","itemBackgroundPressedColor","itemTextColor","itemTextFontWeight","itemTextHoveredOrPressedColor","itemLastChildTextColor","itemLastChildTextFontWeight","chevronButtonColor","overflowButtonColor","lastChildItemStyles","itemStateSelectors","backgroundColor","cursor","textDecoration","commonItemStyles","listStyleType","ActionButton","variantClassName","onRenderDescription","baseButtonStyles","actionButtonStyles","rootHovered","iconHovered","rootPressed","rootExpanded","iconPressed","rootDisabled","rootChecked","iconChecked","flexContainer","iconDisabled","textContainer","flexGrow","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","iconClassName","menuIconClassName","hasMenu","expanded","isSplit","isExpanded","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","labelHovered","descriptionHovered","menuIconHovered","rootFocused","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","iconExpanded","labelChecked","labelDisabled","menuIconChecked","menuIconDisabled","menuIconExpanded","description","descriptionChecked","descriptionDisabled","COMPONENT_NAME","BaseButton","_buttonElement","_splitButtonContainer","_renderedVisibleMenu","_getMemoizedMenuButtonKeytipProps","keytipProps","buttonProps","imageProps","_onRenderTextContents","secondaryText","onRenderText","_onRenderText","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","ariaDescription","_ariaDescriptionId","_onRenderMenuIcon","menuIconProps","_onRenderMenu","MenuType","menuAs","_onDismissMenu","onDismiss","defaultPrevented","_dismissMenu","_menuShouldFocusOnMount","_menuShouldFocusOnContainer","menuHidden","_openMenu","shouldFocusOnContainer","_onToggleMenu","_onSplitContainerFocusCapture","container","_onSplitButtonPrimaryClick","_processingTouch","_onMenuClick","_onMenuKeyDown","_onKeyUp","onKeyUp","_onKeyPress","onKeyPress","_onMouseUp","onMouseUp","onMouseDown","_onSplitButtonContainerKeyDown","click","isUp","isDown","_isValidMenuOpenKey","onMenuClick","_onTouchStart","_isSplitButton","_handleTouchAndPointerEvent","detail","toggled","ariaHidden","allowDisabledFocus","primaryDisabled","toggle","isPrimaryButtonDisabled","renderAsAnchor","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","_onRenderSplitButtonContent","_onRenderContent","onPointerUp","onAfterMenuDismiss","dismissMenu","openMenu","onRenderAriaDescription","onRenderChildren","onRenderMenu","Button","keytipAttributes","doNotLayer","_shouldRenderMenu","_getMenuProps","Content","persistMenu","renderPersistedMenuHiddenOnMount","labelElementId","hidden","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","containerProps","SplitButton","splitButtonContainer","onTouchStart","onFocusCapture","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","divider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","stopImmediatePropagation","_lastTouchTimeoutId","menuTriggerKeyCode","baseClassName","noOutline","iconStyle","textAlign","flexShrink","buttonHighContrastFocus","userSelect","buttonType","command","compound","ElementType","ButtonType","splitButtonDividerBaseStyles","standardStyles","splitButtonMenuButton","splitButtonMenuButtonDisabled","splitButtonDivider","splitButtonDividerDisabled","splitButtonMenuButtonChecked","splitButtonMenuButtonExpanded","splitButtonMenuIcon","splitButtonMenuIconDisabled","primaryStyles","focusInset","focusColor","baseSplitButtonStyles","commandButtonStyles","borderTopRightRadius","borderBottomRightRadius","CommandBarButton","CommandButton","splitButtonStyles","compoundButtonStyles","maxWidth","minHeight","flexDirection","standardCompoundTheme","primaryCompoundTheme","CompoundButton","defaultButtonStyles","DefaultButton","iconButtonStyles","IconButton","MessageBarButton","PrimaryButton","splitButtonMenuFocused","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonFlexContainer","borderRight","borderRightWidth","borderLeftWidth","borderLeft","verticalAlign","marginLeft","marginRight","marginBottom","picker","holder","pickerIsOpened","goTodaySpacing","dayPicker","header","monthAndYear","decade","currentYear","currentDecade","dayWrapper","daySelection","dayIsToday","dayIsDisabled","dayIsUnfocused","dayIsFocused","dayIsHighlighted","pickerIsFocused","dayDisabled","dayBackground","dayHover","dayPress","weekBackground","showWeekNumbers","weekNumbers","weekIsHighlighted","showWeekNumbersRTL","monthComponents","yearComponents","decadeComponents","closeButton","prevMonth","nextMonth","prevYear","nextYear","prevDecade","nextDecade","prevMonthIsDisabled","nextMonthIsDisabled","prevYearIsDisabled","nextYearIsDisabled","prevDecadeIsDisabled","nextDecadeIsDisabled","headerToggleView","optionGrid","monthOption","yearOption","isHighlighted","monthOptionIsDisabled","yearOptionIsDisabled","goToday","goToTodayIsDisabled","goTodayInlineMonth","isPickingYears","monthPicker","yearPicker","monthPickerVisible","toggleMonthView","calendarsInline","monthPickerOnly","monthPickerAsOverlay","holderWithButton","monthIsHighlighted","monthIsCurrentMonth","yearIsHighlighted","yearIsCurrentYear","topLeftCornerDate","topRightCornerDate","bottomLeftCornerDate","bottomRightCornerDate","weekSelection","monthSelection","topDate","rightDate","bottomDate","leftdate","CalendarDay","_onDayKeyDown","originalDate","weekIndex","dayIndex","_onSelectDate","_navigateMonthEdge","_onDayMouseDown","_applyFunctionToDayRefs","isInBounds","dayWeekIndex","_onDayMouseUp","_onDayMouseOver","_onDayMouseLeave","_onTableMouseLeave","relatedTarget","_onTableMouseUp","selectedDate","onSelectDate","autoNavigateOnSelection","minDate","maxDate","_getBoundedDateRange","_getIsRestrictedDate","compareResult","_onSelectPrevMonth","_onSelectNextMonth","onNavigateDate","_onClose","_onHeaderSelect","onHeaderSelect","_onHeaderKeyDown","_onPrevMonthKeyDown","_onNextMonthKeyDown","_onCloseButtonKeyDown","activeDescendantId","_getWeeks","strings","navigationIcons","dateTimeFormatter","showCloseButton","allFocusable","dayPickerId","monthAndYearId","leftNavigationIcon","leftNavigation","rightNavigationIcon","rightNavigation","closeNavigationIcon","closeIcon","selectedDateWeekNumber","weekCorners","_getWeekCornerStyles","prevMonthInBounds","nextMonthInBounds","formatMonthYear","navContainer","title","prevMonthAriaLabel","Icon","nextMonthAriaLabel","closeButtonAriaLabel","shortDays","onMouseLeave","weekNumberFormatString","isNavigatedDate","onSelected","_getHighlightedCornerStyle","isInMonth","_setDayCellRef","onMouseOver","isToday","formatMonthDayYear","formatDay","navigatedDay","weekCornersStyled","above","below","roundedTopRight","roundedBottomLeft","roundedBottomRight","minIndex","maxIndex","_findLastIndex","leftStyle","rightStyle","targetDate","propsToUse","today","showSixWeeksByDefault","todaysDate","isAllDaysOfWeekOutOfMonth","selectedDateRangeType","selectedDates","shouldGetWeeks","dayInfo","restrictedDates","rd","boundedDateRange","CELL_COUNT","DefaultCalendarYearStrings","prevRangeAriaLabel","nextRangeAriaLabel","DefaultNavigationIcons","CalendarYearGridCell","_buttonRef","_onRenderYear","onRenderYear","onSelectYear","selected","CalendarYearGrid","_selectedCellRef","_currentCellRef","_renderCell","minYear","maxYear","fromYear","toYear","cells","CalendarYearNavPrev","_onSelectPrev","isDisabled","onSelectPrev","iconStrings","prevRange","prevAriaLabel","CalendarYearNavNext","_onSelectNext","onSelectNext","nextRange","nextAriaLabel","CalendarYearNav","CalendarYearTitle","rangeAriaLabel","currentDateRange","headerAriaLabelFormatString","CalendarYearHeader","_onRenderTitle","onRenderTitle","_onRenderNav","CalendarYear","_gridRef","_onNavNext","_onNavPrev","_renderHeader","_renderGrid","_calculateInitialStateFromProps","navigatedYear","rangeYear","CalendarMonth","_navigatedMonthRef","_onCalendarYearRef","_calendarYearRef","_onSelectYear","_focusOnUpdate","newNavigationDate","isYearPickerVisible","_yearToString","yearFormattingDate","formatYear","_yearRangeToString","yearRange","_yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","_yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","_onSelectNextYear","_onSelectNextYearKeyDown","_onSelectPrevYear","_onSelectPrevYearKeyDown","_onSelectMonthKeyDown","_onSelectMonth","yearPickerHidden","_onYearPickerHeaderSelect","_selectMonthCallbacks","shortMonths","_isCurrentMonth","highlightCurrentMonth","highlightSelectedMonth","currentSelectedDate","yearPickerHeaderAriaLabel","rowIndexes","isPrevYearInBounds","isNextYearInBounds","yearString","headerAriaLabel","monthPickerHeaderAriaLabel","prevYearAriaLabel","nextYearAriaLabel","rowNum","monthsForRow","monthIndex","indexedMonth","isCurrentMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","defaultWorkWeekDays","dateTimeFormatterCallbacks","_dayPicker","_monthPicker","_hasFocus","currentTarget","onBlur","_navigateDayPickerDay","navigatedDayDate","navigatedMonthDate","_navigateMonthPickerDay","_onNavigateDayDate","focusOnNavigatedDay","_onNavigateMonthDate","showMonthPickerAsOverlay","isDayPickerVisible","selectedDateRangeArray","isMonthPickerVisible","_onGotoToday","selectDateOnClick","_onGotoTodayClick","_onGotoTodayKeyDown","_onDatePickerPopupKeyDown","_handleEscKey","showGoToToday","overlayedWithButton","goTodayEnabled","frame","goToToday","FirstDay","Callout","layerProps","ANIMATIONS","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","CalloutContentBase","_hostElement","_calloutElement","_hasListeners","dismiss","_dismissOnScroll","preventDismissOnEvent","preventDismissOnScroll","positions","_dismissOnClickOrScroll","_dismissOnResize","preventDismissOnResize","_dismissOnLostFocus","preventDismissOnLostFocus","_setInitialFocus","setInitialFocus","_didSetInitialFocus","_onComponentDidMount","_addListeners","onLayerMounted","_updateAsyncPosition","_setHeightOffsetEveryFrame","_dismissOnTargetWindowBlur","shouldDismissOnWindowFocus","_targetWindow","hasFocus","_mouseDownOnPopup","_isMouseDownOnPopup","_mouseUpOnPopup","slideDirectionalClassName","calloutElementRect","heightOffset","_positionAttempts","_removeListeners","shouldComponentUpdate","newState","shouldUpdateWhenHidden","UNSAFE_componentWillMount","_setTargetWindowAndElement","_getTarget","UNSAFE_componentWillUpdate","newTarget","_blockResetHeight","_maxHeight","gapSpace","beakWidth","finalHeight","_didPositionPropsChange","_bounds","isBeakVisible","calloutWidth","calloutMaxWidth","calloutMinWidth","hideOverflow","calloutMaxHeight","onScroll","popupProps","getContentMaxHeight","_getMaxHeight","contentMaxHeight","overflowYHidden","beakVisible","overflowStyle","maxHeight","visibilityStyle","targetEdge","elementPosition","beak","_getBeakPosition","beakCurtain","onRestoreFocus","calloutMain","isEventTargetOutsideCallout","_target","dismissOnTargetClick","_updatePosition","beakPostionStyle","beakPosition","hostElement","calloutElement","expectsTarget","bounds","_getBounds","newPositions","_arePositionsEqual","onPositioned","currentBounds","minPagePadding","directionalHintFixed","totalGap_1","coverTarget","newPosition","_comparePositions","oldPositions","oldPositionEdge","newPositionEdge","currentDoc","_setHeightOffsetTimer","calloutMainElem","scrollDiff","oldProps","getBeakStyle","CalloutContent","FocusTrapCallout","focusTrapProps","CheckBase","useFastIcons","IconComponent","circle","check","Check","CheckGlobalClassNames","checkHost","checkBoxHeight","sharedCircleCheck","CheckboxBase","_checkBox","_renderContent","indeterminate","inputProps","onRenderLabel","_onRenderLabel","checkmarkIconProps","ariaPositionInSet","ariaSetSize","_onChange","htmlFor","checkbox","checkmark","isChecked","isIndeterminate","defaultChecked","defaultIndeterminate","getDerivedStateFromProps","stateUpdate","boxSide","reversed","isUsingCustomLabelRender","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","Checkbox","_s","_t","checkmarkFontColor","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","checkboxBorderIndeterminateHoveredColor","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","transitionProperty","transitionDuration","transitionTimingFunction","ChoiceGroupBase","_focusCallbacks","_changeCallbacks","keyFocused","defaultSelectedKey","validDefaultSelectedKey","_isControlled","keyChecked","_getKeyChecked","newKeyChecked","required","optionsContainIconOrImage","imageSrc","labelId","applicationRole","innerOptionProps","_getOptionId","_getOptionLabelId","optionToFocus","checkedOption","getElementById","evt","onChanged","originalOption","selectedKey","optionsChecked","ChoiceGroup","ChoiceGroupOptionBase","_onRenderField","imageAlt","selectedImageSrc","imageSize","innerField","imageWrapper","Image","selectedImageWrapper","iconWrapper","labelWrapper","onRenderField","hasIcon","hasImage","imageIsLarge","choiceFieldWrapper","choiceFieldTransitionDuration","choiceFieldTransitionTiming","getChoiceGroupFocusStyle","focusBorderColor","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","paddingBottom","ChoiceGroupOption","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","choiceFieldSize","radioButtonSpacing","paddingTop","labelWrapperLineHeight","Beak","svgHeight","svgWidth","pointOne","pointTwo","pointThree","BEAK_WIDTH","BEAK_HEIGHT","points","COACHMARK_ATTRIBUTE_NAME","CoachmarkBase","_entityHost","_entityInnerHostElement","_translateAnimationContainer","_ariaAlertContainer","_childrenContainer","_positioningContainer","_onFocusHandler","isCollapsed","_openCoachmark","_onPositioned","positionData","targetAlignment","alignmentEdge","targetPosition","_setBeakPosition","beakLeft","beakTop","beakRight","beakBottom","transformOriginX","transformOriginY","distanceAdjustment","_beakDirection","transformOrigin","onAnimationOpenStart","onAnimationOpenEnd","teachingBubbleRef","collapsed","beakHeight","isBeaconAnimating","isMeasuring","entityInnerHostRect","isMouseInProximity","isMeasured","positioningContainerProps","ariaDescribedByText","ariaLabelledByText","ariaAlertText","delayBeforeCoachmarkAnimation","persistentBeak","alertText","defaultColor","entityHostHeight","entityHostWidth","PositioningContainer","P","offsetFromTarget","ariaContainer","translateAnimationContainer","scaleAnimationLayer","rotateAnimationLayer","entityHost","FocusTrapZone","isClickableOutsideFocusTrap","forceFocusInsideTrap","entityInnerHost","childrenContainer","_addProximityHandler","mouseProximityOffset","delayBeforeMouseOpen","preventFocusOnMount","clickTarget","clickedOutsideCallout","isPositionForced","timeoutIds","_setTargetElementRect","mouseY","mouseX","_isInsideElement","onMouseMove","_targetElementRect","COACHMARK_WIDTH","COACHMARK_HEIGHT","translateOne","scaleOne","rotateOne","ContinuousPulse","ContinuousPulseAnimation","animationDirection","transition","main","overFlowYHidden","SLIDE_ANIMATIONS","_positionedHost","_contentHost","onResize","positioningContainerWidth","positioningContainerMaxHeight","directionalClassName","positioningContainerElement","newPositions_1","_positioningBounds","BORDER_WIDTH","positioningContainerMainElem","ColorRectangleBase","_isAdjustingSaturation","increment","_updateColor","updateSV","_disposeListeners","newColor","prevColor","rectSize","sPercentage","vPercentage","_getNewColor","minSize","ariaValueFormat","valueText","getFullColorString","dark","thumb","oldColor","ColorRectangle","ColorSliderBase","maxValue","_maxValue","currentPercentage","thumbColor","overlayStyle","isAlpha","minValue","_type","overlayColor","sliderOverlay","sliderThumb","hueStyle","alphaStyle","ColorSlider","useAlphaBackground","allColorComponents","ColorPickerBase","_onSVChanged","_onHChanged","updateH","_onATChanged","alphaType","updateT","updateA","editingColor","isHex","isTransparency","minLength","getColorFromString","correctHex","getColorFromRGBA","correctRGB","hexLabel","redLabel","greenLabel","blueLabel","alphaLabel","alphaSliderHidden","hue","_getColorFromProps","_textChangeHandlers","allColorComponents_1","_onTextChange","defaultStrings","_textLabels","alpha","hex","transparency","_strings","alphaAriaLabel","transparencyAriaLabel","textLabels","useTransparency","colorComponents","atValue","atLabel","selectedColorAriaParts","rootAriaLabelFormat","panel","svAriaLabel","svAriaDescription","svAriaValueFormat","colorRectangle","flexSlider","hueAriaLabel","showPreview","flexPreviewBox","colorSquare","cellPadding","cellSpacing","tableHeader","tableHexCell","tableAlphaCell","comp","TextField","spellCheck","ColorPicker","tableLayout","SearchDirection","HoverStatus","getDisabledStyles","listOptionHighContrastStyles","inputHighContrastStyles","getOptionStyles","customStylesForAllOptions","customOptionStylesForCurrentOption","isPending","isHidden","textHoveredColor","textSelectedColor","textDisabledColor","backgroundHoveredColor","backgroundPressedColor","optionStyles","wordWrap","overflowWrap","optionText","optionTextWrapper","getCaretDownButtonStyles","caret","buttonTextColor","buttonTextHoveredCheckedColor","buttonBackgroundHoveredColor","buttonBackgroundCheckedColor","buttonBackgroundCheckedHoveredColor","buttonHighContrastStyles","comboBoxOptionWidth","textColor","borderHoveredColor","borderPressedColor","borderFocusedColor","erroredColor","headerTextColor","dividerBorderColor","placeholderHighContrastStyles","placeholderStyles","placeholderStylesHovered","disabledPlaceholderStyles","ComboBoxRootHighContrastFocused","focusBorderStyles","rootError","rootDisallowFreeForm","inputDisabled","errorMessage","callout","optionsContainerWrapper","optionsContainer","isOpen","allowFreeForm","hasErrorMessage","getComboBoxOptionClassNames","ComboBoxOptionWrapper","ComboBox","_autofill","_comboBoxWrapper","_comboBoxMenu","_selectedElement","shouldOpenOnFocus","useFocusAsync","focusState","_onUpdateValueInAutofillWillReceiveProps","comboBox","visibleValue","_normalizeToString","_currentVisibleValue","_renderComboBoxWrapper","multiselectAccessibleText","errorMessageId","buttonIconProps","isButtonAriaHidden","placeholderProp","autofill","iconButtonProps","multiSelect","_onInputKeyDown","_onInputKeyUp","_onAutofillClick","_onInputChange","_getAriaAutoCompleteValue","_getAriaActiveDescendantValue","_onShouldSelectFullInputValueInAutofillComponentDidUpdate","_getCaretButtonStyles","_onComboBoxClick","_getVisibleValue","allowFreeform","selectedIndices","currentPendingValueValidIndex","currentOptions","currentPendingValue","currentPendingIndexValid","_indexWithinBounds","_getPendingString","_getMultiselectDisplayString","_getFirstSelectedIndex","updatedValue","_handleInputWhenDisabled","_processInputChangeWithFreeform","_processInputChangeWithoutFreeform","_onResolveOptions","onResolveOptions","newOptions","promise_1","_currentPromise","newOptionsFromPromise","_submitPendingValue","_onRenderContainer","onRenderList","calloutProps","dropdownWidth","dropdownMaxWidth","onRenderUpperContent","_onRenderUpperContent","onRenderLowerContent","_onRenderLowerContent","useComboBoxAsMenuWidth","comboBoxMenuWidth","_onLayerMounted","_onDismiss","_onCalloutMouseDown","_onScroll","_onRenderList","_onCalloutLayerMounted","onRenderLabelProps","Label","queue","renderedList","emptyQueue","newGroup","itemType","Header","Divider","placeRenderedOptionIntoQueue","_renderSeparator","_renderOption","onRenderOption","_onRenderOptionContent","_isOptionSelected","_isOptionChecked","_getCurrentOptionStyles","optionClassNames","_getPreviewText","onRenderCheckboxLabel","_onItemClick","onMouseEnter","_onOptionMouseEnter","_onOptionMouseMove","_onOptionMouseLeave","_isScrollIdle","_scrollIdleTimeoutId","onMenuDismiss","_setOpenStateAndFocusOnClose","_resetSelectedIndex","_onAfterClearPendingInfo","_processingClearPendingInfo","currentPendingValueValidIndexOnHover","_lastKeyDownWasAltOrMeta","_isAltOrMeta","_getPendingSelectedIndex","clearAll","_setPendingInfoFromIndexAndDirection","backward","forward","directionToSearch","keyCode","keyPressIsAltOrMetaAlone","shouldHandleKey","openOnKeyboardFocus","_shouldIgnoreMouseEvent","selectedKeys","_buildDefaultSelectedKeys","_gotMouseMove","initialSelectedIndices","_getSelectedIndices","_buildSelectedKeys","indices","onMenuOpen","onMenuDismissed","_scrollIntoView","_focusInputAfterClose","_notifyPendingValueChanged","onRenderContainer","comboBoxWrapper","KeytipData","displayValues","idx","multiSelectDelimiter","newCurrentPendingValueValidIndex","_setPendingInfo","originalUpdatedValue","newSuggestedDisplayValue","_lastReadOnlyAutoCompleteChangeTimeoutId","_setPendingInfoFromIndex","_getNextSelectableIndex","searchDirection","_setSelectedIndex","submitPendingValueEvent","onPendingValueChanged","initialIndices","option_1","persist","_hasPendingValue","changedOptions","_clearPendingInfo","pendingOptionText","isValueSelected","newOption","includeCurrentPendingValue","onScrollToItem","scrollSelectedToTop","scrollIntoView","alignToTop","scrollableParentRect","selectedElementRect","onItemClick","selectedKeys_1","selectedIndex","indexUpdate","newPendingIndex","newPendingValue","focusInputAfterClose","customCaretDownButtonStyles","caretDownButtonStyles","comboBoxOptionStyles","customStylesForCurrentOption","_isPendingOption","descendantText","useAriaLabelAsText","VirtualizedComboBox","_comboBox","_list","onRenderCell","_onScrollToItem","itemIndex","scrollToIndex","selectedOptions","CommandBarBase","_overflowSet","_resizeGroup","_onRenderData","primarySet","doNotContainWithinFocusZone","primaryItems","overflowItems","onRenderOverflowButton","_onRenderOverflowButton","farItems","secondarySet","itemText","commandButtonProps","buttonStyles","iconOnly","subMenuProps","_onButtonClick","_commandButton","ButtonAs","buttonAs","CommandBarButtonAs","commandBarButtonAs","Type","overflowButtonProps","combinedOverflowItems","overflowProps","OverflowButtonType","shiftOnReduce","onDataReduced","renderedInOverflow","_computeCacheKey","onDataGrown","minimumOverflowItems","dataDidRender","commandBarData","overflowSet","remeasure","inactive","CommandBar","getCommandButtonStyles","rootStyles","labelStyles","restCustomStyles","ContextualMenuItemWrapper","_onItemMouseEnter","onItemMouseEnter","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","ContextualMenuAnchor","_anchor","_renderAriaDescription","focusableElementIndex","totalItemCount","hasCheckmarks","hasIcons","contextualMenuItemAs","ChildrenRenderer","ContextualMenuItem","expandedMenuItemKey","openSubMenu","dismissSubMenu","anchorRel","rel","itemHasSubmenu","onCheckmarkClick","getSubmenuTarget","ContextualMenuButton","_btn","onItemMouseDown","canCheck","defaultRole","buttonNativeProperties","itemRole","ariaDescribedByIds","itemButtonProperties","ContextualMenuSplitButton","_executeItemClick","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","splitButton","splitContainer","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","splitPrimary","itemComponentProps","getDividerClassNames","getSplitButtonVerticalDividerClassNames","VerticalDivider","splitMenu","submenuIconProps","onTap","getContextualMenuItemClassNames","getSubmenuItems","overrideItems","subItem","preferMenuTargetAsEventTarget","contextItem","getOnClickWithOverrideTarget","canAnyMenuItemsCheck","sectionProps","submenuItem","_getMenuItemStylesFunction","ContextualMenuBase","_mounted","dismissAll","_tryFocusPreviousActiveElement","containsFocus","_previousActiveElement","_onRenderMenuList","menuListProps","indexCorrection","menuItem","_renderMenuItem","indexIncrease","customOnRenderListLength","itemClassNames","getItemClassNames","dividerClassName","subMenuIconClassName","itemStyleProps","isAnchorLink","knownIcon","itemClassName","subMenuClassName","headerItem","_renderHeaderMenuItem","_renderListItem","Section","_renderSectionItem","_renderNormalItem","_defaultMenuItemRenderer","dismissAllMenus","_keyHandler","_shouldHandleKeyDown","_shouldCloseSubMenu","_onMenuFocusCapture","delayUpdateFocusOnHover","_shouldUpdateFocusOnMouseEvent","_shouldHandleKeyUp","handled","_focusingPreviousElement","submenuCloseKey","isSubMenu","_adjustedFocusZoneProps","_host","hasModifier","_onItemMouseEnterBase","_updateFocusOnMouseEvent","_onItemMouseMoveBase","_enterTimerId","_onMouseItemLeave","setActive","_onItemMouseDown","_onItemClickBase","_cancelSubMenuTimer","expandedByMouseClick","_onItemSubMenuExpand","_onAnchorClick","menuTarget","overrideTarget","openKey","_onSubMenuDismiss","submenuTarget","dismissedMenuItemKey","_onPointerAndTouchEvent","getMenuClassNames","contextualMenuItems","subMenuId","_isHidden","_onMenuClosed","_onMenuOpened","directionalHintForRTL","alignTargetEdge","useTargetWidth","useTargetAsMinWidth","onRenderSubMenu","_onRenderSubMenu","onRenderMenuList","itemsHaveIcons","contextualMenuItems_1","_getFocusZoneDirection","contextMenuStyle","submenuProps","_getSubmenuProps","responsiveMode","targetAsHtmlElement","targetWidth","items_2","calloutStyles","host","defaultMenuItemRenderer","onMenuOpened","documentContainsFocus","originalElement","sectionItem","menuClassNames","groupProps","headerContextualMenuItem","ariaLabellledby","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","_renderAnchorMenuItem","_renderSplitButton","_renderButtonItem","divHtmlProperties","subMenuHoverDelay","timeoutDuration","_findItemByKey","_findItemByKeyFromItems","items_3","withResponsiveMode","Element","linkContent","linkContentMenu","checkmarkIcon","subMenuIcon","anchorLink","getItemStyles","CONTEXTUAL_MENU_ITEM_HEIGHT","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","isopen","LocalContextualMenu","C","ContextualMenu","ContextualMenuItemType","renderItemIcon","renderCheckMarkIcon","isItemChecked","renderItemName","renderSecondaryText","renderSubMenuIcon","ContextualMenuItemBase","renderContent","_renderLayout","defaultRenders","DEFAULT_STRINGS","DatePickerBase","_datePickerDiv","_textField","formatDate","calendarProps","formattedDate","_calendarDismissed","_onCalloutPositioned","shouldFocus","_onTextFieldFocus","disableAutoFocus","allowTextInput","_preventFocusOpeningPicker","_showDatePickerPopup","_onTextFieldBlur","_validateTextInput","_onTextFieldChanged","textField","isDatePickerShown","_dismissDatePickerPopup","isRequired","isRequiredErrorMessage","_onTextFieldKeyDown","_onTextFieldClick","_onIconClick","parseDateFromString","invalidInputErrorMessage","_isDateOutOfBounds","isOutOfBoundsErrorMessage","_renderReadOnlyInput","underlined","readOnlyTextField","readOnlyPlaceholder","_getDefaultState","_setErrorMessage","initialPickerDate","pickerAriaLabel","borderless","textFieldProps","calendarAs","CalendarType","calloutId","textFieldId","_getErrorMessage","onRenderInput","disableFirstFocus","toDateString","dateStr","withLabel","withoutLabel","DatePicker","DatePickerIcon","TEXTFIELD_HEIGHT","defaultOnRenderHeader","column","isIconOnly","accessibleLabel","DetailsColumnBase","_onRenderFilterIcon","columnProps","_onRenderColumnHeaderTooltip","hostClassName","_onColumnClick","onColumnClick","columnActionsMode","_onDragStart","selectedItems","_updateHeaderDragInfo","borderWhileDragging","noBorderWhileDragging","_onDragEnd","setDraggedItemIndex","updateDragInfo","_onColumnContextMenu","onColumnContextMenu","_onRootMouseDown","isDraggable","columnIndex","parentId","cellStyleProps","onRenderColumnHeaderTooltip","headerClassName","isIconVisible","isSorted","isGrouped","isFiltered","isPadded","transitionDurationDrag","transitionDurationDrop","onRenderFilterIcon","onRenderHeader","isSortedDescending","draggable","calculatedWidth","cellLeftPadding","cellRightPadding","cellExtraRightPadding","gripperBarVerticalStyle","cellTooltip","setAriaDescribedBy","cellTitle","_hasAccessibleLabel","onContextMenu","hasDropdown","isMenuOpen","cellName","nearIcon","sortIcon","filterChevron","_renderAccessibleLabel","dragDropHelper","_addDragDropHandling","isDropped","borderAfterDropping","noBorderAfterDropping","TRANSITION_DURATION_DROP","_dragDropSubscription","_getColumnDragDropOptions","selectionIndex","canDrag","canDrop","onDragStart","updateDropState","onDrop","onDragEnd","filterAriaLabel","sortAscendingAriaLabel","sortDescendingAriaLabel","groupAriaLabel","subscribe","DetailsColumn","cellIsCheck","collapseButton","isSelectAllHidden","isResizingColumn","cellSizer","isResizing","dropHintCircleStyle","dropHintLineStyle","colors","iconForegroundColor","headerForegroundColor","headerBackgroundColor","dropdownChevronForegroundColor","resizerColor","nearIconStyle","borderAfterDragOrDrop","alignContent","NO_COLUMNS","DetailsHeaderBase","_rootElement","_rootComponent","_draggedColumnIndex","_dropHintDetails","_updateDroppingState","_resetDropHints","_onDragOver","_computeDropHintToBeShown","_onDrop","columnReorderProps","_getColumnReorderProps","targetIndex","_currentDropHintIndex","isValidDrop","_isValidCurrentDropHintIndex","_onDropIndexInfo","sourceIndex","onColumnDrop","dragDropDetails","draggedIndex","handleColumnReorder","_updateDragInfo","_isCheckboxColumnHidden","_getDropHintPositions","onColumnDragStart","onColumnDragEnd","columnDragEndLocation","_isEventOnHeader","dropLocation","prevRef","columns","prevX","prevMid","frozenColumnCountFromStart","frozenColumnCountFromEnd","dropHintElement","querySelectorAll","offsetLeft","newMid","originX","startX","endX","dropHintElementRef","eventXRelativePosition","currentDropHintIndex","_liesBetween","currentIndex","lastValidColumn","indexToUpdate","_isBefore","_isAfter","middleIndex","_updateDropHintElement","_renderColumnSizer","columnResizeDetails","isResizable","_stopPropagation","_onSizerBlur","cellSizerStart","cellSizerEnd","cellIsResizing","onDoubleClick","_onSizerDoubleClick","_onSelectAllClicked","selection","columnIndexAttr","columnMinWidth","_onRootMouseMove","isSizing","_onRootKeyDown","onColumnResized","_onSizerMouseMove","buttons","onColumnIsSizingChanged","movement","_onSizerMouseUp","_onToggleCollapseAll","onToggleCollapseAll","newCollapsed","isAllCollapsed","_dragDropHelper","minimumPixelsForDrag","_subscriptionObject","_getHeaderDragDropOptions","previousColumns","ariaLabelForToggleAllGroupsButton","ariaLabelForSelectAllCheckbox","selectAllVisibility","ariaLabelForSelectionColumn","indentWidth","onRenderDetailsCheckbox","groupNestingDepth","checkboxVisibility","showCheckbox","isCheckboxHidden","isCheckboxAlwaysVisible","always","checkTooltip","isHeader","anySelected","canSelect","collapseAllVisibility","visible","cellIsGroupExpander","_isDraggable","_renderDropHint","_renderColumnDivider","sizingOverlay","columnReorderOptions","onDragOver","displayProperty","clientRect","onRenderDivider","dropHintIndex","dropHintStyle","dropHintCaretStyle","onColumnAutoResized","DetailsHeader","tooltipHost","cell","gripperBarVertical","HEADER_HEIGHT","getCellStyles","cellSizerFadeInStyles","cellStyles","borderBottom","cellWrapperPadded","cellIsActionable","cellIsEmpty","SelectAllVisibility","MIN_COLUMN_WIDTH","DetailsListInner","ariaLabelForListHeader","constrainMode","dragDropEvents","isPlaceholderData","isHeaderVisible","layoutMode","onItemInvoked","onItemContextMenu","onColumnHeaderClick","onColumnHeaderContextMenu","selectionPreservedOnEmptyClick","selectionZoneProps","ariaLabelForGrid","rowElementEventMap","shouldApplyApplicationRole","listProps","usePageCache","onShouldVirtualize","viewport","getGroupHeight","onRenderCheckbox","adjustedColumns","isSomeGroupExpanded","listRef","focusZoneRef","groupedListRef","headerRef","onGroupExpandStateChanged","onRowDidMount","onRowWillUnmount","disableSelectionZone","isSelectedOnFocus","onToggleCollapse","onActiveRowChanged","eventsToRegister","onRenderMissingItem","onRenderItemColumn","getCellValueKey","getRowAriaLabel","getRowAriaDescribedBy","checkButtonAriaLabel","checkButtonGroupAriaLabel","checkboxCellClassName","useReducedRowRenderer","enableUpdateAnimations","enterModalSelectionOnTouch","onRenderDefaultRow","selectionZoneRef","rowId","level","groupsInLevel","getGroupNestingDepth","groupedDetailsListIndexMap","indexMap","rowCount","numGroupHeaders","groups_1","numOfGroupHeadersBeforeItem","totalRowCount","useGroupedDetailsListIndexMap","additionalListProps","renderedWindowsAhead","renderedWindowsBehind","isCollapsedGroupSelectVisible","headerProps","defaultOnRenderDetailsHeader","detailsHeaderProps","defaultOnRenderDetailsFooter","propsOnRenderDetailsHeader","onRenderDetailsHeader","propsOnRenderDetailsFooter","onRenderDetailsFooter","detailsFooterProps","columnReorderOnDragEnd","finalDropLocation","outside","surface","colCount","isFixed","fixedColumns","isHorizontalConstrained","horizontalConstrained","onRenderDetailsGroupFooter","onRenderFooter","finalOnRenderDetailsGroupFooter","groupFooterProps","onRenderDetailsGroupHeader","finalOnRenderDetailsGroupHeader","groupHeaderProps","groupIndex","groupKey","ariaColSpan","ariaPosInSet","ariaRowCount","ariaRowIndex","finalGroupProps","selectAllButtonProps","sumColumnWidths","totalWidth","rowWidth","nestingDepth","finalOnRenderRow","onRenderRow","rowProps","flatIndexOffset","onDidMount","onWillUnmount","onRenderListCell","isRightArrow","focusZone","FinalGroupedList","groupedListAs","onHeaderKeyDown","onContentKeyDown","headerWrapper","contentWrapper","selectionClearedOnEscapePress","toggleWithoutModifierPressed","enterModalOnTouch","DetailsListBase","_header","_groupedList","_selectionZone","_onRenderRow","_getDerivedStateFromProps","previousState","setKey","_selection","isAllGroupsCollapsed","newViewportWidth","oldViewportWidth","shouldResetSelection","shouldForceUpdates","nextState","_initialFocusedIndex","initialFocusedIndex","focusedItemIndex","_adjustColumns","_onGroupExpandStateChanged","_onColumnIsSizingChanged","_onRowDidMount","row","itemKey","_getItemKey","_activeRows","_setFocusToRowIfPending","_onRowWillUnmount","_onToggleCollapse","toggleCollapseAll","_onColumnResized","resizingColumn","newWidth","resizingColumnIndex","newCalculatedWidth","onColumnResize","_rememberCalculatedWidth","_onColumnAutoResized","totalCount","measureCell","_onActiveRowChanged","onActiveItemChanged","_columnOverrides","lastWidth","_getAdjustedColumns","measureItem","scrollToMode","focusIndex","_setFocusToRow","getStartItemIndexInView","_notifyColumnsResized","onDidUpdate","_forceListUpdates","_getGroupNestingDepth","ignoreNextFocus","currentWidth","viewportWidth","newItems","newColumns","lastSelectionMode","buildColumns","_getFixedColumns","_getJustifiedColumns","_getColumnOverride","flexMargin","skipViewportMeasures","remainingWidth","sumProportionalWidth","getPaddedWidth","rowCheckWidth","groupExpandWidth","widthFraction","newColumn","fullWidth","shrinkWidth","MAX_VALUE","minimumWidth","availableWidth","baseColumn","isCollapsible","isCollapsable","overflowWidth","originalWidth","isLast","overrides","spaceLeft","justified","onHover","canResizeColumns","sortedColumnKey","groupedColumnKey","isMultiline","firstItem","fieldName","isRowHeader","clickable","paddingOnly","DetailsList","listCell","wordBreak","WebkitOverflowScrolling","ColumnActionsMode","ConstrainMode","ColumnDragEndLocation","DetailsListLayoutMode","CheckboxVisibility","DetailsRowBase","_cellMeasurer","selectionState","getSelectionState","isDropping","onDragEnter","_droppingClassNames","onDragLeave","columnMeasureInfo","_getRowDragDropOptions","_onDidMountCalled","previousProps","onMeasureDone","newSelectionState","onRenderCheck","_onRenderCheck","getRowAriaDescription","rowFieldsAs","RowFields","cellsByColumn","isSelectionModal","droppingClassName","ariaRowDescription","isContentUnselectable","ariaSelected","rowClassNames","cellAnimation","cellPadded","cellUnpadded","_rowClassNames","rowFields","rowHeaderId","columnStartIndex","_ariaRowDescriptionId","checkCell","cellMeasurer","checkCover","eventMap","DetailsRow","DetailsRowGlobalClassNames","cellCheck","listCellFirstChild","isCheckVisible","DEFAULT_CELL_STYLE_PROPS","DEFAULT_ROW_HEIGHTS","rowHeight","compactRowHeight","rowVerticalPadding","compactRowVerticalPadding","getDetailsRowStyles","defaultHeaderText","defaultMetaText","defaultBackground","defaultHoverHeaderText","defaultHoverMetaText","defaultHoverBackground","selectedHeaderText","selectedMetaText","selectedBackground","selectedHoverHeaderText","selectedHoverMetaText","selectedHoverBackground","focusHeaderText","focusMetaText","focusBackground","focusHoverBackground","selectedStyles","borderTop","cannotSelectStyles","rootCompactStyles","cellCompactStyles","defaultCellStyles","FastCheck","_defaultCheckboxRender","checkboxProps","_fastDefaultCheckboxRender","DetailsRowCheck","checkClassName","defaultCheckboxRender","detailsCheckboxProps","CHECK_CELL_WIDTH","DetailsRowFields","cellValueKeysRef","cellValueKeys","getValueKey","cellContentsRender","getCellText","previousValueKey","cellValueKey","showAnimation","ShimmeredDetailsListBase","_onRenderShimmerPlaceholder","onRenderCustomPlaceholder","placeholderElements","_renderDefaultShimmerPlaceholder","customElementsGroup","gapHeight","shimmerElementsRow","shimmerElements","gap","columnIdx","groupWidth","line","_shimmerItems","shimmerLines","detailsListStyles","enableShimmer","removeFadingOverlay","ariaLabelForShimmer","restProps","listClassName","newListProps","ShimmeredDetailsList","DefaultModalProps","isDarkOverlay","isBlocking","containerClassName","topOffsetFixed","DefaultDialogContentProps","normal","topButtonsProps","DialogBase","_getSubTextId","ariaDescribedById","modalProps","dialogContentProps","subText","subtitleAriaId","_defaultSubTextId","_getTitleTextId","ariaLabelledById","titleAriaId","_defaultTitleTextId","dialogDraggableClassName","dragOptions","contentClassName","elementToFocusOnDismiss","firstFocusableSelector","ignoreExternalFocusing","onDismissed","onLayerDidMount","mergedLayerProps","dragHandleSelector","mergedModalProps","draggableHeaderClassName","titleProps","titleId","dialogDefaultMinWidth","dialogDefaultMaxWidth","subTextId","Dialog","DialogFooterType","DialogContentBase","subTextContent","isLargeHeader","largeHeader","isClose","close","groupings","_groupChildren","topButton","innerContent","contents","footers","contentLgHeader","headerLg","DialogContent","DialogType","DialogFooterBase","actionsRight","_renderChildrenAsActions","DialogFooter","VerticalDividerBase","deprecatedGetClassNames","DocumentCardBase","_onAction","onClickHref","onClickTarget","open","location","accentColor","actionable","borderBottomColor","rootActionable","rootCompact","DocumentCard","DocumentCardType","DocumentCardActionsBase","views","viewsIcon","DocumentCardActions","ACTION_SIZE","VERTICAL_PADDING","float","DocumentCardActivityBase","activity","people","multiplePeople","_renderAvatars","_getNameString","avatars","_renderAvatar","avatar","PersonaCoin","profileImageSrc","initialsColor","nameString","DocumentCardActivity","DocumentCardActivityGlobalClassNames","HORIZONTAL_PADDING","DocumentCardDetailsBase","DocumentCardDetails","DocumentCardImageBase","_onImageLoad","imageHasLoaded","imageFit","_renderCornerIcon","_renderCenterIcon","centeredIconWrapper","centeredIcon","cornerIcon","centeredIconSize","cornerIconSize","DocumentCardImage","DocumentCardLocationBase","locationHref","DocumentCardLocation","DocumentCardLocationGlobalClassNames","DocumentCardLogoBase","logoIcon","DocumentCardLogo","DocumentCardPreviewBase","_renderPreviewList","previewImages","getOverflowDocumentCountText","overflowDocumentCount","overflowText","fileListItems","file","fileIndex","fileListIcon","iconSrc","Link","fileListLink","linkProps","fileList","fileListOverflowText","preview","isFileList","_renderPreviewImage","previewImage","previewIconProps","previewIconContainerClass","previewIcon","image","previewImageSrc","DocumentCardPreview","DocumentCardPreviewGlobalClassNames","iconContainer","DocumentCardStatusBase","statusIcon","status","DocumentCardStatus","DocumentCardTitleBase","_titleElement","_measureTitleElement","_truncateTitle","needMeasurement","_truncateWhenInAnimation","originalTitle","overFlowRate","truncatedLength","truncatedTitleFirstPiece","truncatedTitleSecondPiece","_shrinkTitle","titleElement","previousTitle","shouldTruncate","_updateTruncation","showAsSecondaryTitle","_titleTruncationTimer","DocumentCardTitle","DocumentCardTitleGlobalClassNames","DropdownSizePosCache","_size","updateOptions","displayOnlyOptionsCache","_displayOnlyOptionsCache","_cachedOptions","positionInSet","DropdownBase","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","changedOpt","_getPlaceholder","placeHolder","_getTitle","_unused","_onRenderPlaceholder","panelProps","isSmall","panelStyles","Panel","isLightDismiss","hasCloseButton","_renderFocusableList","_onRenderCaretDown","caretDown","_onRenderOption","isItemSelected","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","multiSelectItemStyles","multiSelectItem","_listId","_onRenderItemLabel","optionSetSize","dropdownOptionText","calloutRenderEdge","setSelectedIndex","_onDropdownBlur","_isDisabled","_onDropdownKeyDown","containsExpandCollapseModifier","_moveIndex","_onDropdownKeyUp","_onZoneKeyDown","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","defaultSelectedKeys","_optionId","_getSelectedIndexes","selectedKeyProp","didOptionsChange","propStyles","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","cachedOptions","ariaActiveDescendant","hasError","hasLabel","isRenderingPlaceholder","panelClassName","calloutClassName","dropdown","caretDownWrapper","notifyOnReselect","newIndexes","_copyArray","newArray","array_1","stepValue","stepCounter","dropdownItemsWrapper","dropdownItems","dropdownDivider","dropdownItemHeader","_getAllSelectedIndices","_getSelectedIndex","selectedKey_1","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","borderColorError","dropdownItemStyle","selectedItemBackgroundColor","itemSelectors","titleOpenBorderRadius","calloutOpenBorderRadius","DROPDOWN_HEIGHT","contentInner","pickerText","pickerInput","BaseExtendedPicker","basePickerProps","floatingPicker","selectedItemsList","onSelectionChange","queryString","onQueryStringChanged","onInputFocus","unselectAll","onInputClick","shoudUpdateValue","showPicker","onBackspace","cursorLocation","hidePicker","removeItemAt","_onSelectedItemsChanged","hasSelectedItems","removeSelectedItems","onCopy","onPaste","clipboardData","_onSuggestionSelected","currentRenderedQueryString","processedItem","onItemSelected","newItem_1","processedItemObject","processedItemPromiseLike","resolvedProcessedItem","_addProcessedItem","_onSuggestionsShownOrHidden","suggestionItems","defaultSelectedItems","floatingPickerProps","selectedItemsListProps","clearInput","highlightedItems","activeDescendant","currentSelectedSuggestionIndex","isSuggestionsShown","SelectionZone","headerComponent","renderSelectedItemsList","canAddItems","renderFloatingPicker","itemLimit","FloatingPicker","onRenderFloatingPicker","onSuggestionsHidden","onSuggestionsShown","SelectedItems","onRenderSelectedItems","onItemsDeleted","onItemsRemoved","newItem","onItemAdded","addItems","BaseExtendedPeoplePicker","ExtendedPeoplePicker","getFabricTheme","FabricBase","_removeClassNameFromBody","contextDir","pageDir","componentDir","rootDir","needsTheme","getDir","renderedContent","_addClassNameToBody","applyTheme","applyThemeToBody","classNames_1","currentDoc_1","bodyThemed","inheritFont","Fabric","customButtonStyles","FacepileButton","FacepileBase","_getPersonaControl","persona","getPersonaProps","personaSize","Persona","personaName","_getPersonaCoinControl","chevronButtonProps","maxDisplayablePersonas","personas","overflowPersonas","showAddButton","showTooltip","numPersonasToShow","hasOverflowPersonas","personasPrimary","personasOverflow","itemContainer","_getAddNewElement","members","_onRenderVisiblePersonas","_getOverflowElement","screenReaderOnly","singlePersona","onRenderPersona","onRenderPersonaCoin","personaControl","member","_getElementWithOnClickEvent","_getElementWithoutOnClickEvent","_getElementProps","_onPersonaClick","itemButton","_onPersonaMouseMove","onMouseOut","_onPersonaMouseOut","overflowButtonType","descriptive","_getDescriptiveOverflowElement","downArrow","_getIconElement","more","personaNames","numPersonasNotPictured","descriptiveOverflowButton","onRenderInitials","_renderInitialsNotPictured","transparent","_renderInitials","addButtonProps","addButton","overflowInitialsIcon","Facepile","spacingAroundItemButton","ItemButtonStyles","BaseFloatingPicker","suggestionsControl","SuggestionsControlOfProperType","SuggestionsControl","isComponentMounted","onInputChanged","updateValue","wasShownBeforeUpdate","suggestionsVisible","completeSuggestion","hasSuggestionSelected","currentSuggestion","onSuggestionClick","_updateSuggestionsVisible","onSuggestionRemove","onRemoveSuggestion","removeSuggestion","handleKeyDown","_onValidateInput","_updateActiveDescendant","onValidateInput","createGenericItem","itemToConvert","convertedItems","suggestionStore","convertSuggestionsToSuggestionItems","suggestionsStore","didBind","suggestions","forceResolveSuggestion","currentSuggestionIndex","_bindToInputElement","_onResolveSuggestions","resolveDelay","_unbindFromInputElement","updateSuggestions","renderSuggestions","TypedSuggestionsControl","pickerCalloutProps","onRenderSuggestion","onRenderSuggestionsItem","getSuggestions","shouldLoopSelection","pickerSuggestionsProps","updateSuggestionWithZeroState","onZeroQuerySuggestion","onEmptyInputFocus","updateSuggestionsList","suggestionsArray","suggestionsPromiseLike","currentPromise","newSuggestions","selectedElement","selectedElId","onResolveSuggestions","shouldShow","BaseFloatingPeoplePicker","FloatingPeoplePicker","personaProps","presence","size40","showSecondaryText","createItem","personaToConvert","primaryText","peoplePickerPersona","peoplePickerPersonaContent","SuggestionItemType","actionButton","buttonSelected","suggestionsTitle","suggestionsSpinner","SuggestionsHeaderFooterItem","renderItem","onExecute","suggestionsProps","_suggestions","SuggestionsOfProperType","SuggestionsCore","selectedHeaderIndex","selectedFooterIndex","resetSelectedItem","scrollSelected","deselectAllSuggestions","headerItemsProps","footerItemsProps","suggestionsAvailableAlertText","screenReaderTextStyles","shouldAlertSuggestionsAvailableText","renderHeaderItems","_renderSuggestions","renderFooterItems","getCurrentItem","hasSelection","executeSelectedAction","selectedHeaderItem","selectedFooterItem","isKeyDownHandled","selectNextItem","suggestion","footer","selectFirstItem","selectPreviousItem","selectLastItem","suggestionsHeaderContainerAriaLabel","suggestionsContainer","headerItemProps","suggestionsFooterContainerAriaLabel","footerItemProps","TypedSuggestions","originalItemType","startedItemType","_selectNextItemOfItemType","_getCurrentIndexForType","_getNextItemSectionType","_selectPreviousItemOfItemType","_getPreviousItemSectionType","shouldSelectFirstItem","setSelectedSuggestion","SuggestionsItemOfProperType","SuggestionsItem","_onClickTypedSuggestionsItem","_onRemoveTypedSuggestionsItem","nextSuggestion","previousSuggestion","getSuggestionAtIndex","suggestionsItemClassName","resultsMaximumNumber","showRemoveButtons","suggestionsContainerAriaLabel","TypedSuggestionsItem","suggestionModel","RenderSuggestion","showRemoveButton","onRemoveItem","isSelectedOverride","SuggestionsStore","_isSuggestionModel","_ensureSuggestionModel","getAriaLabel","_firstBumper","_lastBumper","_onRootFocus","_onRootBlur","_onFirstBumperFocus","_onBumperFocus","_onLastBumperFocus","isFirstBumper","currentBumper","nextFocusable","_isBumper","_onFocusCapture","_previouslyFocusedElementInTrapZone","_forceFocusInTrap","_focusStack","doc_1","_forceClickInTrap","clickedElement","_bringFocusIntoZone","_updateEventHandlers","enableAriaHiddenSiblings","_unmodalize","_previouslyFocusedElementOutsideTrapZone","prevForceFocusInsideTrap","newForceFocusInsideTrap","prevDisabled","newDisabled","_returnFocusToInitiator","_disposeClickHandler","_disposeFocusHandler","bumperProps","focusPreviouslyFocusedInnerElement","firstFocusableTarget","_focusAsync","focusSelector","_firstFocusableChild","GroupFooter","groupLevel","footerText","GroupSpacer","dropIcon","expand","iconTag","beziers","GroupHeaderBase","_toggleCollapse","isGroupLoading","newLoadingVisible","isLoadingVisible","onGroupHeaderKeyUp","shouldOpen","_onToggleClick","_onHeaderClick","onGroupHeaderClick","onRenderName","_onRenderName","headerCount","hasMoreData","loadingText","onRenderGroupHeaderCheckbox","expandButtonProps","expandButtonIcon","canSelectGroup","isSelectionCheckVisible","currentlySelected","groupHeaderContainer","expandIsCollapsed","Spinner","GroupHeader","finalRowHeight","checkExpandResetStyles","transitionDelay","GroupShowAll","showAllLinkText","onToggleSummarize","memoizedOnClick","useCallback","SPACER_WIDTH","ROW_HEIGHT","COMPACT_ROW_HEIGHT","GroupedListBase","_renderGroup","dividerProps","onToggleSelectGroup","_onToggleSelectGroup","_onToggleSummarize","showAllProps","footerProps","showEmptyGroups","finalListProps","_getGroupKey","getGroupItemLimit","onRenderGroupHeader","onRenderGroupShowAll","onRenderShowAll","onRenderGroupFooter","groupedListClassNames","_getDefaultGroupItemLimit","_getGroupItemLimit","_getGroupHeight","_getPageHeight","pageGroup","_updateIsSomeGroupExpanded","_isInnerZoneKeystroke","isShowingAll","_getPageSpecification","_isSomeGroupExpanded","_computeIsSomeGroupExpanded","listVersion","_setGroupsCollapsedState","rootListProps","getItemCountForPage","_returnOne","getPageHeight","getPageSpecification","allCollapsed","newIsSomeGroupExpanded","GroupedList","groupIsDropping","CollapseAllVisibility","GroupedListSection","_subGroupRefs","_droppingClassName","_onRenderGroupHeader","_onRenderGroupShowAll","_onRenderGroupFooter","_renderSubGroup","subGroup","subGroupIndex","_getGroupDragDropOptions","isGroup","newIsDropping","_onSelectionChange","renderCount","isShowAllVisible","hasNestedGroups","ariaControlsProps","groupedListId","groupShowAllProps","canDragGroups","_getDroppingClassName","_onRenderGroup","forceListUpdate","subGroupCount","pageRefs","_onRenderGroupCell","computeIsSomeGroupExpanded","setGroupsCollapsedState","_index","renderGroupHeader","_defaultRender","renderGroupShowAll","renderGroupFooter","GroupedListV2FC","groupExpandedVersion","versionFromProps","flatList","toggleVersion","setToggleVersion","listView","memoItems","groupId","itemEnd","flattenItems","flattenedIndex","onToggleCollapseFn","onToggleSummarizeFn","getDividerProps","onRenderCellConditional","ariaProps","ariaLevel","GroupItem","eventGroup","renderHeader","renderShowAll","renderFooter","setIsSelected","changeHandler_1","useIsGroupSelected","GroupedListV2Wrapper","nextListVersion","_forceListUpdate","GroupedListV2","CardCallout","firstFocus","trapFocus","onLeave","mergedCalloutProps","ExpandingCardBase","_expandedElem","_onRenderCompactCard","compactCard","onRenderCompactCard","renderData","_onRenderExpandedCard","firstFrameRendered","expandedCard","expandedCardScroll","onRenderExpandedCard","_checkNeedsScroll","expandedCardHeight","needsScroll","compactCardHeight","expandedCardFirstFrameRendered","onEnter","ExpandingCard","ExpandingCardMode","HoverCardBase","_hoverCard","withTimeOut","_openTimerId","_dismissTimerId","_setDismissedState","cardDismissDelay","_cardOpen","_shouldBlockHoverCard","openHotKey","_currentMouseTarget","_executeCardOpen","isHoverCardVisible","openMode","hotKey","hover","cardOpenDelay","_cardDismiss","isNativeEvent","sticky","_instantOpenAsExpanded","_setEventListeners","instantOpenOnClick","eventListenerTarget","_getTargetElement","nativeEventDismiss","_nativeDismissEvent","_childDismissEvent","onCardExpand","expandedCardOpenDelay","onCardVisible","onCardHide","expandingCardProps","plainCardProps","hoverCardId","commonCardProps","finalExpandedCardProps","finalPlainCardProps","expanding","shouldBlockHoverCard","HoverCard","OpenCardMode","HoverCardType","PlainCardBase","onRenderPlainCard","PlainCard","getIconContent","mergeImageProps","FontIcon","iconContent","accessibleName","finalChildren","getFontIcon","IconBase","_onImageLoadingStateChange","onLoadingStateChange","imageLoadError","imageErrorAs","isPlaceholder","isImage","iconType","iconContentChildren","RootType","ImageType","finalIconContentChildren","MS_ICON","imageContainer","IconType","ImageIcon","ImageBase","_coverStyle","portrait","_imageElement","_frameElement","_onImageLoaded","_computeCoverStyle","loadState","loaded","_onImageError","notLoaded","_checkImageLoaded","shouldFadeIn","shouldStartVisible","maximizeFrame","coverStyle","isLoaded","isLandscape","landscape","isCenter","center","isCenterContain","centerContain","isCenterCover","centerCover","isContain","contain","isCover","cover","isNone","isNotImageFit","naturalWidth","naturalHeight","complete","_svgRegex","desiredRatio","naturalRatio","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","supportsObjectFit","msMaxTouchPoints","fallbackObjectFitStyles","objectFit","ImageFit","ImageCoverStyle","ImageLoadState","keytipDataProps","keytipId","useKeytipData","keytipManager","prevOptions","register","unregister","nativeKeytipProps","describedByPrepend","newKeytipProps","addParentOverflow","keySequences","overflowSetSequence","getKeytipData","useKeytipRef","contentElement","findFirstElement","executeElement","ariaElement","attributeValue","append","dataAttribute","KeytipTree","nodeMap","addNode","uniqueID","persisted","fullSequence","_getFullSequence","nodeID","parentID","_getParentID","getNode","updateNode","prevParent","prevParentNode","onReturn","hasDynamicChildren","removeNode","getExactMatchedNode","keySequence","currentKeytip","possibleNodes","getNodes","_getNodeSequence","getPartiallyMatchedNodes","nodes","nodeMapValues","isCurrentKeytipParent","matchesCurrWithoutOverflow","nodeMapKey","defaultStartSequence","modifierKeys","defaultExitSequence","defaultReturnSequence","KeytipLayerBase","_keytipManager","KeytipManager","_delayedKeytipQueue","_keyHandled","inKeytipMode","_exitKeytipMode","transitionKey","_getModifierKey","processTransitionInput","processInput","_onKeytipAdded","keytip","_keytipTree","_setKeytips","_addKeytipToQueue","currNode","_persistedKeytipChecks","_onKeytipUpdated","_newCurrentKeytipSequences","_triggerKeytipImmediately","_isCurrentKeytipAnAlias","keytipSequence","_onKeytipRemoved","_removeKeytipFromQueue","_onPersistedKeytipAdded","_onPersistedKeytipRemoved","_onPersistedKeytipExecute","_persistedKeytipExecute","overflowButtonSequences","keytipSequences","_setInKeytipMode","_warnIfDuplicateKeytips","duplicateKeytips","_getDuplicateIds","keytipIds","seenIds","managerKeytips","getKeytips","keytips","visibleKeytips","_getVisibleKeytips","_buildTree","_currentSequence","KEYTIP_ADDED","KEYTIP_UPDATED","KEYTIP_REMOVED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","visibleKeytipProps","Keytip","ENTER_KEYTIP_MODE","_enterKeytipMode","EXIT_KEYTIP_MODE","getCurrentSequence","getKeytipTree","currKtp","keytipExitSequences","keytipReturnSequences","_getKtpExecuteTarget","_getKtpTarget","showKeytips","keytipStartSequences","currSequence","currKtpChildren","partialNodes","partialNode","shouldEnterKeytipMode","delayUpdatingKeytipChange","onEnterKeytipMode","uniqueKeytip","persistedKeytips","_delayedQueueTimeout","onExitKeytipMode","overflowKeytipNode","keytipID","getLayerStyles","KeytipContentBase","getCalloutStyles","getCalloutOffsetStyles","KeytipContent","keytipTarget","LabelBase","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","_filteredEventProps","LayerBase","_rootRef","_createLayerElement","hostId","_getHost","_removeLayerElement","layerElement","insertFirst","eventBubblingEnabled","_onFilterEvent","onLayerWillUnmount","isNotHost","layerHost","defaultHostSelector","eventPhase","BUBBLING_PHASE","_defaultHostSelector","_layersByHostId","_layerHostsById","registerLayer","layerHosts","layerHosts_1","notifyLayersChanged","unregisterLayer","layers","layerHosts_2","getLayerCount","getLayerHost","registerLayerHost","unregisterLayerHost","notifyHostChanged","setDefaultTarget","getDefaultTarget","rootNoHost","LayerHost","layerHostId","LinkBase","_link","underline","isButton","isUnderlined","_getRootType","_adjustPropsForRootType","linkColor","linkInteractedColor","linkDisabledColor","getScrollYPosition","scrollPos","scrollY","setScrollYPosition","scrollTo","scrollX","SPACER_KEY_PREFIX","EMPTY_RECT","_measurePageRect","_measureSurfaceRect","_measureScrollRect","_surface","_pageRefs","hasMounted","_resetRequiredWindows","_requiredRect","_measureVersion","_invalidatePageCache","_updatePages","_onRenderRoot","surfaceElement","_onRenderSurface","surfaceRef","pageElements","_onRenderPage","pageProps","page","cellRole","ignoreScrollingState","isScrolling","pages","_estimatedPageHeight","_totalEstimates","_requiredWindowsAhead","_requiredWindowsBehind","_onAsyncScroll","_onAsyncIdle","_onAsyncResize","_onScrollingDone","_cachedPageHeights","_focusedIndex","_pageCache","auto","_getRenderCount","allowedRect","_allowedRect","itemsPerPage","pageSpecification","pageHeight","itemCount","_scrollElement","scrollPosition","scrollWindow","itemPositionWithinPage","itemIndexInPage","scrollBottom","pages_1","isSpacer","_scrollTop","totalRowHeight","_updatePageMeasurements","_materializedRect","finalState","pagesVersion","onPagesUpdated","oldPages","newPages","oldPage","newPage","_updateRenderRects","getTotalListHeight","_surfaceRect","onRenderSurface","onRenderRoot","pages_2","_renderPage","finalOnRenderSurface","_shouldVirtualize","cachedPage","pageElement","pageStyle","_getPageStyle","onRenderPage","newRef","getPageStyle","indexString","innerRect","outerRect","requiredWindowsAhead","requiredWindowsBehind","windowsAhead","windowsBehind","newListState","_buildPages","oldListPages","_notifyPageChanges","onPageAdded","onPageRemoved","renderedIndexes","oldPages_1","newPages_1","_onPageAdded","_onPageRemoved","heightChanged","_measurePage","hasChangedHeight","cachedHeight","measureVersion","newClientRect","materializedRect","pageTop","currentSpacer","focusedIndex","shouldVirtualize","isFirstRender","this_1","pageData","newRect","pageBottom","isPageRendered","isPageInAllowedRange","isPageInRequiredRange","itemsInPage","_createPage","_visibleRect","visibleRect","_getItemCountForPage","visibileRect","pageKey","surfaceRect","getScrollHeight","_scrollHeight","visibleTop","_expandRect","pagesBefore","pagesAfter","ScrollToMode","MarqueeSelectionBase","onShouldStartSelection","_isMouseEventOnScrollbar","_isInSelectionToggle","_isTouch","_isDragStartInSelection","_scrollableSurface","_selectedIndicies","_preservedIndicies","_onAsyncMouseMove","_autoScroll","_scrollLeft","_rootRect","dragRect","hitTarget","isDraggingConstrainedToRoot","dragMask","box","boxFill","targetScrollbarWidth","targetScrollbarHeight","_getRootRect","_lastMouseEvent","rootRect","currentPoint","_dragOrigin","constrainedPoint","_evaluateSelection","_itemRectCache","_isPointInRectangle","rectangle","allElements","itemRect","previousSelectedIndices","_allSelectedIndices","needToUpdate","rootTagName","MarqueeSelection","MessageBarBase","ICON_MAP","info","warning","blocked","severeWarning","success","_getRegionProps","hasActions","_getActionsDiv","_getDismissDiv","regionProps","expandSingleLine","showContent","_renderMultiLine","_renderSingleLine","dismissIconProps","dismissal","dismissButtonAriaLabel","_getDismissSingleLine","dismissSingleLine","_getExpandSingleLine","truncated","overflowButtonAriaLabel","_getIconSpan","messageBarIconProps","messageBarType","_renderInnerText","_getAnnouncementPriority","innerText","multiline","singleline","dismissalSingleLine","expandingSingleLine","actionsSingleline","highContrastBackgroundColor","MessageBar","SmallScreenSelector","dismissalAndExpandIconStyle","dismissalAndExpandStyle","MessageBarType","isDragging","touchAction","eventMapping","move","stop","DraggableZone","_currentEventType","_onDragStop","_onTouchEnd","onTouchEnd","handleSelector","_matchesSelector","preventDragSelector","_touchId","_getTouchId","_getControlPosition","dragData","_createDragDataFromPosition","onStart","lastPosition","_onDrag","updatedData","_createUpdatedDragData","updatedPosition","onDragChange","baseDragData","onStop","statePosition","touchObj","_getActiveTouch","eventToGetOffset","_findTouchInTouchList","changedTouches","touch","identifier","matchesSelectorFn","webkitMatchesSelector","msMatchesSelector","touchList","DefaultLayerProps","ModalBase","_focusTrapZone","_focusTrapZoneMergedRef","_registerInitialModalPosition","dialogMain","modalRectangle","keepInBounds","_minClampedPosition","_maxClampedPosition","modalRectangleTop","_allowScrollOnModal","elt","_allowTouchBodyScroll","_scrollableContent","_onModalContextMenuClose","isModalMenuOpen","_onModalClose","_lastSetX","_lastSetY","isInKeyboardMoveMode","_hasRegisteredKeyUp","ui","_getClampedPosition","handledEvent","_getMoveDelta","_getClampedPositionY","_getClampedPositionX","_onEnterKeyboardMoveMode","_onExitKeyboardMoveMode","focusTrapZoneProps","_registerForKeyUp","hasBeenOpened","allowTouchBodyScroll","_onModalCloseTimer","scrollableContentClassName","overlay","isModeless","isAlert","layerClassName","isAlertRole","isDefaultDragHandle","layer","modalContent","keyboardMoveIconContainer","keyboardMoveIconProps","keyboardMoveIcon","scrollableContent","menu","moveMenuItemText","closeMenuItemText","Popup","Overlay","isDarkThemed","minPosition","maxPosition","Modal","globalClassNames","_urlResolver","isRelativeUrl","NavBase","_onRenderLink","linkText","_renderGroupHeader","_isGroupExpanded","onHeaderClick","isCollapsing","_onGroupHeaderClicked","groupContent","_renderLinks","links","expandButtonAriaLabel","collapseAriaLabel","expandAriaLabel","chevronButton","chevronIcon","isGroupCollapsed","isLinkExpandStateChanged","initialSelectedKey","isOnTop","groupElements","_renderNavLink","linkIndex","nestingLevel","isLinkWithIcon","isSelectedLink","_isLinkSelected","ariaCurrent","isButtonEntry","forceAnchor","leftPadding","LinkAs","linkAs","onRenderLink","_onNavButtonLinkClicked","_onNavAnchorLinkClicked","_renderCompositeLink","isLink","finalExpandBtnAriaLabel","compositeLink","_onLinkExpandClicked","_renderLink","navItem","linkElements","navItems","_toggleCollapsed","onLinkExpandClick","_preventBounce","onLinkClick","protocol","pathname","hash","collapseByDefault","newGroupCollapsed","navHeight","leftPaddingExpanded","rightPadding","OverflowSetBase","_persistedKeytips","_divContainer","_onRenderItems","_onRenderOverflowButtonWrapper","wrapperDivProps","overflowKeytipSequences","newOverflowItems","overflowItem","persistedKeytip","_getSubMenuForItem","menuExecute","newOverflowItem","uniqueComponentProps","overflowSide","showOverflow","focusSucceeded","childElement","_registerPersistedKeytips","_unregisterPersistedKeytips","itemSubMenuProvider","overflowItemStyle","OverflowSet","OverlayBase","isDark","rootDark","PanelVisibilityState","PanelBase","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","isActive","_allowScrollOnPanel","_onRenderNavigation","_onRenderNavigationContent","navigation","_onRenderHeader","_headerTextId","_onPanelClick","headerTextId","headerText","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","closed","isFooterSticky","animatingClosed","animatingOpen","_shouldListenForOuterClick","_dismissOnOuterClick","shouldListenOnOuterClick","previousShouldListenOnOuterClick","isFooterAtBottom","isHiddenOnDismiss","overlayProps","customWidth","onLightDismissClick","onRenderBody","isLeft","smallFixedNear","customNear","isOnRightSide","customWidthStyles","custom","isAnimating","focusTrapZoneClassName","hasCustomNavigation","hiddenPanel","commands","innerHeight_1","onOuterClick","smallFixedFar","smallFluid","largeFixed","extraLarge","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","getPanelBreakpoints","sharedPaddingStyles","isCustomPanel","hyphens","borderTopColor","PanelType","PersonaBase","_onRenderPersonaCoin","_onRenderPrimaryText","_getText","showOverflowTooltip","_onRenderSecondaryText","_onRenderTertiaryText","tertiaryText","_onRenderOptionalText","optionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","coinProps","showUnknownPersonaCoin","coinSize","imageShouldFadeIn","imageShouldStartVisible","initialsTextColor","isOutOfOffice","onPhotoLoadingStateChange","onRenderCoin","presenceTitle","presenceColors","showInitialsUntilImageLoads","personaCoinProps","personaDetails","_renderElement","size8","renderFunction","defaultRenderFunction","tooltip","size48","size56","size72","size100","size120","available","away","busy","doNotDisturb","offline","showSecondaryTextDefaultHeight","sharedTextStyles","isSize8","isSize10","isSize16","isSize24","isSize28","isSize32","isSize40","isSize48","isSize56","isSize72","isSize100","isSize120","isAvailable","isAway","isBlocked","isBusy","isDoNotDisturb","isOffline","PersonaSize","PersonaPresence","PersonaInitialsColor","PersonaPresenceBase","determineIcon","renderIcon","presenceHeightWidth","presenceMaxSize","coinSizeWithPresenceIconStyle","presenceFontMaxSize","coinSizeWithPresenceStyle","presenceIcon","oofIcon","makeOpenCircleIconStyle","makeBeforeBorderStyle","borderSize","makeSizeStyle","presenceColorAvailable","presenceColorAway","presenceColorBusy","presenceColorDnd","dnd","presenceColorOffline","presenceColorOof","oof","presenceColorBackground","isOpenCirclePresence","backgroundClip","size6","getInitialsStyles","PersonaCoinBase","_onRenderCoin","dimension","_onPhotoLoadingStateChange","_onRenderInitials","isImageLoaded","isImageError","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","coin","imageArea","size10WithoutPresenceIcon","perspective","personaPresenceSize","sizeBoolean","extraExtraSmall","extraSmall","sizeToPixels","presenceBoolean","online","COLOR_SWATCHES_LOOKUP","lightBlue","darkBlue","darkGreen","lightPink","pink","lightRed","darkRed","violet","gold","burgundy","warmGray","cyan","rust","coolGray","COLOR_SWATCHES_NUM_ENTRIES","getPersonaInitialsColor","personaInitialsColor","lightGreen","gray","personaInitialsColorToHexCode","hashCode","iLen","ch","getInitialsColorFromName","PivotBase","_renderPivotLink","linkCollection","headerButtonProps","tabId","keyToTabIdMapping","onRenderItemLink","_renderLinkContent","contentString","itemIcon","linkIsSelected","_onLinkClick","_pivotId","_getPivotLinks","defaultSelectedIndex","initialSelectedIndex","_getSelectedKey","_renderPivotLinks","alwaysRender","_renderPivotItem","propsSelectedKey","_isKeyValid","stateSelectedKey","headersOnly","keyToIndexMapping","selectedTabId","_isPivotItem","pivotItem","pivotItemProps","_getTabId","getTabId","_updateSelectedItem","rootIsLarge","linkSize","rootIsTabs","linkFormat","tabs","linkStyles","Pivot","PivotLinkFormat","PivotLinkSize","PivotItem","_containsFocus","needsVerticalScrollBar","_originalFocusedElement","currentWindow","_updateScrollBarAsync","defaultFocusRestorer","_getScrollBar","rootHeight","firstChildHeight","ProgressIndicatorBase","_onRenderProgress","ariaValueText","barHeight","percentComplete","progressBarStyles","ariaValueMin","ariaValueMax","ariaValueNow","itemProgress","progressTrack","progressBar","progressHidden","onRenderProgress","itemName","itemDescription","IndeterminateProgress","IndeterminateProgressRTL","ProgressIndicator","progressTrackColor","marginBetweenText","textHeight","animation","RatingStar","ratingStar","ratingStarBack","ratingStarFront","fillPercentage","RatingBase","_min","allowZeroStars","rating","_getInitialValue","unselectedIcon","onRenderStar","stars","starIds","_getRating","starProps","_getFillingPercentage","ratingStarProps","starNum","_getStarId","ratingButton","ratingStarIsLarge","Large","ratingStarIsSmall","_getLabel","readOnlyAriaLabel","normalModeAriaLabel","readOnlyProps","rootIsSmall","ratingFocusZone","ariaLabelFormat","labelText","_getClampedRating","starPosition","ceilValue","ratingStartIsLarge","_getColorWithHighContrast","highContrastColor","Rating","ratingStarUncheckedColor","ratingStarUncheckedHoverColor","ratingStarUncheckedHoverSelectedColor","ratingStarCheckedColor","ratingStarDisabledColor","ratingSmallIconSize","ratingLargeIconSize","ratingVerticalPadding","RatingSize","getMeasurementCache","measurementsCache","getCachedMeasurement","addMeasurementToCache","getNextResizeGroupStateProvider","measurementCache","_containerDimension","_measurementCache","_getMeasuredDimension","measuredData","getElementToMeasureDimension","cachedDimension","measuredDimension","_shrinkContentsUntilTheyFit","dataToMeasure","nextMeasuredData","renderedData","resizeDirection","getNextState","currentState","newContainerDimension","newDimension","fullDimensionData","measureContainer","_updateContainerDimension","_growDataUntilItDoesNotFit","shouldRenderDataForMeasurement","getInitialResizeGroupState","MeasuredContext","hiddenDivStyles","hiddenParentStyles","ResizeGroupBase","_nextResizeGroupStateProvider","_initialHiddenDiv","_updateHiddenDiv","_hasRenderedContent","dataNeedsMeasuring","isInitialMeasure","_afterComponentRendered","_onResize","containerDimension","boundingRect","refToMeasure","ResizeGroup","ResizeGroupDirection","ScrollablePaneBase","_stickyAboveRef","_stickyBelowRef","_contentContainer","handler","_subscribers","unsubscribe","addSticky","_stickies","contentContainer","setDistanceFromTop","sortSticky","removeSticky","_removeStickyFromContainers","notifySubscribers","sortAgain","stickyAbove","stickyBelow","canStickyTop","stickyContentTop","_addToStickyContainer","canStickyBottom","stickyContentBottom","updateStickyRefHeights","stickyItems","stickyTopHeight","stickyBottomHeight","isStickyTop","isStickyBottom","nonStickyContent","_checkStickyStatus","handle","getScrollPosition","syncScrollSticky","syncScroll","_getScrollablePaneContext","scrollablePane","stickyContainer","stickyContentToAdd","stickyChildrenElements_1","stickyList_1","stickyItem","targetStickyToAppendBefore","stickyListSorted_1","distanceFromTop","stickyContent","stickyListItem","targetContainer","_onWindowResize","scrollbarWidth","_getScrollbarWidth","scrollbarHeight","_getScrollbarHeight","_getStickyContainerStyle","isTop","_notifyThrottled","initialScrollPosition","setStickiesDistanceFromTop","_mutationObserver","MutationObserver","mutationRecord","stickyList_2","childList","subtree","characterData","disconnect","scrollbarVisibility","stickyBelowItems","forceLayoutUpdate","resetSticky","AboveAndBelowStyles","positioningStyle","ScrollbarVisibility","ScrollablePaneContext","SearchBoxBase","_onClickFocus","_onClearClick","clearButtonProps","_onClear","onEscape","onSearch","_latestValue","_callOnChange","_fallbackId","disableAnimation","placeholderValue","hasInput","clearButton","onClear","SearchBox","inputIconAlt","inputIconAltHovered","inputBorderDisabled","inputBackgroundHovered","inputBackgroundDisabled","BaseSelectedItemsList","processedItems","processedItemObjects","processedItemPromiseLikes","resolvedProcessedItems","updateItems","_canRemoveItem","removeItem","replaceItem","itemToReplace","itemsToReplaceWith","removeItems","itemsToRemove","itemsCanRemove","firstItemToRemove","onCopyItems","copyItems","renderItems","removeButtonAriaLabel","onItemChange","onCopyItem","itemToCopy","changedItem","_onSelectedItemsUpdated","copyText","copyInput","execCommand","canRemoveItem","personaContainerIsSelected","validationError","itemContent","removeButton","expandButton","personaWrapper","ExtendedSelectedItem","contextualMenuVisible","onExpandItem","itemId","canExpand","_onClickIconButton","renderPersonaCoin","renderPrimaryText","SelectedItemWithContextMenu","itemElement","beginEditing","_onCloseContextualMenu","renderedItem","menuItems","EditingItem","_editingFloatingPicker","_renderEditingSuggestions","_editingInput","_resolveInputRef","_onInputClick","_onInputBlur","onEditingComplete","getEditingItemText","BasePeopleSelectedItemsList","SelectedPeopleList","_renderItem","_beginEditing","isEditing","_completeEditing","oldItem","expandGroup","onExpandGroup","_createMenuItems","hasContextMenu","editMenuItemText","removeMenuItemText","copyMenuItemText","SeparatorBase","Separator","alignStart","alignCenter","alignEnd","ShimmerBase","contentLoaded","isDataLoaded","_lastTimeoutId","shimmerColors","transitionAnimationInterval","shimmerColor","shimmer","shimmerWaveColor","shimmerWave","shimmerWrapper","shimmerGradient","dataWrapper","shimmerAnimation","shimmerAnimationRTL","Shimmer","ShimmerElementType","ShimmerElementsDefaultHeights","ShimmerCircleBase","viewBox","svg","ShimmerCircle","borderStyles","borderTopStyle","borderBottomStyle","ShimmerElementsGroupBase","findMaxElementHeight","renderedElements","filteredElem","getElementStyles","getRenderedElements","elementHeight","dif","borderBottomWidth","borderTopWidth","topLeftCorner","topRightCorner","bottomLeftCorner","bottomRightCorner","ShimmerElementsGroup","ShimmerGapBase","ShimmerGap","ShimmerLineBase","ShimmerLine","sharedCornerStyles","ONKEYDOWN_TIMEOUT_DURATION","SliderBase","_sliderLine","_thumb","_lowerValueThumb","_onKeyDownTimer","_isAdjustingLowerValue","_getAriaValueText","_calculateCurrentSteps","currentSteps","steps","sliderPositionRect","stepLength","_getPosition","_onMouseDownOrTouchStart","ranged","newRenderedValue","lowerValue","_onMouseMoveOrTouchMove","_onMouseUpOrTouchEnd","suppressEventCancelation","renderedValue","renderedLowerValue","_clearOnKeyDownTimer","_setOnKeyDownTimer","_onThumbFocus","defaultLowerValue","showValue","originFromZero","thumbOffsetPercent","_getPercent","lowerThumbOffsetPercent","originValue","originPercent","activeSectionWidth","topSectionWidth","bottomSectionWidth","lengthString","onMouseDownProp","onTouchStartProp","onKeyDownProp","onFocusProp","showTransitions","divButtonProps","sliderProps","sliderBoxProps","slideBox","thumbProps","lowerValueThumbProps","titleLabel","valueLabel","_getValueLabel","zeroTick","_getStyleUsingOffsetPercent","lineContainer","inactiveSection","activeSection","valueFormat","currentPosition","_setValueState","roundedValue","isAdjustingLowerValue","valueChanged","snapToStep","numDec","shouldAdjustLowerThumb","shouldAdjustUpperThumb","Slider","titleLabelClassName","pressedActiveSectionColor","hoveredActiveSectionColor","hoveredPressedinactiveSectionColor","restActiveSectionColor","restInactiveSectionColor","disabledActiveSectionColor","disabledInactiveSectionColor","thumbBackgroundColor","thumbBorderColor","thumbDisabledBorderColor","slideBoxActiveSectionStyles","slideBoxInactiveSectionStyles","slideHoverSectionStyles","slideBoxActiveThumbStyles","slideBoxActiveZeroTickStyles","_getDisabledStyles","SpinButtonTextColorDisabled","SpinButtonBackgroundColorDisabled","getArrowButtonStyles","isUpArrow","customSpecificArrowStyles","ArrowButtonTextColor","ArrowButtonTextColorHovered","ArrowButtonTextColorPressed","ArrowButtonBackgroundHovered","ArrowButtonBackgroundPressed","defaultArrowButtonStyles","SpinButtonRootBorderColor","SpinButtonRootBackgroundColor","SpinButtonRootBorderColorHovered","SpinButtonRootBorderColorFocused","SpinButtonInputTextColor","SpinButtonInputTextColorSelected","SpinButtonInputBackgroundColorSelected","SpinButtonIconDisabledColor","labelWrapperStart","labelWrapperEnd","labelWrapperTop","labelWrapperBottom","spinButtonWrapper","spinButtonWrapperTopBottom","spinButtonWrapperHovered","spinButtonWrapperFocused","spinButtonWrapperDisabled","DEFAULT_MIN_WIDTH","inputTextSelected","arrowButtonsContainer","arrowButtonsContainerDisabled","isFocused","keyboardSpinDirection","labelPosition","_getStyleForLabelBasedOnPosition","_getStyleForRootBasedOnPosition","arrowBox","KeyboardSpinDirection","SpinButton","_input","_initialStepDelay","_stepDelay","_spinningByMouse","notSpinning","_stop","_validate","_onValidate","onValidate","_defaultOnValidate","_calculatePrecision","_lastValidValue","_onIncrement","onIncrement","_defaultOnIncrement","_precision","_onDecrement","onDecrement","_defaultOnDecrement","_valueToValidate","shouldSpin","stepDelay","stepFunction","_currentStepFunctionHandle","_handleKeyDown","spinDirection","_handleKeyUp","_onIncrementMouseDown","_onDecrementMouseDown","_inputId","incrementButtonIcon","incrementButtonAriaLabel","decrementButtonIcon","decrementButtonAriaLabel","customUpArrowButtonStyles","upArrowButtonStyles","customDownArrowButtonStyles","downArrowButtonStyles","SpinnerBase","ariaLive","statusMessage","styleSize","spinAnimation","SpinnerSize","SpinnerType","nameMap","StackStatics","Item","StackItem","disableShrink","stackChildren","defaultItemProps","shrink","Slots","verticalFill","grow","horizontalAlign","childrenGap","rowGap","columnGap","horizontalMargin","verticalMargin","childStyles","commonSelectors","alignMap","align","order","_getThemedSpacing","_getValueUnitGap","numericalPart","numericalValue","numericalString","parseGap","splitGap","calculatedGap","parsePadding","paddingValues","padding1","padding2","Sticky","_stickyContentTop","_stickyContentBottom","_nonStickyContent","_placeHolder","isScrollSynced","_getContext","_onScrollEvent","footerStickyContainer","_getNonStickyDistanceFromTop","_getStickyDistanceFromTop","_getStickyDistanceFromTopForFooter","offsetTop","footerStickyVisibleContainer","currElem","stickyPosition","Both","Footer","_isOffsetHeightDifferent","stickyClassName","_getStickyPlaceholderHeight","_getNonStickyPlaceholderHeightAndWidth","_getContentStyles","isSticky","stickyBackgroundColor","_getBackground","curr","contextType","StickyPositionType","getColorPickerGridCellButtonClassNames","ColorCell","ColorPickerGridCellBase","_onRenderColorOption","colorOption","cx","cy","idPrefix","onWheel","isWhite","_isWhiteCell","colorCell","inputColor","cellHighContrastFocus","ColorPickerGridCell","buttonBorderHovered","buttonBorderChecked","buttonBorderCheckedHovered","buttonBorderIsWhite","calculatedBorderWidth","SwatchColorPickerBase","navigationIdleDelay","_getItemsWithIndex","onRenderColorCell","_onSwatchColorPickerBlur","onCellFocused","_cellFocused","getColorGridCellStyles","_onCellClick","_onGridCellHovered","_onGridCellFocused","cellShape","_onMouseEnter","_onMouseLeave","_onWheel","cellHeight","cellWidth","cellBorderWidth","focusOnHover","isNavigationIdle","parentSelector","mouseLeaveParentSelector","elements","_setNavigationTimeout","navigationIdleTimeoutId","async","onCellHovered","onColorChanged","selectedId","colorCells","newSelectedIndex","setSize","shouldFocusCircularNavigate","cellMargin","tableCell","focusedContainer","SwatchColorPicker","borderCollapse","TeachingBubbleBase","_defaultCalloutProps","setCalloutProps","hasCloseIcon","isWide","stylesProps","TeachingBubble","bodyContent","headerIsCondensed","headerIsSmall","headerIsLarge","primaryButton","secondaryButton","buttonLabel","opacityFadeIn","headerStyle","hasCondensedHeadline","hasSmallHeadline","hasHeadline","primaryButtonClassName","secondaryButtonClassName","hasLargeHeadline","hideDefaultFocusRing","imageContent","TeachingBubbleContentBase","headerContent","footerContent","illustrationImage","primaryButtonProps","secondaryButtonProps","customFooterContent","HeaderWrapperAs","BodyContentWrapperAs","TeachingBubbleContent","DEFAULT_MASK_FORMAT_CHARS","parseMask","mask","formatChars","maskCharData","escapedChars","maskChar","maskFormat","displayIndex","getMaskDisplay","maskDisplay","lastDisplayIndex","maskCharData_1","charData","nextChar","getRightFormatIndex","clearRange","selectionCount","insertString","newString","stringIndex","nextIndex","isStringInserted","DEFAULT_MASK_CHAR","MaskedTextField","_isFocused","_maskCharData","maskCursorPosition","_moveCursorOnMouseUp","_changeSelectionData","changeType","cursorPos","charsSelected","charCount","startPos","pastedString","isDel","clearNext","clearPrev","getLeftFormatIndex","enteredString","selectCount","_onPaste","valueIndex","charDataIndex","testVal","blur","setSelectionStart","setSelectionEnd","__browserNeedsRevealButton","TextFieldBase","_textElement","validateOnFocusIn","validateOnFocusOut","_onRevealButtonClick","isRevealingPassword","isSameValue","_lastChangeValue","prevValue","_getValue","uncontrolledValue","_warnControlledUsage","_delayedValidate","deferredValidationTime","_lastValidation","_adjustInputHeight","validateOnLoad","getSnapshotBeforeUpdate","snapshot","_shouldValidateAllChanges","inputClassName","resizable","autoAdjustHeight","canRevealPassword","onRenderPrefix","_onRenderPrefix","onRenderSuffix","_onRenderSuffix","_errorMessage","hasRevealButton","isEdge","_browserNeedsRevealButton","fieldGroup","_renderTextArea","_renderInput","revealButton","revealSpan","revealIcon","_isDescriptionAvailable","componentId","defaultValueProp","onChangeProp","readOnlyProp","_hasWarnedNullValue","textAreaProps","updatedInputProps","_latestValidateValue","onGetErrorMessage","currentValidation_1","_notifyAfterValidate","onNotifyValidationResult","unresizable","active","getLabelStyles","fieldPrefixSuffix","resize","Text","TextStyles","block","nowrap","variantObject","TextView","ThemeGenerator","setSlot","isCustomization","overwriteCustomColor","colorAsIColor","_setSlot","insureSlots","slotRules","ruleName","inherits","getThemeAsJson","getThemeAsCode","_makeRemainingCode","getThemeAsCodeWithCreateTheme","getThemeAsSass","camelCasedName","getThemeForPowerShell","outputColor","isCustomized","asShade","isBackgroundShade","dependentRules","ruleToUpdate","BaseSlots","FabricSlots","SemanticColorSlots","themeRulesStandardCreator","_makeFabricSlotRule","slotName","inheritedBase","inheritedShade","thisSlotRule","baseSlot","shadeName","shadeValue","Unshaded","primaryColor","foregroundColor","Shade1","Shade2","Shade3","Shade4","Shade5","Shade6","Shade7","Shade8","ToggleBase","_toggleButton","checkedProp","onAriaLabel","offAriaLabel","offText","onText","inlineLabel","stateText","badAriaLabel","toggleNativeProps","onOffMissing","toggleId","stateTextId","labelledById","ariaRole","renderPill","pill","pillContent","Toggle","pillUncheckedBackground","pillCheckedBackground","pillCheckedHoveredBackground","thumbUncheckedHoveredBackground","pillCheckedDisabledBackground","thumbBackground","thumbCheckedBackground","thumbDisabledBackground","thumbCheckedDisabledBackground","pillBorderColor","pillBorderHoveredColor","pillBorderDisabledColor","DEFAULT_PILL_HEIGHT","DEFAULT_THUMB_SIZE","TooltipBase","Tooltip","tooltipGapSpace","devicePixelRatio","TooltipDelay","TooltipHostBase","_tooltipHost","_defaultTooltipId","show","_toggleTooltip","_hideTooltip","Self","_onTooltipMouseEnter","_currentVisibleTooltip","overflowElement","_clearDismissTimer","_clearOpenTimer","delayTime","_getDelayTime","_onTooltipMouseLeave","closeDelay","_onTooltipKeyDown","isTooltipVisible","onTooltipToggle","long","isAriaPlaceholderRendered","tooltipProps","tooltipId","isContentPresent","onBlurCapture","ariaPlaceholder","TooltipHost","TooltipOverflowMode","inputFocused","pickerItems","legacyStyles","BasePicker","suggestionsType","suggestionElement","SuggestionOfProperType","Suggestions","_styledSuggestions","dismissSuggestions","selectItemFunction","addItemOnDismiss","hasSelectedSuggestion","addItemByIndex","refocusSuggestions","resetFocus","moreSuggestionsAvailable","isMostRecentlyUsedVisible","_userTriggeredSuggestions","onInputBlur","hasSuggestedActionSelected","_completeGenericSuggestion","tryHandleKeyDown","hasSuggestedAction","focusAboveSuggestions","onSuggestionSelect","focusBelowSuggestions","_updateSelectedItems","onGetMoreResults","isSearching","isResultsFooterVisible","completeSelection","addItem","focusNextItem","_shouldFocusZoneEnterInnerZone","createGenericSuggestion","_ariaMap","selectedSuggestionAlert","suggestionList","combobox","SuggestionsController","oldState","currentSelectedIndex","focusInput","forceComplete","suggestionsAvailable","itemsWrapper","getSuggestionsAlert","getActiveDescendant","StyledTypedSuggestions","isLoading","suggestionsLoading","removeSuggestionAriaLabel","suggestionsListId","newEl","itemValue","_getTextFromItem","emptyResolveSuggestions","onEmptyResolveSuggestions","_updateAndResolveValue","_getShowSuggestions","resolveNewValue","suggestionAlertClassName","enableSelectedSuggestionAlert","selectedSuggestion","selectedSuggestionAlertText","getTextFromItem","BasePickerListBelow","disabledOverlayColor","ValidationState","BasePeoplePicker","MemberListPeoplePicker","NormalPeoplePickerBase","CompactPeoplePickerBase","ListPeoplePickerBase","currentValidationState","NormalPeoplePicker","CompactPeoplePicker","ListPeoplePicker","PeoplePickerItemBase","personaStyles","personaCoinStyles","personaCoin","PeoplePickerItem","isInvalid","REMOVE_BUTTON_SIZE","personaPrimaryTextStyles","personaSecondaryTextStyles","personaCoinInitialsStyles","PeoplePickerItemSuggestionBase","PeoplePickerItemSuggestion","textSelectorsStyles","isSuggested","StyledSuggestionsItem","_forceResolveButton","_searchForMoreButton","isEventHandled","newSelectedActionType","currentSelectedAction","selectedActionType","suggestionLength","forceResolve","_refocusOnSuggestions","searchMore","_getAlertText","noResultsFoundText","_getMoreResults","_forceResolve","_shouldShowForceResolve","showForceResolve","activeSelectedElement","forceResolveText","mostRecentlyUsedHeaderText","searchForMoreIcon","searchForMoreText","onRenderNoResultFound","searchingText","resultsFooterFull","resultsFooter","suggestionsHeaderText","suggestionsClassName","forceResolveButtonSelected","searchForMoreButtonSelected","searchForMoreButton","forceResolveButton","noSuggestions","suggestionsNone","spinnerStyles","spinner","spinnerClassNameOrStyles","noResults","footerTitle","hasNoSuggestions","forceResolveId","searchForMoreId","focusSearchForMoreButton","StyledTypedSuggestionsItem","suggestionsItem","suggestionsItemIsSuggested","actionButtonSelectedStyles","SuggestionActionType","suggested","SuggestionsItemGlobalClassNames","TagItemBase","enableTagFocusInDisabledPicker","TagItem","TAG_HEIGHT","TagItemSuggestionBase","suggestionTextOverflow","TagItemSuggestion","TagPickerBase","TagPicker","ButtonGridBase","htmlProps","rowsOfItems","rowIndex","cellIndex","ButtonGrid","Grid","ButtonGridCell","cellDisabledStyle","cellIsSelectedStyle","GridCell","_rgbaOrHexString","MAX_COLOR_SATURATION","MAX_COLOR_HUE","MAX_COLOR_VALUE","MAX_COLOR_RGB","MAX_COLOR_RGBA","MAX_COLOR_ALPHA","MIN_HEX_LENGTH","MAX_HEX_LENGTH","MIN_RGBA_LENGTH","MAX_RGBA_LENGTH","HEX_REGEX","RGBA_REGEX","correctHSV","cssColor","_rgba","_hex6","_hex3","hasAlpha","expectedPartCount","rgba","_hsla","elem","eComputedStyle","computedColor","_browserCompute","getColorFromHSV","hsv","hsl2hsv","hsl2rgb","hsv2hex","hsv2hsl","sl","hsv2rgb","rgb","rgb2hex","_rgbToPaddedHex","rgb2hsv","Shade","WhiteShadeTableBG","BlackTintTableBG","WhiteShadeTable","BlackTintTable","LumTintTable","LumShadeTable","ColorTintTable","ColorShadeTable","LowLuminanceThreshold","HighLuminanceThreshold","isValidShade","shade","_darken","factor","_lighten","getShade","hsl","tableIndex","_soften","_strongen","_isWhite","_isBlack","getBackgroundShade","getContrastRatio","color1","color2","_getThing","L1","L2","updateRGB","getIsChecked","hasSubmenu","isItemDisabled","getMenuItemAriaRole","BaseDecorator","_updateComposedComponentRef","composedComponentInstance","_composedComponentInstance","_hoisted","ResponsiveMode","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","setResponsiveMode","initializeResponsiveMode","getResponsiveMode","getInitialResponsiveMode","WithResponsiveMode","unknown","getWidthOfCurrentWindow","RESIZE_DELAY","MAX_RESIZE_ATTEMPTS","withViewport","WithViewportComponent","_registerResizeObserver","_viewportResizeObserver","ResizeObserver","_unregisterResizeObserver","_updateViewport","withForceUpdate","viewportElement","scrollElement","_resizeAttempts","delayFirstMeasure","disableResizeObserver","_isResizeObserverAvailable","previousSkipViewportMeasures","newViewport","DragDropHelper","_dragEnterCounts","_activeTargets","_lastId","_initialized","dragDropOptions","_onDocumentMouseUp","isDroppable","activeTarget","handlers","updateDropState_1","dragDropTarget","_isDroppable","eventMap_1","event_1","isHandled","_isDragging","dataTransfer","handlers_1","_dragData","dropTarget","_isChild","eventTarget","dragTarget","dragContext","GetGroupCount","remainingGroups","currentGroup","useResponsiveMode","lastResponsiveMode","setLastResponsiveMode","newResponsiveMode","transitionKeysAreEqual","key1","key2","mod1","mod2","transitionKeysContain","buildKeytipConfigMap","configMap","constructKeytip","parentSequence","sequence","optionalProps","KeytipEvents","KTP_PREFIX","KTP_SEPARATOR","KTP_FULL_PREFIX","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","DATAKTP_ARIA_TARGET","KTP_LAYER_ID","KTP_ARIA_SEPARATOR","sequenceMapping","_instance","_getUniqueKtp","oldKeyTip","keytipToRemove","enterKeytipMode","exitKeytipMode","parentKeytip","sequencesToID","mergeOverflows","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","ktpTargetFromSequences","ktpTargetFromId","getAriaDescribedBy","describedby","_createPositionData","isAuto","DirectionalDictionary","_isRectangleWithinBounds","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","_alignEdges","_isEdgeInBounds","_alignOutOfBoundsEdges","outOfBoundsEdges","elementEstimate","bounding","outOfBoundsEdges_1","elementRectangle","_centerEdgeToPoint","_estimatePosition","elementToPosition","estimatedElementPosition","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","directions","currentEstimate","currentEdge","currentAlignment","_flipToFit","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_adjustFitWithinBounds","_getRectangleFromElement","_getRectangleFromIRect","_positionElementRelative","previousPositions","targetRectangle","rectOrPoint","outOfBounds_1","_getTargetRect","_getAlignmentData","positionInformation","_getPositionData","positionedElement","_finalizePositionData","doNotFinalizeReturnEdge","finalizedElement","returnValue","elementEdgeString","_finalizeElementPosition","_positionCallout","_calculateActualBeakWidthInPixels","positionProps","positionedBeak","finalizedBeakPosition","beakTargetPoint","elementBounds","_positionBeak","closestEdge","positionElement","_positionElement","positionCallout","positionCard","_positionCard","getMaxHeight","mouseTarget","elementTarget","rectOrPointTarget","boundingRectangle","_getMaxHeightFromTargetRectangle","getOppositeEdge","getBoundsFromTargetWindow","segments","getWindowSegments","segments_1","segment","_getBoundsFromTargetWindow","RectangleEdge","Position","getAllSelectedOptions","selectedIndices_1","SelectableOptionMenuItemType","SELECTION_INDEX_ATTRIBUTE_NAME","SELECTION_TOGGLE_ATTRIBUTE_NAME","SELECTION_INVOKE_ATTRIBUTE_NAME","SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME","_handleNextFocus","_onMouseDownCapture","_hasAttribute","isToggleModifierPressed","_isCtrlPressed","_isMetaPressed","_getSelectionMode","_shouldHandleFocus","isToggle","itemRoot","_findItemRoot","_getItemIndex","_getItemSpan","_setIsTouch","_onItemSurfaceClick","_updateModifiers","_isSelectionDisabled","_shouldAutoSelect","_isShiftPressed","_onInvokeMouseDown","disableAutoSelectOnInputElements","_onTouchStartCapture","enableTouchInvocationTarget","isSelectionDisabled","_onToggleAllClick","span","_onInvokeClick","_onContextMenu","_onDoubleClick","_isInputElement","isSelectAllKey","isClearSelectionKey","_findScrollParentAndTryClearOnEmptyClick","onKeyDownCapture","_isTabPressed","_clearAndSelectIndex","scrollParent","_tryClearOnEmptyClick","Node","_isNonHandledClick","selectionClearedOnSurfaceClick","indexValue","spanValue","handleFocus","_shouldHandleFocusTimeoutId","isTouch","_isTouchTimeoutId","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","decorate","aa","ba","ca","da","ea","fa","ha","ia","B","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","for","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","construct","Qa","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","Children","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","ob","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","pb","nodeValue","qb","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","ub","menuitem","area","br","embed","keygen","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","_reactName","_targetInst","isPropagationStopped","isPersistent","wd","xd","yd","sd","isTrusted","ud","vd","Ad","screenX","screenY","pageX","pageY","getModifierState","zd","movementX","movementY","Bd","Dd","Fd","Hd","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","ie","le","datetime","email","password","tel","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","anchorNode","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","instance","listener","G","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","J","K","Q","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","Cf","N","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","O","eg","fg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","A","Dg","Eg","Fg","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","isPureReactComponent","Mg","Ng","componentWillReceiveProps","Og","componentWillMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","ji","ki","mi","baseLanes","ni","oi","pi","componentWillUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","unstable_expectedLoadTime","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","V","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hk","_calculateChangedBits","unstable_observedBits","unmount","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","_createClass","defineProperties","Constructor","protoProps","staticProps","React","AppContainer","_Component","_classCallCheck","ReferenceError","_possibleConstructorReturn","subClass","superClass","_inherits","__self","__source","keyPrefix","suspense","IsSomeRendererActing","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","createRef","forwardRef","isValidElement","lazy","_ctor","_status","_result","memo","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","Constants","LIBRARY_NAME","SKU","CACHE_PREFIX","DEFAULT_AUTHORITY","DEFAULT_AUTHORITY_HOST","DEFAULT_COMMON_TENANT","ADFS","DSTS","AAD_INSTANCE_DISCOVERY_ENDPT","CIAM_AUTH_URL","AAD_TENANT_DOMAIN_SUFFIX","RESOURCE_DELIM","NO_ACCOUNT","CLAIMS","CONSUMER_UTID","OPENID_SCOPE","PROFILE_SCOPE","OFFLINE_ACCESS_SCOPE","EMAIL_SCOPE","CODE_RESPONSE_TYPE","CODE_GRANT_TYPE","RT_GRANT_TYPE","FRAGMENT_RESPONSE_MODE","S256_CODE_CHALLENGE_METHOD","URL_FORM_CONTENT_TYPE","AUTHORIZATION_PENDING","NOT_DEFINED","EMPTY_STRING","NOT_APPLICABLE","NOT_AVAILABLE","FORWARD_SLASH","IMDS_ENDPOINT","IMDS_VERSION","IMDS_TIMEOUT","AZURE_REGION_AUTO_DISCOVER_FLAG","REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX","KNOWN_PUBLIC_CLOUDS","TOKEN_RESPONSE_TYPE","ID_TOKEN_RESPONSE_TYPE","SHR_NONCE_VALIDITY","INVALID_INSTANCE","OIDC_DEFAULT_SCOPES","OIDC_SCOPES","HeaderNames","PersistentCacheKeys","AADAuthorityConstants","ClaimsRequestKeys","PromptValue","LOGIN","SELECT_ACCOUNT","CONSENT","NONE","CREATE","NO_SESSION","CodeChallengeMethodValues","PLAIN","S256","ServerResponseType","QUERY","FRAGMENT","ResponseMode","FORM_POST","CacheAccountType","Separators","CredentialType","ID_TOKEN","ACCESS_TOKEN","ACCESS_TOKEN_WITH_AUTH_SCHEME","REFRESH_TOKEN","APP_METADATA","THE_FAMILY_ID","AUTHORITY_METADATA_CONSTANTS","AuthorityMetadataSource","SERVER_TELEM_CONSTANTS","SCHEMA_VERSION","MAX_CUR_HEADER_BYTES","MAX_LAST_HEADER_BYTES","MAX_CACHED_ERRORS","CACHE_KEY","CATEGORY_SEPARATOR","VALUE_SEPARATOR","OVERFLOW_TRUE","OVERFLOW_FALSE","UNKNOWN_ERROR","AuthenticationScheme","BEARER","POP","SSH","ThrottlingConstants","JsonWebTokenTypes","Jwt","Jwk","Pop","unexpectedError","postRequestFailed$1","AuthErrorCodes","freeze","postRequestFailed","AuthErrorMessages","AuthErrorMessage","AuthError","errorCode","suberror","subError","setCorrelationId","correlationId","createAuthError","additionalMessage","clientInfoDecodingError","clientInfoEmptyError","tokenParsingError","nullOrEmptyToken","endpointResolutionError","networkError","openIdConfigError","hashNotDeserialized","invalidState","stateMismatch","stateNotFound","nonceMismatch","authTimeNotFound","maxAgeTranspired","multipleMatchingTokens","multipleMatchingAccounts","multipleMatchingAppMetadata","requestCannotBeMade","cannotRemoveEmptyScope","cannotAppendScopeSet","emptyInputScopeSet","deviceCodePollingCancelled","deviceCodeExpired","deviceCodeUnknownError","noAccountInSilentRequest","invalidCacheRecord","invalidCacheEnvironment","noAccountFound","noCryptoObject","unexpectedCredentialType","invalidAssertion","invalidClientCredential","tokenRefreshRequired","userTimeoutReached","tokenClaimsCnfRequiredForSignedJwt","authorizationCodeMissingFromServerResponse","bindingKeyNotRemoved","endSessionEndpointNotSupported","keyIdMissing","noNetworkConnectivity$1","userCanceled","missingTenantIdError","methodNotImplemented","nestedAppAuthBridgeDisabled","ClientAuthErrorCodes","noNetworkConnectivity","ClientAuthErrorMessages","ClientAuthErrorMessage","unableToGetOpenidConfigError","invalidStateError","stateMismatchError","stateNotFoundError","nonceMismatchError","authTimeNotFoundError","tokenRequestCannotBeMade","removeEmptyScopeError","appendScopeSetError","emptyInputScopeSetError","DeviceCodePollingCancelled","DeviceCodeExpired","DeviceCodeUnknownError","NoAccountInSilentRequest","noCryptoObj","tokenClaimsRequired","noAuthorizationCodeFromServer","bindingKeyNotRemovedError","logoutNotSupported","userCanceledError","ClientAuthError","createClientAuthError","DEFAULT_CRYPTO_IMPLEMENTATION","createNewGuid","base64Decode","base64Encode","base64UrlEncode","encodeKid","getPublicKeyThumbprint","removeTokenBindingKey","clearKeystore","signJwt","hashString","LogLevel","Logger","loggerOptions","setLoggerOptions","createDefaultLoggerOptions","localCallback","loggerCallback","piiLoggingEnabled","logLevel","logMessage","containsPii","executeCallback","errorPii","Warning","warningPii","infoPii","verbose","Verbose","verbosePii","Trace","tracePii","isPiiLoggingEnabled","name$1","version$1","AzureCloudInstance","None","AzurePublic","AzurePpe","AzureChina","AzureGermany","AzureUsGovernment","extractTokenClaims","encodedToken","jswPayload","authToken","getJWSPayload","base64Decoded","checkMaxAge","authTime","maxAge","nowSeconds","isTokenExpired","expiresOn","expirationSec","wasClockTurnedBack","cachedAt","generateCredentialKey","credentialEntity","generateAccountId","generateCredentialId","generateTarget","generateClaimsHash","generateScheme","createIdTokenEntity","homeAccountId","environment","idToken","clientId","tenantId","credentialType","secret","realm","createAccessTokenEntity","accessToken","scopes","extExpiresOn","refreshOn","tokenType","userAssertionHash","keyId","requestedClaims","requestedClaimsHash","atEntity","extendedExpiresOn","tokenClaims","cnf","kid","createRefreshTokenEntity","refreshToken","familyId","rtEntity","isCredentialEntity","entity","clientOrFamilyId","generateAuthorityMetadataExpiresAt","updateAuthorityEndpointMetadata","authorityMetadata","updatedValues","fromNetwork","authorization_endpoint","token_endpoint","end_session_endpoint","issuer","endpointsFromNetwork","jwks_uri","updateCloudDiscoveryMetadata","preferred_cache","preferred_network","aliasesFromNetwork","isAuthorityMetadataExpired","metadata","expiresAt","redirectUriEmpty","claimsRequestParsingError","authorityUriInsecure","urlParseError","urlEmptyError","emptyInputScopesError","invalidPromptValue","invalidClaims","tokenRequestEmpty","logoutRequestEmpty","invalidCodeChallengeMethod","pkceParamsMissing","invalidCloudDiscoveryMetadata","invalidAuthorityMetadata","untrustedAuthority","missingSshJwk","missingSshKid","missingNonceAuthenticationHeader","invalidAuthenticationHeader","cannotSetOIDCOptions","cannotAllowPlatformBroker","authorityMismatch","ClientConfigurationErrorCodes","ClientConfigurationErrorMessages","ClientConfigurationErrorMessage","redirectUriNotSet","emptyScopesError","invalidPrompt","invalidClaimsRequest","tokenRequestEmptyError","logoutRequestEmptyError","invalidCodeChallengeParams","ClientConfigurationError","createClientConfigurationError","StringUtils","isEmptyObj","strObj","queryStringToObject","query","trimArrayEntries","removeEmptyStringsFromArray","jsonParseHelper","matchPattern","ScopeSet","inputScopes","scopeArr","filteredInput","inputScopeString","createSearchScopes","scopeSet","containsOnlyOIDCScopes","removeScope","removeOIDCScopes","containsScope","lowerCaseScopes","printScopesLowerCase","lowerCaseScopesSet","containsScopeSet","asArray","defaultScopeCount","defaultScope","appendScope","newScope","appendScopes","newScopes","unionScopeSets","otherScopes","unionScopes","intersectingScopeSets","sizeOtherScopes","getScopeCount","sizeThisScopes","printScopes","buildClientInfo","rawClientInfo","decodedClientInfo","buildClientInfoFromHomeAccountId","clientInfoParts","utid","tenantIdMatchesHomeTenant","buildTenantProfile","localAccountId","idTokenClaims","oid","tid","tfp","acr","isHomeTenant","updateAccountTenantProfileData","baseAccountInfo","tenantProfile","idTokenSecret","updatedAccountInfo","tenantProfileOverride","claimsSourcedTenantProfile","getTenantIdFromIdTokenClaims","ProtocolMode","AAD","OIDC","AccountEntity","generateAccountKey","generateAccountCacheKey","username","getAccountInfo","nativeAccountId","authorityType","tenantProfiles","isSingleTenant","accountInterface","homeTenantId","createAccount","accountDetails","authority","account","clientInfo","protocolMode","env","getPreferredCache","preferredUsername","preferred_username","upn","emails","cloudGraphHostName","msGraphHost","createFromAccountInfo","accountInfo","generateHomeAccountId","serverClientInfo","authType","logger","cryptoObj","isAccountEntity","accountInfoIsEqual","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","iat","stripLeadingHashOrQuery","responseString","getDeserializedResponse","normalizedResponse","deserializedHash","fromEntries","URLSearchParams","error_description","UrlString","urlString","_urlString","canonicalizeUri","lowerCaseUrl","validateAsUri","getUrlComponents","HostNameAndPort","PathSegments","Protocol","appendQueryString","removeHashFromUrl","replaceTenantPath","urlObject","pathArray","constructAuthorityUriFromObject","regEx","urlComponents","AbsolutePath","QueryString","pathSegments","getDomainFromUrl","getAbsoluteUrl","relativeUrl","baseComponents","hashContainsKnownProperties","response","EndpointMetadata","InstanceDiscoveryMetadata","tenant_discovery_endpoint","InstanceDiscoveryMetadataAliases","getAliasesFromMetadata","authorityHost","cloudDiscoveryMetadata","getCloudDiscoveryMetadataFromNetworkResponse","metadataEntry","cacheQuotaExceededErrorCode","cacheUnknownErrorCode","CacheErrorMessages","CacheError","CacheManager","cryptoImpl","staticAuthorityOptions","commonLogger","getAllAccounts","accountFilter","buildTenantProfiles","getAccountsFilteredBy","getAccountInfoFilteredBy","allAccounts","getBaseAccountInfo","accountEntities","cachedAccounts","accountEntity","getTenantProfilesFromAccountEntity","getTenantedAccountInfoByFilter","tokenKeys","tenantProfileFilter","tenantedAccountInfo","tenantProfileMatchesFilter","getIdToken","idTokenClaimsMatchTenantProfileFilter","targetTenantId","searchTenantProfiles","getTokenKeys","matchingTenantProfiles","matchLocalAccountIdFromTenantProfile","matchLocalAccountIdFromTokenClaims","loginHint","matchLoginHintFromTokenClaims","matchUsername","matchName","sid","matchSid","saveCacheRecord","cacheRecord","storeInCache","setAccount","setIdTokenCredential","saveAccessToken","setRefreshTokenCredential","appMetadata","setAppMetadata","credential","accessTokenFilter","currentScopes","removedAccessTokens","accessTokenKeyMatchesFilter","tokenEntity","getAccessTokenCredential","credentialMatchesFilter","removeAccessToken","setAccessTokenCredential","allAccountKeys","getAccountKeys","matchingAccounts","isAccountKey","getAccount","matchHomeAccountId","matchEnvironment","matchRealm","matchNativeAccountId","matchAuthorityType","isCredentialKey","lowerCaseKey","clientIdValidation","familyIdValidation","matchClientId","matchUserAssertionHash","matchCredentialType","matchFamilyId","matchTarget","matchTokenType","matchKeyId","getAppMetadataFilteredBy","allCacheKeys","getKeys","matchingAppMetadata","isAppMetadata","getAppMetadata","getAuthorityMetadataByAlias","getAuthorityMetadataKeys","matchedEntity","isAuthorityMetadata","getAuthorityMetadata","removeAllAccounts","removedAccounts","removeAccount","accountKey","removeAccountContext","allTokenKeys","accountId","removedCredentials","removeIdToken","removeRefreshToken","removeAppMetadata","readAccountFromCache","targetRealm","performanceClient","idTokenFilter","idTokenMap","getIdTokensByFilter","numIdTokens","tokensToBeRemoved","homeIdTokenMap","numHomeIdTokens","addFields","multiMatchedID","idTokenKeys","idTokens","idTokenKeyMatchesFilter","getIdTokenCredential","inputKey","getAccessToken","request","authScheme","authenticationScheme","sshKid","accessTokenKeys","accessTokens","numAccessTokens","multiMatchedAT","keyMustContainAllScopes","getAccessTokensByFilter","getRefreshToken","familyRT","refreshTokenFilter","refreshTokenKeys","refreshTokens","refreshTokenKeyMatchesFilter","getRefreshTokenCredential","numRefreshTokens","multiMatchedRT","readAppMetadataFromCache","appMetadataFilter","appMetadataEntries","numAppMetadata","isAppMetadataFOCI","claims","cachedUsername","filterUsername","staticAliases","canonicalAuthority","knownAuthorities","getAliasesFromStaticSources","cloudMetadata","login_hint","generateAuthorityMetadataCacheKey","DefaultStorageClass","setServerTelemetry","getServerTelemetry","setAuthorityMetadata","setThrottlingCache","getThrottlingCache","DEFAULT_SYSTEM_OPTIONS","tokenRenewalOffsetSeconds","preventCorsPreflight","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_CACHE_OPTIONS","claimsBasedCachingEnabled","DEFAULT_NETWORK_IMPLEMENTATION","sendGetRequestAsync","sendPostRequestAsync","DEFAULT_LIBRARY_INFO","sku","cpu","os","DEFAULT_CLIENT_CREDENTIALS","clientSecret","clientAssertion","DEFAULT_AZURE_CLOUD_OPTIONS","azureCloudInstance","tenant","DEFAULT_TELEMETRY_OPTIONS","application","appName","appVersion","isOidcProtocolMode","authOptions","CcsCredentialType","CLIENT_ID","REDIRECT_URI","RESPONSE_TYPE","TOKEN_TYPE","REQ_CNF","RETURN_SPA_CODE","X_CLIENT_EXTRA_SKU","BROKER_CLIENT_ID","BROKER_REDIRECT_URI","RequestValidator","validateRedirectUri","redirectUri","validatePrompt","prompt","promptValues","validateClaims","validateCodeChallengeParams","codeChallenge","codeChallengeMethod","validateCodeChallengeMethod","RequestParameterBuilder","parameters","addResponseTypeCode","addResponseTypeForTokenAndIdToken","addResponseMode","responseMode","addNativeBroker","addScopes","addOidcScopes","defaultScopes","requestScopes","addClientId","addRedirectUri","addPostLogoutRedirectUri","addIdTokenHint","idTokenHint","addDomainHint","domainHint","addLoginHint","addCcsUpn","addCcsOid","addSid","addClaims","clientCapabilities","mergedClaims","addClientCapabilitiesToClaims","addCorrelationId","addLibraryInfo","libraryInfo","addApplicationTelemetry","appTelemetry","addPrompt","addState","addNonce","addCodeChallengeParams","addAuthorizationCode","addDeviceCode","addRefreshToken","addCodeVerifier","codeVerifier","addClientSecret","addClientAssertion","addClientAssertionType","clientAssertionType","addOboAssertion","oboAssertion","addRequestTokenUse","tokenUse","addGrantType","grantType","addClientInfo","addExtraQueryParameters","eQParams","addUsername","addPassword","addPopToken","cnfString","addSshJwk","sshJwkString","addServerTelemetry","serverTelemetryManager","generateCurrentRequestHeaderValue","generateLastRequestHeaderValue","addThrottling","addLogoutHint","logoutHint","addBrokerParameters","brokerParams","brokerClientId","brokerRedirectUri","createQueryString","queryParameterArray","embeddedClientId","embeddedRedirectUri","instrumentBrokerParams","PerformanceEvents","AcquireTokenByCode","AcquireTokenByRefreshToken","AcquireTokenSilent","AcquireTokenSilentAsync","AcquireTokenPopup","AcquireTokenPreRedirect","AcquireTokenRedirect","CryptoOptsGetPublicKeyThumbprint","CryptoOptsSignJwt","SilentCacheClientAcquireToken","SilentIframeClientAcquireToken","AwaitConcurrentIframe","SilentRefreshClientAcquireToken","SsoSilent","StandardInteractionClientGetDiscoveredAuthority","FetchAccountIdWithNativeBroker","NativeInteractionClientAcquireToken","BaseClientCreateTokenRequestHeaders","NetworkClientSendPostRequestAsync","RefreshTokenClientExecutePostToTokenEndpoint","AuthorizationCodeClientExecutePostToTokenEndpoint","BrokerHandhshake","AcquireTokenByRefreshTokenInBroker","AcquireTokenByBroker","RefreshTokenClientExecuteTokenRequest","RefreshTokenClientAcquireToken","RefreshTokenClientAcquireTokenWithCachedRefreshToken","RefreshTokenClientAcquireTokenByRefreshToken","RefreshTokenClientCreateTokenRequestBody","AcquireTokenFromCache","SilentFlowClientAcquireCachedToken","SilentFlowClientGenerateResultFromCacheRecord","AcquireTokenBySilentIframe","InitializeBaseRequest","InitializeSilentRequest","InitializeClientApplication","InitializeCache","SilentIframeClientTokenHelper","SilentHandlerInitiateAuthRequest","SilentHandlerMonitorIframeForHash","SilentHandlerLoadFrame","SilentHandlerLoadFrameSync","StandardInteractionClientCreateAuthCodeClient","StandardInteractionClientGetClientConfiguration","StandardInteractionClientInitializeAuthorizationRequest","StandardInteractionClientInitializeAuthorizationCodeRequest","GetAuthCodeUrl","HandleCodeResponseFromServer","HandleCodeResponse","UpdateTokenEndpointAuthority","AuthClientAcquireToken","AuthClientExecuteTokenRequest","AuthClientCreateTokenRequestBody","AuthClientCreateQueryString","PopTokenGenerateCnf","PopTokenGenerateKid","HandleServerTokenResponse","DeserializeResponse","AuthorityFactoryCreateDiscoveredInstance","AuthorityResolveEndpointsAsync","AuthorityResolveEndpointsFromLocalSources","AuthorityGetCloudDiscoveryMetadataFromNetwork","AuthorityUpdateCloudDiscoveryMetadata","AuthorityGetEndpointMetadataFromNetwork","AuthorityUpdateEndpointMetadata","AuthorityUpdateMetadataWithRegionalInformation","RegionDiscoveryDetectRegion","RegionDiscoveryGetRegionFromIMDS","RegionDiscoveryGetCurrentVersion","AcquireTokenByCodeAsync","GetEndpointMetadataFromNetwork","GetCloudDiscoveryMetadataFromNetworkMeasurement","HandleRedirectPromiseMeasurement","HandleNativeRedirectPromiseMeasurement","UpdateCloudDiscoveryMetadataMeasurement","UsernamePasswordClientAcquireToken","NativeMessageHandlerHandshake","NativeGenerateAuthResult","RemoveHiddenIframe","ClearTokensAndKeysWithClaims","CacheManagerGetRefreshToken","ImportExistingCache","SetUserData","GeneratePkceCodes","GenerateCodeVerifier","GenerateCodeChallengeFromVerifier","Sha256Digest","GetRandomValues","GenerateHKDF","GenerateBaseKey","Base64Decode","UrlEncodeArr","Encrypt","Decrypt","PerformanceEventAbbreviations","IntFields","telemetryClient","inProgressEvent","startMeasurement","eventCount","incrementFields","invokeAsync","setPreQueueTime","RegionDiscovery","networkInterface","detectRegion","environmentRegion","regionDiscoveryMetadata","addQueueMeasurement","autodetectedRegionName","region_source","IMDS_OPTIONS","localIMDSVersionResponse","getRegionFromIMDS","currentIMDSVersion","getCurrentVersion","currentIMDSVersionResponse","headers","Metadata","Authority","cacheManager","authorityOptions","managedIdentity","_canonicalAuthority","region_used","region_outcome","regionDiscovery","getAuthorityType","authorityUri","canonicalAuthorityUrlComponents","_canonicalAuthorityUrlComponents","hostnameAndPort","authorizationEndpoint","discoveryComplete","replacePath","tokenEndpoint","deviceCodeEndpoint","endSessionEndpoint","selfSignedJwtAudience","jwksUri","canReplaceTenant","reservedTenantDomains","replaceTenant","endpoint","cachedAuthorityUrlComponents","canonical_authority","cachedAuthorityParts","currentPart","cachedPart","defaultOpenIdConfigurationEndpoint","canonicalAuthorityHost","isAliasOfKnownMicrosoftAuthority","resolveEndpointsAsync","metadataEntity","getCurrentMetadataEntity","cloudDiscoverySource","endpointSource","updateEndpointMetadata","updateCachedMetadata","authorityEndpointSource","endpointMetadataResult","localMetadata","updateEndpointMetadataFromLocalSources","azureRegionConfiguration","azureRegion","updateMetadataWithRegionalInformation","getEndpointMetadataFromNetwork","configMetadata","getEndpointMetadataFromConfig","skipAuthorityMetadataCache","hardcodedMetadata","getEndpointMetadataFromHardcodedValues","metadataEntityExpired","isAuthoritySameType","openIdConfigurationEndpoint","isValidResponse","isOpenIdConfigResponse","userConfiguredAzureRegion","replaceWithRegionalInformation","localMetadataSource","updateCloudDiscoveryMetadataFromLocalSources","getCloudDiscoveryMetadataFromNetwork","getCloudDiscoveryMetadataFromConfig","createCloudDiscoveryMetadataFromHost","isInKnownAuthorities","instanceDiscoveryEndpoint","typedResponseBody","isCloudInstanceDiscoveryResponse","isCloudInstanceDiscoveryErrorResponse","typedError","generateAuthority","authorityString","azureCloudOptions","authorityAzureCloudInstance","isAlias","isPublicCloudAuthority","buildRegionalAuthorityString","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","regionalMetadata","transformCIAMAuthority","ciamAuthority","authorityUrlComponents","formatAuthorityUri","buildStaticAuthorityOptions","rawCloudDiscoveryMetadata","createDiscoveredInstance","networkClient","authorityUriFinal","acquireTokenAuthority","ServerError","errorNo","ThrottlingUtils","generateThrottlingStorageKey","thumbprint","preProcess","throttleTime","errorCodes","postProcess","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","error_codes","currentSeconds","removeThrottle","homeAccountIdentifier","resourceRequestMethod","resourceRequestUri","shrClaims","NetworkError","httpStatus","responseHeaders","createNetworkError","BaseClient","configuration","userAuthOptions","systemOptions","userSystemOptions","userLoggerOption","cacheOptions","userCacheOptions","storageInterface","storageImplementation","networkImplementation","cryptoInterface","cryptoImplementation","clientCredentials","telemetry","persistencePlugin","serializableCache","instanceAware","buildClientConfiguration","cryptoUtils","createTokenRequestHeaders","ccsCred","executePostToTokenEndpoint","queuedEvent","sendPostRequest","clearTelemetryCache","refreshTokenSize","refresh_token","httpVerToken","requestId","contentTypeHeader","contentLengthHeader","updateAuthority","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","createTokenQueryParameters","parameterBuilder","tokenQueryParameters","noTokensFound","nativeAccountUnavailable","refreshTokenExpired","interactionRequired","consentRequired","loginRequired","badToken","InteractionRequiredAuthErrorCodes","InteractionRequiredServerErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthErrorMessages","InteractionRequiredAuthErrorMessage","noTokensFoundError","native_account_unavailable","bad_token","InteractionRequiredAuthError","timestamp","traceId","isInteractionRequiredError","errorString","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","createInteractionRequiredAuthError","ProtocolUtils","setRequestState","userState","libraryState","generateLibraryState","stateObj","stateString","parseRequestState","splitState","libraryStateString","libraryStateObj","userRequestState","PopTokenGenerator","generateCnf","reqCnf","generateKid","reqCnfString","xms_ksl","signPopToken","signPayload","shrNonce","shrOptions","resourceUrlString","resourceUrlComponents","ts","client_claims","TokenCacheContext","tokenCache","hasChanged","cacheHasChanged","ResponseHandler","cacheStorage","validateServerAuthorizationCodeResponse","serverResponse","requestState","decodedServerResponseState","decodedRequestState","serverErrorNo","errorCodePrefixIndex","error_uri","errorCodePrefix","parseServerErrorNo","trace_id","correlation_id","validateTokenResponse","refreshAccessToken","errString","serverError","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","forceCacheRefreshTokenResponse","serverRequestId","requestStateObj","id_token","auth_time","client_info","key_id","generateCacheRecord","cacheContext","beforeCacheAccess","generateAuthenticationResult","afterCacheAccess","claimsTenantId","cachedIdToken","cachedAccount","buildAccountToCache","cachedAccessToken","access_token","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","token_type","cachedRefreshToken","rtExpiresOn","refresh_token_expires_in","foci","cachedAppMetadata","fromTokenCache","popKid","popTokenGenerator","spa_accountid","fromCache","spa_code","fromNativeBroker","baseAccountKey","baseAccount","cloud_graph_host_name","msgraph_host","newTenantProfile","getClientAssertion","AuthorizationCodeClient","includeRedirectUri","oidcDefaultScopes","OIDCOptions","getAuthCodeUrl","createAuthCodeUrlQueryString","acquireToken","executeTokenRequest","responseHandler","handleFragmentResponse","serverParams","cachedState","getLogoutUri","logoutRequest","createLogoutUrlQueryString","queryParametersString","requestBody","createTokenRequestBody","ccsCredential","tokenBodyParameters","assertion","assertionType","reqCnfData","sshJwk","enableSpaAuthorizationCode","extraQueryParameters","extraScopesToConsent","accountSid","extractAccountSid","accountLoginHintClaim","extractLoginHint","addExtraQueryParams","platformBroker","postLogoutRedirectUri","RefreshTokenClient","forceCache","acquireTokenByRefreshToken","acquireTokenWithCachedRefreshToken","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","refreshTokenExpirationOffsetSeconds","refreshTokenRequest","badRefreshTokenKey","SilentFlowClient","authResponse","cacheOutcome","acquireCachedToken","lastCacheOutcome","forceRefresh","setCacheOutcome","requestTenantId","getTenantFromAuthorityString","incrementCacheHits","generateResultFromCacheRecord","StubbedNetworkModule","ServerTelemetryManager","telemetryRequest","apiId","wrapperSKU","wrapperVer","telemetryCacheKey","platformFieldsArr","nativeBrokerErrorCode","getNativeBrokerErrorCode","platformFields","requestWithRegionDiscoveryFields","getRegionDiscoveryFields","lastRequests","getLastRequests","maxErrors","maxErrorsToSend","failedRequests","errorCount","cacheHits","cacheFailedRequest","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","regionDiscoveryFields","regionUsed","regionSource","regionOutcome","updateRegionDiscoveryMetadata","setNativeBrokerErrorCode","clearNativeBrokerErrorCode","makeExtraSkuString","skus","libraryName","libraryVersion","extensionName","extensionVersion","skuMap","skuArr","skuName","skuVersion","setSku","missingKidError","missingAlgError","JoseHeaderErrorMessages","JoseHeaderError","createJoseHeaderError","JoseHeader","typ","alg","getShrHeaderString","shrHeaderOptions","shrHeader","StubPerformanceMeasurement","endMeasurement","flushMeasurement","StubPerformanceClient","generateId","measureName","discard","eventId","startTimeMs","startPerformanceMeasurement","calculateQueuedTime","discardMeasurements","removePerformanceCallback","addPerformanceCallback","emitEvents","cacheEventByCorrelationId","compactStackLine","filePathIx","filePath","fileNameIx","PerformanceClient","applicationTelemetry","intFields","abbreviations","eventsByCorrelationId","eventStack","queueMeasurements","preQueueTimeByCorrelationId","getPreQueueTime","preQueueEvent","preQueueTime","currentTime","queueTime","manuallyCompleted","queueMeasurement","existingMeasurements","measurementArray","eventCorrelationId","rootEvent","isRoot","queueInfo","totalQueueTime","totalQueueCount","manuallyCompletedCount","durationMs","getDurationMs","peek","abbrEventName","subErr","childErr","dur","fail","childName","siblings","endContext","getQueueInfo","incompleteSubMeasurements","stackMaxSize","subErrorCode","errorStack","stackArr","firstLine","ix","compactStack","errorName","addError","finalEvent","incompleteSubsCount","subMeasurement","queuedTimeMs","queuedCount","queuedManuallyCompletedCount","truncateIntegralFields","queueMeasurementForCorrelationId","callbackId","pkceNotCreated","cryptoNonExistent","emptyNavigateUri","hashEmptyError","noStateInHash","hashDoesNotContainKnownProperties","unableToParseState","stateInteractionTypeMismatch","interactionInProgress","popupWindowError","emptyWindowError","userCancelled","monitorPopupTimeout","monitorWindowTimeout","redirectInIframe","blockIframeReload","blockNestedPopups","iframeClosedPrematurely","silentLogoutUnsupported","noAccountError","silentPromptValueError","noTokenRequestCacheError","unableToParseTokenRequestCacheError","noCachedAuthorityError","authRequestNotSetError","invalidCacheType","nonBrowserEnvironment","databaseNotOpen","getRequestFailed","failedToParseResponse","unableToLoadToken","cryptoKeyNotFound","authCodeRequired","authCodeOrNativeAccountIdRequired","spaCodeAndNativeAccountIdPresent","databaseUnavailable","unableToAcquireTokenFromNativePlatform","nativeHandshakeTimeout","nativeExtensionNotInstalled","nativeConnectionNotEstablished","uninitializedPublicClientApplication","nativePromptNotSupported","invalidBase64String","invalidPopTokenRequest","failedToBuildHeaders","failedToParseHeaders","BrowserAuthErrorCodes","ErrorLink","BrowserAuthErrorMessages","BrowserAuthErrorMessage","pkceNotGenerated","cryptoDoesNotExist","emptyNavigateUriError","hashDoesNotContainStateError","hashDoesNotContainKnownPropertiesError","unableToParseStateError","stateInteractionTypeMismatchError","userCancelledError","monitorPopupTimeoutError","monitorIframeTimeoutError","redirectInIframeError","blockTokenRequestsInHiddenIframeError","blockAcquireTokenInPopupsError","iframeClosedPrematurelyError","silentLogoutUnsupportedError","authRequestNotSet","notInBrowserEnvironment","failedToParseNetworkResponse","unableToLoadTokenError","signingKeyNotFoundInStorage","authCodeOrNativeAccountRequired","spaCodeAndNativeAccountPresent","invalidBase64StringError","BrowserAuthError","createBrowserAuthError","BrowserConstants","NativeConstants","NativeExtensionMethod","BrowserCacheLocation","LocalStorage","SessionStorage","MemoryStorage","TemporaryCacheKeys","StaticCacheKeys","InMemoryCacheKeys","ApiId","acquireTokenRedirect","acquireTokenPopup","ssoSilent","acquireTokenSilent_authCode","handleRedirectPromise","acquireTokenByCode","acquireTokenSilent_silentFlow","logout","logoutPopup","InteractionType","InteractionStatus","Startup","Login","Logout","AcquireToken","HandleRedirect","DEFAULT_REQUEST","DB_NAME","DB_TABLE_NAME","CacheLookupPolicy","Default","AccessToken","AccessTokenAndRefreshToken","RefreshToken","RefreshTokenAndNetwork","Skip","iFrameRenewalPolicies","urlEncode","urlEncodeArr","inputArr","base64EncArr","TextEncoder","encode","aBytes","binString","fromCodePoint","btoa","TextDecoder","base64DecToArr","base64String","encodedString","atob","codePointAt","AES_GCM","HKDF","S256_HASH_ALG","PUBLIC_EXPONENT","UUID_CHARS","UINT32_ARR","Uint32Array","ENCRYPT","DECRYPT","keygenAlgorithmOptions","modulusLength","publicExponent","sha256Digest","dataString","crypto","subtle","digest","getRandomValues","dataBuffer","getRandomUint32","currentTimestamp","baseRand","randA","trunc","randBHi","randBLo","exportJwk","exportKey","generateBaseKey","generateKey","generateHKDF","baseKey","importKey","deriveKey","salt","encrypt","rawData","encodedData","derivedKey","encryptedData","iv","decrypt","decryptedData","plainText","hashBuffer","storageNotSupported","stubbedPublicClientApplicationCalled","inMemRedirectUnavailable","BrowserConfigurationAuthErrorCodes","BrowserConfigurationAuthErrorMessages","BrowserConfigurationAuthErrorMessage","storageNotSupportedError","stubPcaInstanceCalled","BrowserConfigurationAuthError","createBrowserConfigurationAuthError","clearHash","history","replaceState","origin","replaceHash","urlParts","isInIframe","isInPopup","opener","getCurrentUri","getHomepage","blockReloadInHiddenIframes","blockRedirectInIframe","allowRedirectInIframe","blockAcquireTokenInPopups","blockNonBrowserEnvironment","blockAPICallsBeforeInitialize","initialized","preflightCheck$1","redirectPreflightCheck","system","cacheLocation","storeAuthStateInCookie","preconnect","URL","crossOrigin","createGuid","BrowserUtils","preflightCheck","NavigationClient","navigateInternal","defaultNavigateWindow","navigateExternal","noHistory","timeout","FetchClient","responseStatus","reqHeaders","getFetchHeaders","fetch","onLine","getHeaderDict","reqBody","Headers","optionsHeaders","headerDict","DEFAULT_IFRAME_TIMEOUT_MS","BaseOperatingContext","debug","browserEnvironment","auth","userInputAuth","userInputCache","userInputSystem","userInputTelemetry","isBrowserEnvironment","DEFAULT_AUTH_OPTIONS","navigateToLoginRequestUrl","serverResponseType","supportsNestedAppAuth","temporaryCacheLocation","secureCookies","cacheMigrationEnabled","DEFAULT_LOGGER_OPTIONS","providedSystemOptions","navigationClient","loadFrameTimeout","windowHashTimeout","iframeHashTimeout","navigateFrameWait","redirectNavigationTimeout","asyncPopups","allowPlatformBroker","nativeBrokerHandshakeTimeout","pollIntervalMilliseconds","client","buildConfiguration","logLevelKey","piiLoggingKey","getConfig","getLogger","BridgeStatusCode","BridgeProxy","initializeNestedAppAuthBridge","nestedAppAuthBridge","responsePayload","responseEnvelope","bridgeRequests","bridgeResponse","buildRequest","validateBridgeResultOrThrow","initContext","getTokenInteractive","getToken","getTokenSilent","requestType","sendRequest","tokenParams","getHostCapabilities","capabilities","getAccountContext","accountContext","requestParams","messageType","sendTime","clientLibrary","clientLibraryVersion","sdkName","sdkVersion","NestedAppOperatingContext","bridgeProxy","getModuleName","MODULE_NAME","ID","getBridgeProxy","__initializeNestedAppAuth","ex","StandardOperatingContext","DatabaseStorage","dbName","tableName","dbOpen","openDB","indexedDB","createObjectStore","closeConnection","validateDbIsOpen","dbGet","transaction","objectStore","dbPut","put","dbDelete","dbGetKeys","containsKey","dbContainsKey","deleteDatabase","deleteDbRequest","getUserData","setUserData","cacheKeys","AsyncMemoryStorage","inMemoryCache","indexedDBCache","handleDatabaseAccessError","clearInMemory","clearPersistent","dbDeleted","CryptoOps","skipValidateSubtleCrypto","validateCryptoAvailable","inputKid","publicKeyThumbMeasurement","keyPair","extractable","usages","generateKeyPair","EXTRACTABLE","POP_KEY_USAGES","publicKeyJwk","publicKey","publicJwkString","getSortedObjectString","kty","publicJwkHash","privateKeyJwk","privateKey","unextractablePrivateKey","importJwk","requestMethod","requestUri","signJwtMeasurement","cachedKeyPair","publicKeyJwkString","encodedKeyIdThumbprint","encodedShrHeader","jwk","tokenString","tokenBuffer","signatureBuffer","signedJwt","CookieStorage","cookieList","cookieLifeDays","secure","cookieStr","expireTime","getCookieExpirationTime","cookieParts","storage","accountKeys","ENCRYPTION_KEY","memoryStorage","cookieString","parsedCookie","encryptionCookie","importExistingCache","keyStr","cookieData","getContext","importArray","getItemFromEncryptedCache","rawCache","encObj","encryptedCacheExpiredCount","unencryptedCacheCount","importedArr","promiseArr","promise","extractBrowserRequestState","browserCrypto","BrowserCacheManager","cacheConfig","internalStorage","browserStorage","getStorageImplementation","temporaryCacheStorage","cookieStorage","validateAndParseJson","jsonValue","parsedJson","serializedAccount","removeAccountKeyFromMap","parsedAccount","addAccountKeyToMap","removalIndex","removeTokenKey","addTokenKey","idRemoval","accessRemoval","refreshRemoval","idTokenKey","parsedIdToken","accessTokenKey","parsedAccessToken","refreshTokenKey","parsedRefreshToken","appMetadataKey","parsedMetadata","generateAppMetadataKey","serverTelemetryKey","parsedEntity","validateKey","validateEntity","isServerTelemetryEntity","serverTelemetry","isAuthorityMetadataEntity","setWrapperMetadata","wrapperVersion","getWrapperMetadata","getActiveAccount","activeAccountKeyFilters","generateCacheKey","activeAccountValueFilters","activeAccountValueObj","setActiveAccount","activeAccountKey","activeAccountValue","throttlingCacheKey","parsedThrottlingCache","isThrottlingEntity","throttlingCache","getTemporaryCache","itemCookie","setTemporaryCache","removeTemporaryItem","clearTokensAndKeysWithClaims","generateAuthorityKey","stateId","generateNonceKey","generateStateKey","getCachedAuthority","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","resetRequestCache","setInteractionInProgress","cleanRequestByState","stateKey","cleanRequestByInteractionType","interactionType","stateValue","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","parsedRequest","cachedAuthority","getCachedNativeRequest","cachedRequest","isInteractionInProgress","getInteractionInProgress","inProgress","hydrateCache","idTokenEntity","claimsHash","cacheRtCount","cacheIdCount","cacheAtCount","DEFAULT_BROWSER_CACHE_MANAGER","isInBrowser","getAccountByUsername","getAccountByHomeId","getAccountByLocalId","EventType","INITIALIZE_START","INITIALIZE_END","ACCOUNT_ADDED","ACCOUNT_REMOVED","ACTIVE_ACCOUNT_CHANGED","LOGIN_START","LOGIN_SUCCESS","LOGIN_FAILURE","ACQUIRE_TOKEN_START","ACQUIRE_TOKEN_SUCCESS","ACQUIRE_TOKEN_FAILURE","ACQUIRE_TOKEN_NETWORK_START","SSO_SILENT_START","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","ACQUIRE_TOKEN_BY_CODE_START","ACQUIRE_TOKEN_BY_CODE_SUCCESS","ACQUIRE_TOKEN_BY_CODE_FAILURE","HANDLE_REDIRECT_START","HANDLE_REDIRECT_END","POPUP_OPENED","LOGOUT_START","LOGOUT_SUCCESS","LOGOUT_FAILURE","LOGOUT_END","RESTORE_FROM_BFCACHE","EventHandler","eventCallbacks","addEventCallback","eventTypes","removeEventCallback","emitEvent","eventType","BaseInteractionClient","storageImpl","eventHandler","nativeMessageHandler","clearCacheOnLogout","getRedirectUri","requestRedirectUri","initializeServerTelemetryManager","telemetryPayload","getDiscoveredAuthority","instanceAwareEQ","requestExtraQueryParameters","resolvedAuthority","requestAuthority","resolvedInstanceAware","userAuthority","builtAuthority","requestAzureCloudOptions","discoveredAuthority","generatePkceCodes","generateCodeVerifier","verifier","challenge","generateCodeChallengeFromVerifier","pkceCodeVerifier","pkceHashedCodeVerifier","initializeBaseRequest","validatedRequest","initializeSilentRequest","baseRequest","StandardInteractionClient","initializeAuthorizationCodeRequest","generatedPkceParams","initializeLogoutRequest","validLogoutRequest","getLogoutHintFromIdTokenClaims","createAuthCodeClient","clientConfig","getClientConfiguration","initializeAuthorizationRequest","browserState","userSwitch","NativeAuthErrorMessages","NativeAuthError","isFatalNativeAuthError","createNativeAuthError","SilentCacheClient","silentRequest","silentAuthClient","NativeInteractionClient","provider","nativeStorageImpl","nativeStorageManager","silentCacheClient","getExtensionId","getExtensionVersion","addRequestSKUs","extraParameters","nativeATMeasurement","nativeRequest","initializeNativeRequest","acquireTokensFromCache","isNativeBroker","nativeTokenRequest","messageBody","sendMessage","validatedResponse","validateNativeResponse","handleNativeResponse","createSilentCacheRequest","fullAccount","rootMeasurement","remainingParameters","onRedirectNavigate","navigationOptions","createHomeAccountIdentifier","cachedhomeAccountId","cacheAccount","cacheNativeTokens","generateScopes","generatePopAccessToken","shr","shrParameters","mats","addTelemetryFromNativeResponse","accountProperties","responseAccessToken","isResponseFromCache","nativeCacheRecord","getMATSFromResponse","extensionId","matsBrokerVersion","broker_version","matsAccountJoinOnStart","account_join_on_start","matsAccountJoinOnEnd","account_join_on_end","matsDeviceJoin","device_join","matsPromptBehavior","prompt_behavior","matsApiErrorCode","api_error_code","matsUiVisible","ui_visible","matsSilentCode","silent_code","matsSilentBiSubCode","silent_bi_sub_code","matsSilentMessage","silent_message","matsSilentStatus","silent_status","matsHttpStatus","http_status","matsHttpEventCount","http_event_count","MATS","is_cached","remainingProperties","getPrompt","windowTitleSubstring","extendedExpiryToken","handleExtraBrokerParams","generatedReqCnfData","hasExtraBrokerParams","child_client_id","child_redirect_uri","NativeMessageHandler","handshakeTimeoutMs","resolvers","handshakeResolvers","messageChannel","windowListener","onWindowMessage","handshakeEvent","req","channel","responseId","createProvider","preferredProvider","sendHandshakeRequest","backupProvider","extensionHandshakeTimeoutMs","onChannelMessage","extensionHandshakeTimedOut","handshakeResolver","extensionInstalled","isPlatformBrokerAvailable","nativeExtensionProvider","InteractionHandler","authCodeModule","authModule","handleCodeResponse","authCodeResponse","handleCodeResponseFromServer","validateNonce","cloud_instance_host_name","createCcsCredentials","deserializeResponse","responseLocation","PopupClient","unloadWindow","nativeStorage","popupParams","popupName","generatePopupName","popupWindowAttributes","popupWindowParent","acquireTokenPopupAsync","popup","openSizedPopup","generateLogoutPopupName","mainWindowRedirectUri","logoutPopupAsync","validRequest","authClient","isPlatformBroker","fetchNativeAccountIdMeasurement","navigateUrl","interactionHandler","popupWindow","initiateAuthRequest","monitorPopupForHash","nativeInteractionClient","absoluteUrl","logoutUri","openPopup","requestUrl","responseType","finally","cleanPopup","urlNavigate","winLeft","screenLeft","winTop","screenTop","winWidth","winHeight","popupSize","popupPosition","RedirectHandler","redirectStartPage","redirectTimeout","nonceKey","cachedNonce","cachedCcsCred","checkCcsCredentials","tokenResponse","RedirectClient","Redirect","handleBackButton","getRedirectStartPage","parentMeasurement","getRedirectResponse","getEntriesByType","navigationEntries","getNavigationType","loginRequestUrl","handleResponse","processHashOnRedirect","homepage","userProvidedResponse","platformStateObj","validateInteractionType","cachedHash","currentAuthority","requestStartPage","loadFrame","loadFrameSync","monitorIframeForHash","removeHiddenIframe","frameHandle","createHiddenIframe","authFrame","SilentIframeClient","inputRequest","Silent","silentTokenHelper","retryError","retrySilentRequest","msalFrame","SilentRefreshClient","refreshTokenClient","createRefreshTokenClient","authorityUrl","TokenCache","loadExternalTokens","cacheRecordAccount","loadAccount","loadIdToken","loadAccessToken","loadRefreshToken","accessTokenEntity","refreshTokenEntity","HybridSpaAuthorizationCodeClient","SilentAuthCodeClient","cloudInstanceHostName","getAccountType","performanceEvent","StandardController","operatingContext","redirectResponse","hybridAuthCodeResponses","nativeCacheOptions","nativeInternalStorage","activeSilentTokenRequests","trackPageVisibility","trackPageVisibilityWithMeasurement","listeningToStorageEvents","handleAccountCacheChange","createController","controller","visibilityChangeCount","initCorrelationId","getRequestCorrelationId","initMeasurement","redirectResponseKey","handleRedirectPromiseInternal","loggedInAccounts","useNative","nativeClient","redirectClient","createRedirectClient","accountType","eventError","atrMeasurement","scenarioId","onRedirectNavigateCb","navigate","configOnRedirectNavigateCb","isLoggedIn","canUsePlatformBroker","getNativeAccountId","atPopupMeasurement","acquireTokenNative","createPopupClient","accessTokenSize","idTokenSize","ssoSilentMeasurement","acquireTokenByCodeAsyncMeasurement","createSilentIframeClient","atbcMeasurement","hybridAuthCode","acquireTokenByCodeAsync","silentAuthCodeClient","createSilentAuthCodeClient","tokenRenewalError","acquireTokenFromCache","commonRequest","cacheLookupPolicy","createSilentCacheClient","silentRefreshClient","createSilentRefreshClient","acquireTokenBySilentIframe","silentIframeClient","logoutRedirect","clearCache","enableAccountStorageEvents","disableAccountStorageEvents","cacheValue","parsedValue","getTokenCache","setLogger","initializeWrapperLibrary","setNavigationClient","getConfiguration","getPerformanceClient","isBrowserEnv","loginRedirect","loginPopup","acquireTokenSilent","atsMeasurement","silentRequestKey","cachedResponse","acquireTokenSilentAsync","acquireTokenSilentNoIframe","refreshTokenError","shouldTryToResolveSilently","noInteractionRequired","refreshTokenRefreshRequired","isSilentlyResolvable","tryIframeRenewal","checkIfRefreshTokenErrorCanBeResolvedSilently","activeIframeRequest","activePromise","activeCorrelationId","awaitConcurrentIframeMeasure","awaitIframeCorrelationId","activePromiseResult","_resolve","iframeResult","cacheError","NestedAppAuthAdapter","toNaaTokenRequest","extraParams","platformBrokerId","fromNaaTokenResponse","fromNaaAccountInfo","fromAccount","effectiveIdTokenClaims","fromBridgeError","isBridgeError","toAuthenticationResultFromCache","NestedAppAuthErrorMessage","NestedAppAuthError","createUnsupportedError","NestedAppAuthController","proxy","nestedAppAuthAdapter","currentAccountContext","ensureValidRequest","acquireTokenInteractive","nestedAppAuthRequest","naaRequest","acquireTokenSilentInternal","acquireTokenFromCacheInternal","currentAccount","authRequest","getBrowserCrypto","nestedApp","operatingContexts","PublicClientApplication","createPublicClientApplication","createV3Controller","localId","userName","createStandardPublicClientApplication","pca","UnknownOperatingContextController","getBrowserStorage","UnknownOperatingContext","PublicClientNext","stubbedPublicClientApplication","getPerfMeasurementModule","perfEnabled","BrowserPerformanceMeasurement$1","supportsBrowserPerformanceNow","getPerfDurationMs","BrowserPerformanceMeasurement","makeMeasureName","startMark","makeStartMark","endMark","makeEndMark","supportsBrowserPerformance","mark","clearMarks","clearMeasures","getEntriesByName","flushMeasurements","measurements","entriesForMeasurement","AuthenticationHeaderParser","getShrNonce","authenticationInfo","authenticationInfoChallenges","parseChallenges","nextnonce","wwwAuthenticate","wwwAuthenticateChallenges","schemeSeparator","challenges","challengeMap","BrowserPerformanceClient","getPageVisibility","visibilityState","deleteIncompleteSubMeasurements","isRootEvent","incompleteMeasurements","startPageVisibility","browserMeasurement","endPageVisibility","resQueueTime","EventMessageUtils","getInteractionStatusFromEvent","currentStatus","SignedHttpRequest","cryptoOps","generatePublicKeyThumbprint","signRequest","publicKeyThumbprint","removeKeys","WrapperSKU","Angular","createNestablePublicClientApplication","nestedAppAuth","nestablePCA","kindOf","thing","kindOfTest","typeOfTest","isFile","isBlob","isURLSearchParams","allOwnKeys","_key","globalThis","isContextDefined","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","utils","isFormData","FormData","isArrayBufferView","isStream","pipe","caseless","targetKey","stripBOM","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","matchAll","regExp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","toFiniteNumber","generateString","isSpecCompliantForm","toJSONObject","visit","reducedValue","AxiosError","captureStackTrace","fileName","lineNumber","columnNumber","prototype$1","isVisitable","removeBrackets","renderKey","dots","customProps","axiosError","cause","predicates","toFormData","formData","metaTokens","visitor","defaultVisitor","useBlob","Blob","convertValue","isFlatArray","exposedHelpers","build","encode$1","charMap","AxiosURLSearchParams","_pairs","buildURL","_encode","serializeFn","serialize","serializedParams","hashmarkIndex","encoder","InterceptorManager$1","use","fulfilled","rejected","synchronous","runWhen","eject","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform","isBrowser","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","protocols","formDataToJSON","buildPath","isNumericKey","arrayToObject","parsePropPath","DEFAULT_CONTENT_TYPE","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","parser","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","targets","asStrings","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","AxiosHeaders$1","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","domain","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","hostname","port","requestURL","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","speedometer","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","http","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","cancelToken","signal","fullPath","onloadend","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","aborted","parseProtocol","send","throwIfCancellationRequested","throwIfRequested","dispatchRequest","adapters","nameOrAdapter","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators$1","deprecatedWarnings","validator","formatMessage","opt","opts","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","CancelToken$1","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","axios","createInstance","defaultConfig","promises","isAxiosError","formToJSON","isCallable","tryToString","$TypeError","argument","isConstructor","classof","it","isPossiblePrototype","$String","getBuiltIn","uncurryThis","anObject","aCallable","isNullOrUndefined","getMethod","wellKnownSymbol","ASYNC_DISPOSE","DISPOSE","createDisposableResource","hint","getDisposeMethod","resource","UNSCOPABLES","ArrayPrototype","unicode","isPrototypeOf","Prototype","uncurryThisAccessor","NATIVE_ARRAY_BUFFER","arrayBufferByteLength","fails","isExtensible","isDetached","toIndex","notDetached","detachTransferable","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","ArrayBufferPrototype","DataViewPrototype","maxByteLength","getInt8","setInt8","newLength","preserveResizability","newBuffer","newByteLength","fixedLength","transfer","copyLength","NAME","DESCRIPTORS","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","InternalStateModule","enforceInternalState","enforce","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","klass","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","KEY","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","FunctionName","defineBuiltIns","anInstance","toIntegerOrInfinity","fround","IEEE754","arrayFill","arraySlice","inheritIfRequired","copyConstructorProperties","setToStringTag","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_INDEX","getInternalArrayBufferState","getterFor","getInternalDataViewState","setInternalState","NativeArrayBuffer","$ArrayBuffer","$DataView","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","isLittleEndian","store","intIndex","boolIsLittleEndian","conversion","INCORRECT_ARRAY_BUFFER_NAME","testView","$setInt8","setUint8","unsafe","detached","bufferState","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toAbsoluteIndex","lengthOfArrayLike","deletePropertyOrThrow","inc","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","getAsyncIterator","getIterator","getIteratorDirect","getIteratorMethod","getBuiltInPrototypeMethod","AsyncFromSyncIterator","ASYNC_ITERATOR","arrayIterator","arrayIteratorNext","safeArrayIterator","SafeArrayIterator","asyncItems","mapfn","usingAsyncIterator","usingSyncIterator","$length","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","$Array","arrayLike","IS_CONSTRUCTOR","mapping","iteratorMethod","IndexedObject","MapHelpers","mapGet","mapHas","mapSet","boundFunction","toPropertyKey","arrayFromConstructorAndList","$this","specificConstructor","toIndexedObject","createMethod","IS_INCLUDES","TYPE","IS_FIND_LAST_INDEX","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","filterReject","$lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","REDUCE_EMPTY","IS_RIGHT","SILENT_ON_NON_WRITABLE_LENGTH_SET","comparefn","middle","llength","rlength","lindex","rindex","originalArray","arraySpeciesConstructor","iterate","resolverFunction","$RangeError","relativeIndex","actualIndex","AsyncIteratorPrototype","createIterResultObject","ASYNC_FROM_SYNC_ITERATOR","asyncFromSyncIteratorContinuation","iteratorRecord","$return","returnMethod","perform","iteratorClose","ASYNC_ITERATOR_HELPER","WRAP_FOR_VALID_ASYNC_ITERATOR","createAsyncIteratorProxyPrototype","IS_ITERATOR","IS_GENERATOR","getStateOrEarlyExit","stateCompletion","stateError","exit","handlerCompletion","nextHandler","handlerError","completion","resolved","WrapForValidAsyncIteratorPrototype","AsyncIteratorHelperPrototype","AsyncIteratorProxy","doesNotExceedSafeInteger","closeAsyncIteration","IS_TO_ARRAY","IS_FOR_EACH","MAPPING","ifAbruptCloseAsyncIterator","loop","error5","$result","error4","error3","createAsyncIteratorProxy","mapper","doneAndReject","IS_PURE","USE_FUNCTION_CONSTRUCTOR","AsyncIterator","PassedAsyncIteratorPrototype","commonAlphabet","base64Alphabet","base64UrlAlphabet","inverse","characters","i2c","c2i","i2cUrl","c2iUrl","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","callee","adder","ENTRY","mapFn","nextItem","defineIterator","setSpecies","fastKey","internalStateGetterFor","getConstructor","CONSTRUCTOR_NAME","ADDER","AS_ENTRIES","getEntry","removed","prev","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","getWeakData","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","$","isForced","InternalMetadataModule","checkCorrectnessOfIteration","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","enable","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","primitives","objectsByIndex","IS_OBJECT","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","MATCH","error1","requireObjectCoercible","quot","createPropertyDescriptor","bitmap","$isFinite","DatePrototype","nativeDateToISOString","thisTimeValue","getUTCHours","getUTCMilliseconds","getUTCSeconds","ordinaryToPrimitive","makeBuiltIn","defineGlobalProperty","simple","nonConfigurable","nonWritable","WorkerThreads","$detach","getBuiltInNodeModule","$MessageChannel","detach","transferable","EXISTS","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","firefox","UA","Pebble","ENVIRONMENT","Deno","versions","v8","webkit","userAgentStartsWith","Bun","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","clearErrorStack","ERROR_STACK_INSTALLABLE","normalizeStringArgument","nativeErrorToString","INCORRECT_TO_STRING","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","forceStringMethod","$exec","flattenIntoArray","original","sourceLen","elementLen","preventExtensions","NATIVE_BIND","FunctionPrototype","$Function","factories","partArgs","getDescriptor","uncurryThisWithBind","alreadyAsync","usingIterator","IS_NODE","getBuiltinModule","CONSTRUCTOR","METHOD","stringHandling","Iterators","replacer","rawLength","keysLength","INVALID_SIZE","SetRecord","intSize","numSize","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","tailPos","mantissaLength","exponent","mantissa","exponentLength","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","onFreeze","NATIVE_WEAK_MAP","sharedKey","OBJECT_ALREADY_INITIALIZED","facade","STATE","documentAll","constructorRegExp","isConstructorModern","isConstructorLegacy","feature","detection","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","ITERATOR_INSTEAD_OF_RECORD","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_RECORD","INTERRUPTED","callFn","innerResult","innerError","IteratorPrototype","returnThis","IteratorConstructor","ENUMERABLE_NEXT","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","createIteratorProxyPrototype","returnHandlerResult","WrapForValidIteratorPrototype","IteratorHelperPrototype","RETURN_HANDLER_RESULT","IteratorProxy","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","createIteratorProxy","PrototypeOfArrayIteratorPrototype","CONFIGURABLE_LENGTH","TEMPLATE","MapPrototype","iterateSimple","interruptible","updateFn","insertFn","$expm1","expm1","roundTiesToEven","FLOAT_EPSILON","FLOAT_MAX_VALUE","FLOAT_MIN_VALUE","absolute","floatRound","LOG10E","log10","log1p","log2","INVERSE_EPSILON","inLow","inHigh","outLow","outHigh","nx","nInLow","nInHigh","nOutLow","nOutHigh","notify","safeGetBuiltIn","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","microtask","nextTick","unsafeInt","raw","rawJSON","isRawJSON","PromiseCapability","$$resolve","$$reject","$default","globalIsFinite","whitespaces","$parseFloat","trimmedString","$parseInt","INCORRECT_RANGE","NUMERIC_RANGE_ITERATOR","$RangeIterator","ifIncrease","inclusiveEnd","inclusive","hitsEnd","currentCount","currentYieldingValue","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","activeXDocument","definePropertiesModule","enumBugKeys","html","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","NullProtoObject","ActiveXObject","iframeDocument","JS","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","OBJECT_ITERATOR","$propertyIsEnumerable","NASHORN_BUG","WEBKIT","__defineSetter__","aPossiblePrototype","CORRECT_SETTER","objectGetPrototypeOf","IE_BUG","TO_ENTRIES","IE_WORKAROUND","pref","$SyntaxError","IS_4_HEX_DIGITS","IS_C0_CONTROL_CODE","unterminated","twoChars","fourHexDigits","NativePromiseConstructor","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","REJECTION_EVENT","newPromiseCapability","promiseCapability","Target","Source","getOrCreateMetadataMap","targetMetadata","keyMetadata","getMap","MetadataKey","metadataMap","MetadataValue","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","charsAdded","strCopy","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","USER_AGENT","validateArgumentsLength","WRAP","scheduler","hasTimeArg","firstParamIndex","boundArgs","SetHelpers","aSet","getSetRecord","iterateSet","otherRec","SetPrototype","createSetLike","createSetLikeWithInfinitySize","keysIter","TAG","SHARED","copyright","license","aConstructor","defaultConstructor","cookedTemplate","literalSegments","nextVal","CONVERT_TO_STRING","codeAt","$repeat","IS_END","fillString","fillLen","stringFiller","intMaxLength","fillStr","stringIndexOf","isDigit","parseHex","hexToInt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","digitToBasic","digit","adapt","numPoints","baseMinusTMin","extra","ucs2decode","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","$trimEnd","forcedStringTrimMethod","$trimStart","ltrim","rtrim","V8","SymbolPrototype","TO_PRIMITIVE","keyFor","thisSymbolValue","isRegisteredSymbol","$isWellKnownSymbol","isWellKnownSymbol","WellKnownSymbolsStore","symbolKeys","symbolKeysLength","symbolKey","NATIVE_SYMBOL","$location","Dispatch","ONREADYSTATECHANGE","run","runner","eventListener","globalPostMessageDefer","integer","prim","toPositiveInteger","BYTES","exoticToPrim","isIterable","isSetLike","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","toUint8Clamped","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","WRONG_LENGTH","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$len","isBigIntArray","toBigInt","thisIsBigIntArray","postfix","anObjectOrUndefined","aString","base64Map","getAlphabetOption","skipAsciiWhitespace","decodeBase64Chunk","throwOnExtraBits","triplet","chunkBytes","writeBytes","written","elementsLength","into","lastChunkHandling","remainingBytes","NOT_HEX","hexits","searchParams","params2","WeakMapPrototype","WeakSetPrototype","wrappedWellKnownSymbolModule","createWellKnownSymbol","withoutSetter","proxyAccessor","installErrorCause","installErrorStack","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","wrapErrorConstructorWithCause","AGGREGATE_ERROR","$AggregateError","AggregateError","AggregateErrorPrototype","errorsArray","arrayBufferModule","nativeArrayBufferSlice","fin","viewSource","viewTarget","$transfer","transferToFixedLength","addToUnscopables","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","spreadable","$every","$filter","$findIndex","FIND_INDEX","SKIPS_HOLES","$findLastIndex","$findLast","$find","FIND","flat","depthArg","$includes","$indexOf","nativeIndexOf","ARRAY_ITERATOR","Arguments","$map","setArrayLength","properErrorOnNonWritableLength","argCount","$reduceRight","CHROME_VERSION","$reduce","nativeSlice","HAS_SPECIES_SUPPORT","$some","internalSort","FF","IE_OR_EDGE","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","itemsLength","arrayLength","getSortCompare","deleteCount","insertCount","actualDeleteCount","actualStart","arrayToReversed","toReversed","toSorted","compareFn","toSpliced","newLen","arrayWith","getYear","$Date","setYear","pv","dateToPrimitive","INVALID_DATE","TO_STRING","nativeDateToString","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","errorToString","ErrorPrototype","numberToString","HAS_INSTANCE","FUNCTION_NAME_EXISTS","nameRE","regExpExec","NativeIterator","defineIteratorPrototypeAccessor","Iterator","notANaN","real","getIteratorFlattenable","noInitial","getReplacerFunction","$stringify","tester","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","DOES_NOT_WORK_WITH_PRIMITIVES","$acosh","acosh","$asinh","asinh","$atanh","atanh","cbrt","LOG2E","$cosh","cosh","$hypot","hypot","value1","value2","div","aLen","larg","$imul","imul","UINT16","xn","yn","xl","yl","sinh","tanh","thisNumberValue","NUMBER","NativeNumber","PureNumberNamespace","NumberPrototype","NumberWrapper","primValue","third","maxCode","digits","toNumeric","EPSILON","MIN_SAFE_INTEGER","nativeToExponential","toExponential","ROUNDS_PROPERLY","fractionDigits","nativeToFixed","c2","dataToString","fractDigits","x2","nativeToPrecision","toPrecision","__defineGetter__","$entries","$freeze","$getOwnPropertySymbols","nativeGetPrototypeOf","nativeGroupBy","$isFrozen","$isSealed","isSealed","__lookupGetter__","__lookupSetter__","$preventExtensions","PROTO","$seal","seal","$values","newPromiseCapabilityModule","allSettled","capability","promiseResolve","alreadyCalled","$promiseResolve","PROMISE_STATICS_INCORRECT_ITERATION","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","Internal","OwnPromiseCapability","nativeThen","speciesConstructor","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","isUnhandled","emit","unwrap","internalReject","internalResolve","PromiseWrapper","onFinally","race","capabilityReject","PromiseConstructorWrapper","CHECK_WRAPPER","ACCEPT_ARGUMENTS","withResolvers","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","$args","propertyKey","deleteProperty","isDataDescriptor","receiver","objectPreventExtensions","objectSetPrototypeOf","existingDescriptor","ownDescriptor","getRegExpFlags","NativeRegExp","IS_NCG","CORRECT_NEW","RegExpWrapper","rawFlags","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","INDICES_SUPPORT","calls","expected","nativeTest","$toString","nativeToString","NOT_GENERIC","INCORRECT_NAME","setMethodAcceptSetLike","isDisjointFrom","isSubsetOf","isSupersetOf","symmetricDifference","createHTML","forcedStringHTMLMethod","big","blink","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","endPosition","fixed","fontcolor","fontsize","$fromCodePoint","isWellFormed","italics","STRING_ITERATOR","advanceStringIndex","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","nativeMatchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","$global","fullUnicode","$matchAll","rx","fixRegExpWellKnownSymbolLogic","nativeMatch","maybeCallNative","matchStr","$padEnd","$padStart","rawTemplate","getSubstitution","REPLACE","replaceAll","searchValue","replaceValue","IS_REG_EXP","functionalReplace","searchLength","advanceBy","endOfLastMatch","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","splitter","unicodeMatching","lim","strike","intLength","intEnd","intStart","sup","$toWellFormed","toWellFormed","TO_STRING_CONVERSION_BUG","trimLeft","trimRight","$trim","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","$defineProperties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolDescriptiveString","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","u$ArrayCopyWithin","$fill","actualValue","fromSameTypeAndList","createTypedArrayConstructor","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","ACCEPT_INCORRECT_ARGUMENTS","mod","begin","beginIndex","$toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","PROPER_ORDER","hex2","hex4","part","InternalWeakMap","collectionWeak","IS_IE11","$WeakMap","nativeSet","nativeDelete","nativeHas","nativeGet","frozenArray","arrayIntegrityLevel","$filterReject","filterOut","fromAsync","nativeFromAsync","$groupToMap","groupByToMap","$group","groupToMap","isFrozenStringArray","allowUndefined","isTemplateObject","uniqueBy","addDisposableResource","SuppressedError","$ReferenceError","ASYNC_DISPOSABLE_STACK","getAsyncDisposableStackInternalState","HINT","DISPOSED","getPendingAsyncDisposableStackInternalState","internalState","$AsyncDisposableStack","AsyncDisposableStackPrototype","disposed","disposeAsync","asyncDisposableStack","suppressed","thrown","handleError","disposeMethod","adopt","onDispose","newAsyncDisposableStack","AsyncDisposableStack","asIndexedPairs","AsyncIteratorConstructor","getAsyncIteratorFlattenable","outerLoop","innerLoop","WrapAsyncIterator","indexed","resultDone","$toArray","NumericRangeIterator","getCompositeKeyNode","compositeKey","compositeSymbol","MIN_SUBNORMAL16","SIGNIFICAND_DENOM16","getFloat16","significand","getUint8Clamped","aDataView","REC_SIGNIFICAND_DENOM16","setFloat16","neg","packFloat16","setUint8Clamped","DISPOSABLE_STACK","getDisposableStackInternalState","getPendingDisposableStackInternalState","$DisposableStack","DisposableStackPrototype","errorResult","newDisposableStack","DisposableStack","ERROR","DOM_EXCEPTION","PROTOTYPE_SETTING_AVAILABLE","DOMException","$isError","demethodize","$isCallable","classRegExp","isClassConstructor","unThis","iterableIndex","nextIterableIndex","iterables","toAsync","parseJSONString","nativeParse","enumerableOwnProperties","IS_DIGIT","IS_NON_ZERO_DIGIT","IS_NUMBER_START","IS_WHITESPACE","internalize","reviver","elementRecordsLen","unmodified","nodeIsArray","internalizeProperty","Context","fork","keyword","expectKeypair","until","expectElement","NO_SOURCE_SUPPORT","PROPER_BASE_PARSE","$parse","NATIVE_RAW_JSON","MARK","MARK_LENGTH","ERROR_MESSAGE","isWhitespace","jsonString","replacerFunction","rawStrings","aMap","deleteAll","wasDeleted","allDeleted","emplace","inserted","newMap","createCollectionFrom","getOrInsertComputed","getOrInsert","sameValueZero","keyDerivative","keyOf","createCollectionOf","updateOrInsert","isPresentInMap","upsert","DEG_PER_RAD","PI","RAD_PER_DEG","degrees","radians","f16round","fscale","iaddh","x0","x1","y0","y1","$x0","$y0","imulh","$u","$v","u0","v0","u1","v1","isubh","numberIsFinite","SEEDED_RANDOM","SEEDED_RANDOM_GENERATOR","$SeededRandomGenerator","seed","seededPRNG","signbit","$Infinity","POW_2_1023","MAX_DOUBLE","MAX_ULP","NOT_A_NUMBER","MINUS_INFINITY","PLUS_INFINITY","MINUS_ZERO","FINITE","twosum","sumPrecise","numbers","actuallyUsedPartials","umulh","INVALID_NUMBER_REPRESENTATION","valid","mathNum","ObjectIterator","iterateEntries","iterateKeys","iterateValues","$$OBSERVABLE","OBSERVABLE","SUBSCRIPTION","SUBSCRIPTION_OBSERVER","getObservableInternalState","getSubscriptionInternalState","getSubscriptionObserverInternalState","SubscriptionState","observer","cleanup","subscriptionObserver","clean","subscription","isClosed","Subscription","subscriber","subscriptionState","SubscriptionObserver","nextMethod","errorMethod","completeMethod","$Observable","ObservablePrototype","Observable","observableMethod","observable","ReflectMetadataModule","toMetadataKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","deleteMetadata","arrayUniqueBy","ordinaryOwnMetadataKeys","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","ordinaryGetMetadata","getMetadata","getOwnMetadataKeys","getOwnMetadata","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","WHITESPACES","$escape","FIRST_DIGIT_OR_ASCII","SYNTAX_SOLIDUS","OTHER_PUNCTUATORS_AND_WHITESPACES","ControlEscape","escapeChar","addAll","toSetLike","$difference","newSet","$intersection","$isDisjointFrom","$isSubsetOf","$isSupersetOf","arrayJoin","sep","$symmetricDifference","$union","StringMultibyteModule","$StringIterator","cooked","createArrayFromList","WeakMapHelpers","DedentMap","weakMapGet","weakMapHas","weakMapSet","NEW_LINE","LEADING_WHITESPACE","NON_WHITESPACE","INVALID_TAG","commonLeadingIndentation","makeDedentTag","rawInput","quasi","blocks","dedented","lastSplit","lineContainsTemplateExpression","dedentStringsArray","cookedArr","cookStrings","dedentTemplateStringsArray","cookedDedentTag","dedent","templateOrFn","NativeSuppressedError","WRONG_ARITY","EXTRA_ARGS_SUPPORT","PATCH","$SuppressedError","SuppressedErrorPrototype","isWellKnown","arrayFromAsync","$arrayUniqueBy","$fromBase64","fromBase64","$fromHex","fromHex","anUint8Array","setFromBase64","setFromHex","toBase64","omitPadding","toHex","aWeakMap","aWeakSet","WeakSetHelpers","disallowed","finalEq","$atob","BASIC","NO_SPACES_IGNORE","NO_ENCODING_CHECK","NO_ARG_RECEIVING_CHECK","bs","$btoa","WRONG_ARG_CONVERSION","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","DOMExceptionConstants","DATA_CLONE_ERR","NativeDOMException","NativeDOMExceptionPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","queueMicrotask","INCORRECT_VALUE","setTask","schedulersFix","structuredCloneImplementation","setIterate","PerformanceMark","setAdd","setHas","thisBooleanValue","thisStringValue","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","set1","set2","checkErrorsCloning","nativeStructuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","tryNativeRestrictedStructuredClone","$type","structuredCloneInternal","cloned","cloneView","DOMQuad","File","DataTransfer","ClipboardEvent","files","createDataTransfer","ImageData","colorSpace","fromPoint","fromRect","fromMatrix","buffers","rawTransfer","transferred","canvas","OffscreenCanvas","transferFromImageBitmap","transferToImageBitmap","tryToTransfer","detachBuffers","USE_NATIVE_URL","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","nativeFetch","NativeRequest","RequestPrototype","HeadersPrototype","plus","VALID_HEX","parseHexOctet","getLeadingOnes","octet","utf8Decode","octets","decodedChar","byteSequenceLength","sequenceIndex","nextByte","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","bindURL","entryIterator","entryNext","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","$value","getAll","headersHas","headersSet","wrapRequestOptions","RequestConstructor","Request","getState","$URLSearchParams","$delete","dindex","entriesLength","$has","THROWS_WITHOUT_ARGUMENTS","canParse","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHANUMERIC","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","https","wss","isWindowsDriveLetter","startsWithWindowsDriveLetter","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","URLState","isBase","failure","stateOverride","bufferCodePoints","pointer","seenAt","seenBracket","seenPasswordToken","fragment","cannotBeABaseURL","isSpecial","includesCredentials","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","address","pieceIndex","parseIPv6","partsLength","ipv4","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL"],"sourceRoot":""}