{"version":3,"file":"static/js/27.51dbe62fc2f48dfa9347.chunk.js","mappings":";iNAoBO,MAAMA,EAAwBC,IAA0I,IAAzI,KAAEC,EAAI,UAAEC,EAAS,KAAEC,EAAI,UAAEC,EAAS,MAAEC,EAAK,QAAEC,EAAO,iBAAEC,EAAgB,SAAEC,EAAQ,SAAEC,EAAQ,YAAEC,EAAW,SAAEC,EAAQ,QAAEC,EAAO,UAAEC,GAAWb,EACvK,MAAMc,GAAUC,EAAAA,EAAAA,kBAAiB,QAASR,EAAkB,GAAI,IAC1DS,OAAoBC,IAAThB,EAAqBA,EAAO,GAC7Ca,EAAQI,cAAcC,MAAQH,EAE9B,MAAMI,GAAYC,EAAAA,EAAAA,wBAAuBd,EAAkBO,GAC3D,OACIQ,EAAAA,cAAA,OACIpB,UAAU,gBACVqB,aAAcA,IAAMb,EAAYC,GAChCa,aAAcA,IAAMd,EAAY,OAEhCY,EAAAA,cAAA,IAAAG,OAAAC,OAAA,GACQN,EAAS,CACblB,UAAW,GAAGA,KAAaM,EAAW,SAAW,MAAMI,EAAU,UAAY,KAC7ET,KAAMA,EAAI,aACEC,EACZuB,SAASC,EAAAA,EAAAA,kBAAiBrB,EAAkBO,EAASE,IAChDV,GAAW,CAAE,iBAAiB,IAInCgB,EAAAA,cAAA,QAAMO,SAAS,QACVb,GAELM,EAAAA,cAAA,QAAMO,SAAS,WAAWC,QAASzB,MAGrCO,IAAaC,GAAaL,IAAcC,GAAYA,EAASsB,OAC1DT,EAAAA,cAAA,OAAKpB,UAAU,kBACXO,GAEJ,GAEH,ECtCDuB,EAA8BhC,IAA4G,IAA3G,KAAEC,EAAI,UAAEC,EAAS,KAAEC,EAAI,UAAEC,EAAS,MAAEC,EAAK,QAAEC,EAAO,iBAAEC,EAAgB,SAAEC,EAAQ,YAAEE,EAAW,SAAEC,GAAUX,EAE/I,MAAMc,GAAUC,EAAAA,EAAAA,kBAAiB,QAASR,EAAkB,GAAI,IAE1D0B,OAAuBhB,IAAThB,EAAqBA,EAAO,GAChDa,EAAQI,cAAcC,MAAQc,EAE9B,MAAMb,GAAYC,EAAAA,EAAAA,wBAAuBd,EAAkBO,GAE3D,OACIQ,EAAAA,cAAA,IAAAG,OAAAC,OAAA,GACQN,EAAS,CACblB,UAAW,GAAGA,KAAaM,EAAW,SAAW,KACjDL,KAAMA,EAAI,aACEC,EACZuB,SAASC,EAAAA,EAAAA,kBAAiBrB,EAAkBO,EAASmB,IAChD3B,GAAW,CAAE,iBAAiB,GAAO,CAC1CiB,aAAcA,IAAMb,EAAYC,GAAU,GAC1Ca,aAAcA,IAAMd,EAAY,MAAM,KAEtCY,EAAAA,cAAA,QAAMO,SAAS,QACVI,GAELX,EAAAA,cAAA,QAAMO,SAAS,WAAWC,QAASzB,IACnC,ukBCYZ,MAAM6B,UAAuBZ,EAAAA,cAczBa,YAAYC,GACRC,MAAMD,GACNE,KAAKC,SAAWH,EAAMI,QAAQC,SAAWL,EAAMI,QAAQC,QAAQC,QAAgD,WAAtCN,EAAMI,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KACjIL,KAAKM,MAAQ,CACTC,SAAUP,KAAKO,SACfC,oBAAgB7B,EAChB8B,uBAAmB9B,GAGvBqB,KAAKU,aAAc,EAEnBV,KAAKW,aAAeX,KAAKW,aAAaC,KAAKZ,KAE/C,CAtBOa,uBAAuBC,EAAgBC,GAC1C,IAAIC,EAKJ,OAJIF,GAAUC,GAAoBA,EAAiBtB,OAAS,IACxDuB,EAAkBD,EAAiBE,MAAKC,GAAQA,EAAKC,SAAUC,gBAAkBN,EAAOM,iBAGrFJ,GAAmBA,EAAgBK,IAC9C,CAiBcd,eACV,MAA0B,OAAlBP,KAAKC,UAAuC,OAAlBD,KAAKC,QAC3C,CAEOqB,oBACH,IAAIC,EAAYC,SAASC,cAAc,oBACvC,GAAIF,EAAW,CACX,MAAMG,EAAUH,EAAUE,cAAc,aAAeF,EAAUI,SAASC,KAAKC,OAAON,EAAUI,SAASlC,OAAS,GAAK,IAEvH8B,EAAUO,SAAS,CACfC,IAAK,EAELC,KAAON,EAAOO,WAAaP,EAAOQ,YAAc,EAAIX,EAAUW,YAAc,EAC5EC,SAAU,WAMtB,CAEOC,uBACHC,QAAUA,OAAOC,oBAAoB,SAAUtC,KAAKuC,6BAA8B,EACtF,CAEOC,SACH,MAAMC,EAAYzC,KAAKF,MAAMI,QAAQC,QAAQsC,UAE7C,IAAIC,EAA2B,GAE/B,GAA2B,aAAvBD,EAAUE,SAAyB,CACnC,MAAMC,EAAoBC,OAAOJ,EAAUpE,UACrCyE,EAAwB9C,KAAKF,MAAMiD,KAAKC,WAAWC,OACzD,GAAIH,GAAyBA,EAAsB,GAAI,CAClBA,EAAsB,GAAGI,SAAS,GAC1CA,SAASC,SAAQC,IAElCR,IAAsBQ,EAAcC,SACpCX,EAAQ1C,KAAKsD,aAAaF,EAAeR,GAClCQ,EAAcF,UAAYE,EAAcF,SAASzD,QACxD2D,EAAcF,SAASC,SAAQI,IACvBX,IAAsBW,EAAcF,SACpCX,EAAQ1C,KAAKsD,aAAaF,EAAeR,GAElCW,EAAcL,UAAYK,EAAcL,SAASzD,QACxD8D,EAAcL,SAASC,SAAQK,IACvBZ,IAAsBY,EAAgBH,WACtCX,EAAQ1C,KAAKsD,aAAaF,EAAeR,cAUzE,IAAIa,EAAAA,EAAAA,IAAoBzD,KAAKF,MAAMiD,MAE/B,OADA/C,KAAKF,MAAM4D,UAAUC,MAAM,+BACpB,KAGX,MAAMC,EAASC,EAAAA,EAAAA,EAAA,GACR7D,KAAKF,OACLE,KAAKM,OAAK,IACbqC,SAAUF,EAAUE,SACpBmB,WAAY,CACRC,YAAa/D,KAAKF,MAClBlC,UAAWoG,IAAW,kBAAmBhE,KAAKF,MAAMmE,OAAOrG,UAAWoC,KAAKM,MAAMC,SAAW,YAAc,aAAcP,KAAKU,YAAc,aAAe,IAC1JwD,IAAI,MACJC,KAAK,aACL,aAAcnE,KAAKF,MAAMsE,UAAUC,eAEvCC,aAActE,KAAKM,MAAMC,SACzBmC,MAAOA,EACP9E,UAAWoG,IAAW,SAAUhE,KAAKF,MAAMmE,OAAOrG,aAGtD,OAAOoC,KAAKF,MAAMyE,WAAWX,EACjC,CAEQjD,aAAatC,GAA4BmG,UAAA/E,OAAA,QAAAd,IAAA6F,UAAA,IAAAA,UAAA,GAEzCxE,KAAKyE,SAAS,CAAChE,kBAAmBpC,IAElC2B,KAAKyE,SAAS,CAACjE,eAAgBnC,GAEvC,CAEQiF,aAAaoB,EAA6BC,GAC9C,IAAIjC,EAAQ,GAyDZ,OAxDAA,EAAMkC,KAAK5F,EAAAA,cAACvB,EAAI,CACZS,SAAUwG,EAASrB,WAAasB,EAChChH,KAAM+G,EAASG,KACf/G,UAAW4G,EAASG,KACpBhH,KAAM6G,EAASI,IACf/G,MAAM,IACNH,UAAU,mBACVK,iBAAkB,CAAC8G,SAAU,eAAeL,EAASG,OAASG,WAAY,2BAC1E5G,YAAa4B,KAAKW,aAClBtC,SAAUqG,EAASrB,SACnB9E,YAAayB,KAAKM,MAAME,kBAAoBR,KAAKM,MAAMG,kBACvDnC,QAAS0B,KAAKM,MAAME,iBAAmBkE,EAASrB,UAAYrD,KAAKM,MAAMG,oBAAsBiE,EAASrB,aAGzGqB,EAASxB,UAAY,IAAIC,SAAQ8B,IAC9B,IAAI9G,EAAgB,GAChB+G,GAAkB,EAClBD,EAAc/B,UACd+B,EAAc/B,SAASC,SAAQgC,IACvBA,EAAmB9B,WAAasB,IAChCO,GAAkB,GAEtB/G,EAASyG,KAAK5F,EAAAA,cAACU,EAAO,CAClBxB,SAAUiH,EAAmB9B,WAAasB,EAC1ChH,KAAMwH,EAAmBN,KACzB/G,UAAWqH,EAAmBN,KAC9BhH,KAAMsH,EAAmBL,IACzB/G,MAAM,IACNH,UAAU,sBACVK,iBAAkB,CAAC8G,SAAU,uBAAuBI,EAAmBN,OAASG,WAAY,2BAC5F3G,SAAU2B,KAAKM,MAAME,gBAAkB,EACvCpC,YAAa4B,KAAKW,eACnB,KAINsE,EAAc5B,WAAasB,GAAiBO,IAAoBD,EAAc/B,UAAY+B,EAAc/B,SAASzD,SAClHO,KAAKU,aAAc,GAGvBgC,EAAMkC,KAAK5F,EAAAA,cAACvB,EAAI,CACZS,SAAU+G,EAAc5B,WAAasB,GAAiBO,EACtDvH,KAAMsH,EAAcJ,KACpB/G,UAAWmH,EAAcJ,KACzBhH,KAAMoH,EAAcH,IACpB/G,MAAM,IACNH,UAAU,mBACVK,iBAAkB,CAAC8G,SAAU,eAAeE,EAAcJ,OAASG,WAAY,2BAC/E7G,SAAUA,EACVC,YAAa4B,KAAKW,aAClBtC,SAAU4G,EAAc5B,SACxB9E,YAAayB,KAAKM,MAAME,kBAAoBR,KAAKM,MAAMG,kBACvDnC,QAAS0B,KAAKM,MAAME,iBAAmByE,EAAc5B,UAAYrD,KAAKM,MAAMG,oBAAsBiE,EAASrB,WAC5G,IAGAX,CACX,GA7KA0C,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCA0BDD,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,6BAuJb,kGC9NA,MAYA,EAZ+DxF,IAC7D,MAAM,aAAEwE,EAAY,WAAER,EAAU,MAAEpB,EAAK,SAAEC,GAAY7C,EACrD,MAAiB,aAAb6C,EACK,KAGP3D,EAAAA,cAACuG,EAAAA,OAAMpG,OAAAC,OAAA,GAAK0E,EAAU,CAAElG,UAAWoG,IAAWF,EAAWlG,UAAW0G,EAAe,QAAU,YAC1F5B,EACM,8FCUD8C,wnBAAZ,SAAYA,GACRA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,0BACH,CAHD,CAAYA,IAAAA,EAAW,KAUvB,IAAMC,EAAN,cAAsBzG,EAAAA,UAIlBa,YAAYC,GACRC,MAAMD,GAJF,KAAA4F,uBAAiC,sBACjC,KAAAC,sBAAgC,qBAIpC3F,KAAK4F,iBAAmB5F,KAAK4F,iBAAiBhF,KAAKZ,KACvD,CAEOwC,SACH,MAAM,MAAEqD,EAAK,WAAEtB,EAAU,OAAEN,EAAM,KAAElB,EAAI,WAAE+C,EAAU,UAAEC,GAAc/F,KAAKF,MAClE/B,EAAQgI,GAAa,EACrBC,EAAYC,EAAalI,EAAOiC,KAAKF,MAAMoG,OAAS,IACpDC,EAAwBpD,GAAQA,EAAKqD,gBAAkBrD,EAAKqD,eAAenD,OAC3EoD,EAAQF,GAAyBA,EAAsBD,QAAUlG,KAAKF,MAAMoG,YAAsDvH,IAA7CwH,EAAsBG,mBAC7GH,EAAsBG,qBAAuBvI,EAAQ+H,IAAc,EAuBvE,OAAOvB,EAtBQV,EAAAA,EAAA,GACP7D,KAAKF,OAAK,IACdyG,oBAAqB,CACjBxC,YAAa/D,KAAKF,MAClBlC,UAAWoG,IAAWhE,KAAK0F,uBAAwBzB,EAAOrG,YAE9D4I,mBAAoB,CAChBzC,YAAa/D,KAAKF,MAClBlC,UAAWoG,IAAWhE,KAAK2F,sBAAuB1B,EAAOrG,WACzD6I,SAAS,KAEbC,eAAgB,CACZ9I,UAAW,+BACXsG,IAAK,UACL,eAAgBmC,EAChBlC,KAAM,WACNsC,SAAUJ,EAAQ,GAAK,EACvBM,GAAIX,GAERY,UAAW5G,KAAK4F,mBAChBiB,SAAUhB,IAIlB,CAEQD,mBACJ,OACI5G,EAAAA,cAAAA,EAAAA,SAAA,KACKgB,KAAKF,MAAMmE,OAAO6C,aAG/B,GAhDErB,GAAOL,EAAAA,EAAAA,IAAA,CADZ2B,EAAAA,IACKtB,GAoDC,MAAMQ,EAAeA,CAAClI,EAAe4I,IACnC,oBAAoBA,KAAM5I,IAGnC,qFCtFA,MAuBMiJ,EAAyBC,GAEvBjI,EAAAA,cAAAA,EAAAA,SAAA,KACKiI,GAASA,EAAMxH,OACZwH,EAAMC,KAAI,CAAChG,EAAuBnD,IAE1BiB,EAAAA,cAACA,EAAAA,SAAc,CAACmI,IAAKpJ,GAChBmD,KAIb,MAIhB,EAtCiDpB,IAC7C,MAAM,YAAEsH,EAAW,SAAEP,EAAQ,oBAAEN,EAAmB,mBAAEC,EAAkB,eAAEE,EAAc,UAAEE,GAAc9G,EAEtG,OAAQsH,GACJ,KAAK5B,EAAAA,YAAY6B,WACb,OACIrI,EAAAA,cAACuG,EAAAA,OAAMpG,OAAAC,OAAA,GAAKmH,GACRvH,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKsH,GACLG,GAAYA,EAASU,gBAAkBV,EAASU,eAAe9H,QAAWuH,EAAsBH,EAASU,kBAI1H,KAAK/B,EAAAA,YAAYgC,UACb,OACIxI,EAAAA,cAACuG,EAAAA,OAAMpG,OAAAC,OAAA,GAAKoH,GACPI,GAGb,QACK,OAAO,6wBC+BpB,IAAMa,EAAN,cAAkBzI,EAAAA,UAOhBa,YAAYC,GACVC,MAAMD,GAPQ,KAAA4H,cAAwB,YAwFjC,KAAAC,oBAAuBC,GAAyC5H,KAAKF,MAAMmE,OAAO4D,QAASlK,KAAOiK,EAAME,OAAOC,MAsJ9G,KAAAC,SAAW,CAAC9G,EAAenD,EAAe4I,IAAgBsB,IAChE,MAAM7B,EAAiB,CAAEE,mBAAoBvI,EAAOmI,MAAOS,GACrDuB,EAAYhH,EAAiBpB,MAAMmE,OAAO6C,aAAaqB,QAAQ,IAAK,OACpEC,EAAkBpI,KAAKqI,mBAAmBH,GAC1CI,EAA2CtI,KAAKuI,qBAChDC,EAAQxI,KAAKyI,UAAUvH,EAAMkH,EAAiBE,GACpDtI,KAAKF,MAAMI,QAAQwI,cAAcC,QAAOC,EAAAA,EAAAA,qBAAoBxC,GAAiBA,GAC7EkC,GAAkBjG,OAAOwG,QAAQC,UAAU,CAAEC,KAAMP,GAAS,GAAIA,GAChExI,KAAKyE,SAAS,CAAEuE,gBAAiBjL,EAAOkL,iBAAkBf,EAAUgB,cAAc,GAAQ,EAIpF,KAAAC,oBAAuBpL,IAC7B,MAAM,MAAE8H,GAAU7F,KAAKF,MACjBsJ,EAAavD,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAUoG,EAAMwD,SAAStL,GAGtF,MAAO,CAAEqL,aAAYE,wBADWF,GAAeA,EAAuBtJ,MAAMmE,OAAO6C,cAAgB,GACrD,EAGxC,KAAAyC,WAAa,CAACxL,EAAe4I,IAAgBsB,IACnD,GAAkB,KAAdA,EAAEuB,QAAgB,CACpB,MAAMpD,EAAiB,CAAEE,mBAAoBvI,EAAOmI,MAAOS,GAC3D3G,KAAKF,MAAMI,QAAQwI,cAAcC,QAAOC,EAAAA,EAAAA,qBAAoBxC,GAAiBA,GAC7E,MAAMqD,EAASzJ,KAAKmJ,oBAAoBpL,GAClCqK,EAAkBpI,KAAKqI,mBAAmBoB,EAAOH,yBACjDhB,EAA2CtI,KAAKuI,qBAEhDC,EAAQxI,KAAKyI,UAAUgB,EAAOL,WAAuBhB,EAAiBE,GAC5EtI,KAAKyE,SAAS,CAAEuE,gBAAiBjL,EAAOkL,iBAAkBQ,EAAOH,wBAAyBJ,cAAc,IACxGZ,GAAkBjG,OAAOwG,QAAQC,UAAU,CAAEC,KAAMP,GAAS,GAAIA,KApQlE,MAAM,gBAAEkB,GAAoB1J,KAAKF,MAAMmE,QACjC,MAAE4B,GAAU7F,KAAKF,MACjB6J,EAAa9D,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAU,EACjEmK,EAAeF,GAAmBA,GAAmBC,GAAcD,EAAkB,EAAIA,EAAkB,EAAI,EACrH1J,KAAKC,SAAWH,EAAMI,QAAQC,SAAWL,EAAMI,QAAQC,QAAQC,QAAgD,WAAtCN,EAAMI,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KACjI,MAAMwJ,EAAkBhE,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAUoG,EAAMwD,SAASK,EAAmB,GAExGI,EAAkCD,GAAoBA,EAA4B/J,MAAMmE,OAAO6C,cAAgB,GACrH9G,KAAKM,MAAQ,CAAE0I,gBAAiBY,EAAcG,SAAU,GAAIC,cAAe,GAAIf,iBAAkBa,EAAyBvJ,SAAUP,KAAKO,SAAU2I,cAAc,GACjKlJ,KAAKiK,cAAgBjK,KAAKiK,cAAcrJ,KAAKZ,MAC7CA,KAAKkK,eAAiBlK,KAAKkK,eAAetJ,KAAKZ,MAC/CA,KAAKgI,SAAWhI,KAAKgI,SAASpH,KAAKZ,MACnCA,KAAKuJ,WAAavJ,KAAKuJ,WAAW3I,KAAKZ,MACvCA,KAAKmK,iBAAmBnK,KAAKmK,iBAAiBvJ,KAAKZ,MACnDA,KAAKoK,WAAa,KAClBpK,KAAKqK,iCAAmCrK,KAAKqK,iCAAiCzJ,KAAKZ,MACnFA,KAAKsK,sBAAwBtK,KAAKsK,sBAAsB1J,KAAKZ,MAC7DA,KAAKuI,mBAAqBvI,KAAKuI,mBAAmB3H,KAAKZ,MACvDA,KAAKuK,UAAYvK,KAAKuK,UAAU3J,KAAKZ,MACrCA,KAAKqI,mBAAqBrI,KAAKqI,mBAAmBzH,KAAKZ,MACvDA,KAAKwK,gBAAkBxK,KAAKwK,gBAAgB5J,KAAKZ,MACjDA,KAAKyK,gBAAkBzK,KAAKyK,gBAAgB7J,KAAKZ,KACnD,CACcO,eACZ,MAA0B,OAAlBP,KAAKC,UAAuC,OAAlBD,KAAKC,QACzC,CACOqB,oBACLtB,KAAKuK,YACLvK,KAAKuC,4BACHF,SAAUqI,EAAAA,EAAAA,mBAAkBrI,OAAQ,SAAUrC,KAAKwK,iBACrDxK,KAAKwK,iBACP,CACOpI,uBACLC,QAAUA,OAAOC,oBAAoB,SAAUtC,KAAKuC,6BAA8B,EACpF,CACOC,SACL,MAAM,MAAEqD,GAAU7F,KAAKF,OACjB,QAAE+H,EAAO,UAAEjK,GAAcoC,KAAKF,MAAMmE,OAEpC0G,EAAmB9C,GACvB7I,EAAAA,cAAC4L,EAAAA,GAAa,CACZhN,UAAU,iCACVsG,IAAK2D,EAAQ3D,KAAO,KACpBvG,KAAMkK,EAAQlK,KACdkN,UAAW,CAAEC,OAAQ9K,KAAK2H,oBAAqBW,eAAgBtI,KAAKF,MAAMI,QAAQC,WAGhFwJ,EAAa9D,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAU,EACjEsL,EACJ/L,EAAAA,cAAA,MAAIpB,UAAU,UAAUyB,QAASW,KAAKyK,iBAAkBzK,KAAKM,MAAM2I,kBAAoBjJ,KAAKM,MAAM2I,iBAChGjK,EAAAA,cAAA,QAAMpB,UAAWoC,KAAKM,MAAM4I,cAAgBlJ,KAAKM,MAAM4I,aAAe,qBAAuB,yBAG3F8B,EACJhM,EAAAA,cAAA,MAAImF,KAAK,UAAUvG,UAAWoC,KAAKM,MAAM4I,cAAgBlJ,KAAKM,MAAM4I,aAAe,iBAAmB,aAAcS,EAAa,GAAK9D,EAAMwD,SAASnC,KAAI,CAAChG,EAAuBnD,IAAkBiC,KAAKiK,cAAc/I,EAAMnD,MAExNkN,EAAYpH,EAAAA,EAAA,GACb7D,KAAKF,OAAK,IACboL,aAAc,CACZnH,YAAa/D,KAAKF,MAClBlC,UAAWoG,IAAW,SAAUpG,EAAWoC,KAAKM,MAAMC,SAAW,wBAA0B,KAE7F4K,cAAe,CAAEvN,UAAW,yBAC5BwN,oBAAqB,CAAExN,UAAW,iBAClCyN,YAAa,CAAEzN,UAAW,sBAAuBsG,IAAK,KAAiBC,KAAM,WAC7E0D,QAAS8C,EACT1G,OAAQjE,KAAKF,OAASE,KAAKF,MAAMmE,OACjCqH,iBAAkB,CAChBpH,IAAK,MACLtG,UAAW,0BAEb2N,YAAa5B,EAAa,GAAK9D,EAAMwD,SAASnC,KAAI,CAAChG,EAAuBnD,IAAkBiC,KAAKkK,eAAehJ,EAAMnD,KACtHyN,WAAY7B,EAAa,GAAK9D,EAAMwD,SAASnC,KAAI,CAAChG,EAAuBnD,IAAkBiC,KAAKiK,cAAc/I,EAAMnD,KACpHuG,aAActE,KAAKM,MAAMC,SACzByK,iBAAkBA,EAClBD,mBAAoBA,IAEtB,OAAO/K,KAAKF,MAAMyE,WAAW0G,EAC/B,CAIOQ,qBACL,MAAM,KAAE1I,GAAS/C,KAAKF,MAChB4L,EAAkB3I,GAAQA,EAAKqD,gBAAkBrD,EAAKqD,eAAenD,QAAUF,EAAKqD,eAAenD,OAAOiD,MAC5GwF,GACE1L,KAAKF,MAAM6G,KAAO+E,GACpB1L,KAAKoK,YAAcpK,KAAKoK,WAAWuB,OAGzC,CAGQpB,YACN,MAAM,gBAAEb,GAAoB1J,KAAKF,MAAMmE,QACjC,MAAE4B,GAAU7F,KAAKF,MACjB6J,EAAa9D,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAU,EACvE,IAAImK,EAAeF,GAAmBA,GAAmBC,GAAcD,EAAkB,EAAIA,EAAkB,EAAI,EAC/GkC,EAAwB,EAC5B,MAAMC,EAAehG,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAUoG,EAAMwD,SAASK,EAAmB,GAE3G,IAAIoC,EAA2BD,GAAiBA,EAAyB/L,MAAMmE,OAAO6C,cAAgB,GAClGiF,EAA2B,GAAGD,KAClC,MAAMxD,EAAiBtI,KAAKuI,qBACtByD,EAAUhM,KAAKqK,iCAAiC/B,EAAe2D,KAErE,IAAIlC,EADoB,IAAImC,IAAI5D,GAAkBA,EAAe2D,KAAO3D,EAAe2D,IAAIE,YAAc7D,EAAe2D,IAAIE,WAAWC,YAC7GC,SAC1B,MAAMC,EAAgBvC,EAASwC,MAAM,KACrC,GAAI1G,GAASA,EAAMwD,SACjB,IAAK,IAAImD,EAAI,EAAGA,EAAI3G,EAAMwD,SAAS5J,OAAQ+M,IAAK,CAC9C,IAAIC,EAAgC5G,EAAMwD,SAASmD,GAAe1M,MAAMmE,OAAO6C,aAAaqB,QAAQ,IAAI,OAExG,MAAMD,EAAmBlI,KAAKqI,mBAAmBoE,GACjD,GAAIT,EAAQU,sBAAwBxE,EAASwE,oBAAqB,CAChEZ,EAAmB5D,EACnB6D,EAAmBD,EAAmBU,EAAEJ,WACxCR,EAAgBY,EAChBzC,EAAWuC,EAAcK,MAAM,EAAGL,EAAc7M,OAAS,GAAGmN,KAAK,KACjE,OAINhD,EAAegC,EAAgB,GAAKA,GAAiBjC,EAAaiC,EAAgBhC,EAClF5J,KAAKC,SAAWD,KAAKF,MAAMI,QAAQC,SAAWH,KAAKF,MAAMI,QAAQC,QAAQC,QAAqD,WAA3CJ,KAAKF,MAAMI,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KAChJ,MAAMwJ,EAAkBhE,GAASA,EAAMwD,UAAYxD,EAAMwD,SAAS5J,QAAUoG,EAAMwD,SAASK,EAAmB,GAExGI,EAAkCD,GAAoBA,EAA4B/J,MAAMmE,OAAO6C,cAAgB,GACrH9G,KAAKyE,SAAS,CAAEuE,gBAAiBY,EAAcG,SAAUA,EAAUC,cAAe+B,EAAkB9C,iBAAkBa,EAAyBvJ,SAAUP,KAAKO,SAAU2I,cAAc,GACxL,CACQsB,kBACNxK,KAAKC,SAAWD,KAAK6M,eACrB7M,KAAKyE,SAAS,CAAElE,SAAUP,KAAKO,UACjC,CAEQsM,eACN,MAAM,QAAE3M,GAAYF,KAAKF,MAGzB,GAAII,EAAQC,SAAWD,EAAQC,QAAQC,QAA0C,WAAhCF,EAAQC,QAAQC,OAAOC,KACtE,MAAO,KAET,QAAsB1B,WAAX0D,QAAwBA,OAAOyK,WAAY,CACpD,MAAMC,EAAe7M,EAAQC,QAAQ4M,aACrC,GAAIA,EACF,OAAIA,EAAaC,IAAM3K,OAAOyK,YAAcC,EAAaC,GAAGC,EACnD,KACEF,EAAaG,IAAM7K,OAAOyK,YAAcC,EAAaG,GAAGD,EAC1D,KACEF,EAAaI,IAAM9K,OAAOyK,YAAcC,EAAaI,GAAGF,EAC1D,KACEF,EAAaK,IAAM/K,OAAOyK,YAAcC,EAAaK,GAAGH,EAC1D,KAEA,KAIb,MAAO,IACT,CAEQhD,cAAc/I,EAAuBnD,GAC3C,MAAM,KAAEgF,EAAI,OAAEkB,GAAWjE,KAAKF,MACxBwG,EAAqBvD,GAAQA,EAAKqD,gBAAkBrD,EAAKqD,eAAenD,QAAUF,EAAKqD,eAAenD,OAAOqD,mBAC7GoF,EAAkB3I,GAAQA,EAAKqD,gBAAkBrD,EAAKqD,eAAenD,QAAUF,EAAKqD,eAAenD,OAAOiD,MAC1GmH,OAAkC1O,IAAvB2H,GAAoCoF,IAAoB1L,KAAKF,MAAM6G,GAAKL,IAAuBvI,EAAQiC,KAAKM,MAAM0I,kBAAoBjL,EACjJiI,GAAYC,EAAAA,EAAAA,cAAalI,EAAOiC,KAAKF,MAAM6G,IAE3CuB,EAAYhH,EAAiBpB,MAAMmE,OAAO6C,aAC1CsB,EAAkBpI,KAAKqI,mBAAmBH,GAC1CI,EAA2CtI,KAAKuI,qBAChD+E,EAAiBtN,KAAKsK,sBAAsBhC,EAAe2D,KAAK,GACtE,IAAIsB,EAAK,GAAGvN,KAAKM,MAAMyJ,YAAY3B,IAAkBkF,IAAiBnF,QAAQ,KAAM,KACpFoF,EAAKtJ,EAAOuJ,SAAWD,EAAKD,EAC5B,MAAMG,EAAuBJ,EAAW,eAAiB,GACzD,OACErO,EAAAA,cAAA,MACEmI,IAAKpJ,EACLH,UAAW,0BAA0B6P,IAErCpO,QAASW,KAAKgI,SAAS9G,EAAiBnD,EAAOiC,KAAKF,MAAM6G,IAC1D+G,UAAW1N,KAAKuJ,WAAWxL,EAAOiC,KAAKF,MAAM6G,IAC7CF,UAAY,EAEZkH,IAAKC,IAAc7P,IAAUiC,KAAKM,MAAM0I,kBAAmBhJ,KAAKoK,WAAawD,IAAS,gBACvE5H,EAAS,gBACTqH,EACflJ,KAAK,OAELnF,EAAAA,cAACA,EAAAA,SAAc,CAACmI,IAAKpJ,GAClBiB,EAAAA,aAAmBkC,EAA4B,CAAEkG,YAAa5B,EAAAA,YAAYgC,UAAW1B,WAAY/H,IAAUiC,KAAKM,MAAM0I,gBAAiBjD,UAAWhI,EAAOmI,MAAOlG,KAAKF,MAAM6G,MAIpL,CAEQ8D,gBAAgB7C,GACtB5H,KAAKyE,SAAS,CAAEyE,cAAelJ,KAAKM,MAAM4I,cAC5C,CAEQb,mBAAmB2D,GAEzB,OAAO6B,UAAU7B,EAAQU,oBAAoBvE,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAC9E,CACQmC,sBAAsBwD,EAAwCC,GACpE,MAAMC,EAAUF,GAAqBA,EAAkB3B,YAAc2B,EAAkB3B,WAAWC,WAClG,GAAI2B,EAAiB,CACnB,MAAME,EAA4BD,GAAWA,EAAQzB,MAAM,KACrD2B,EAA+BD,GAA6BA,EAA0BxO,OAAS,QAAuCd,IAAjCsP,EAA0B,IAAqBA,EAA0B,IAAM,GAC1L,MAAwC,KAAjCC,EAAsCA,EAA+B,IAAIA,IAElF,OAAOF,GAAW,EACpB,CACQzF,qBACN,MAAM,QAAErI,GAAYF,KAAKF,MACzB,OAAOI,GAAWA,EAAQwI,eAAiBxI,EAAQwI,cAAcJ,cACnE,CAEQ+B,iCAAiC4B,GACvC,MAAM+B,EAAUhO,KAAKsK,sBAAsB2B,GAAKM,MAAM,KAChD4B,EAAWH,GAAWA,EAAQvO,QAAUuO,EAAQ,GAAGzB,MAAM,KAC/D,OAAO4B,GAAYA,EAAS1O,QAAU0O,EAASA,EAAS1O,OAAS,IAAM,EACzE,CAEQgJ,UAAUvH,EAAekH,EAAyBE,GAAwC,IAAA8F,EAChG,MAAMd,EAAiBtN,KAAKsK,sBAAsBhC,EAAe2D,KAAK,GACtE,IAAIsB,EAAK,GAAGvN,KAAKM,MAAMyJ,YAAY3B,IAAkBkF,IAAiBnF,QAAQ,KAAM,KAEpF,OADAoF,EAAsB,QAAjBa,EAAApO,KAAKF,MAAMmE,cAAM,IAAAmK,GAAjBA,EAAmBZ,SAAWD,EAAKD,EACjCC,CACT,CAoCQrD,eAAehJ,EAAuBnD,GAC5C,OACEiB,EAAAA,cAACA,EAAAA,SAAc,CAACmI,IAAKpJ,GAClBiB,EAAAA,aAAmBkC,EAA4B,CAAEkG,YAAa5B,EAAAA,YAAY6B,WAAYvB,WAAY/H,IAAUiC,KAAKM,MAAM0I,gBAAiBjD,UAAWhI,EAAOmI,MAAOlG,KAAKF,MAAM6G,KAGnL,CAEQwD,iBAAiB7B,EAA0C+F,EAAmBC,GACpF,IAAIrC,EAGFA,EADErB,EAAAA,GAA0B2D,UACtB,IAAIrC,IAAI7J,OAAOmM,SAAS3Q,MAExB,IAAIqO,IAAI5D,EAAe2D,IAAIE,WAAWtO,MAE9C,MAAM4Q,EAAS,IAAIpM,OAAOqM,gBAAgBzC,EAAI0C,QAG9C,OAFAF,EAAOG,IAAIP,EAAWC,GACtBrC,EAAI0C,OAASE,mBAAmBJ,EAAOrC,YAChCH,EAAIG,UACb,IAhSAhH,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCA4BDD,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,6BAhCLmC,GAAGrC,EAAAA,EAAAA,IAAA,CADR2B,EAAAA,IACKU,GAwSN,iFC1VA,MAyCA,EAzCyC3H,IACrC,MAAM,QAAE+H,EAAO,aAAEqD,EAAY,WAAEM,EAAU,YAAED,EAAW,oBAACH,EAAmB,mBAAEL,EAAkB,aAAEzG,EAAY,iBAAE0G,GAAqBlL,EACnI,OAAKA,EAAM+H,SAAY/H,EAAM0L,YAAe1L,EAAMyL,YAI9CjH,EAEItF,EAAAA,cAACuG,EAAAA,OAAMpG,OAAAC,OAAA,GAAK8L,GACRlM,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKU,EAAMqL,eACZnM,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKgM,GACbL,EACAC,IAGDhM,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKU,EAAMwL,kBACXC,IAOTvM,EAAAA,cAACuG,EAAAA,OAAMpG,OAAAC,OAAA,GAAK8L,GACRlM,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKU,EAAMqL,eACXtD,GAGL7I,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKU,EAAMuL,aACXG,GAGLxM,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAKU,EAAMwL,kBACXC,KA9BbzL,EAAMI,QAAQwD,UAAUC,MAAM,4CACvB,0sBC2Bf,MAAMmL,UAAmB9P,IAAAA,cAcrBa,YAAmBC,GACfC,MAAMD,GAdO,KAAAiP,YAAsB,oBAEtB,KAAAC,2BAAqC,OAgHrC,KAAAC,aAAgBrH,IAC7B,MAAMT,EAAMS,EAAM4B,QAClB,GAAIxJ,KAAKM,MAAM4O,kBACX,OAAQ/H,GACJ,KAAKgI,EAAAA,SAASC,OACVC,YAAW,KAAK,IAAAC,EAAAC,EACZ,MAAMC,EAAYhO,UAAYA,SAASiO,cAIpC,IAADC,GAF4B,QAA1BJ,EAAAtP,KAAK2P,6BAAqB,IAAAL,GAAS,QAATA,EAA1BA,EAA4BM,eAAO,IAAAN,GAAnCA,EAAqCO,SAASL,IACtB,QADgCD,EACxDvP,KAAK8P,2BAAmB,IAAAP,GAAS,QAATA,EAAxBA,EAA0BK,eAAO,IAAAL,GAAjCA,EAAmCM,SAASL,MAE5CxP,KAAK+P,yBACqB,QAA1BL,EAAA1P,KAAK2P,6BAAqB,IAAAD,GAAS,QAATA,EAA1BA,EAA4BE,eAAO,IAAAF,GAAnCA,EAAqC/D,QAAQ,GAElD,IACH,MAEJ,KAAKwD,EAAAA,SAAS1H,IACV4H,YAAW,KAAK,IAAAW,EAAAC,EACZ,MAAMT,EAAYhO,UAAYA,SAASiO,cAER,QAA3BO,EAAChQ,KAAK2P,6BAAqB,IAAAK,GAAS,QAATA,EAA1BA,EAA4BJ,eAAO,IAAAI,GAAnCA,EAAqCH,SAASL,IACtB,QAAzBS,EAACjQ,KAAK8P,2BAAmB,IAAAG,GAAS,QAATA,EAAxBA,EAA0BL,eAAO,IAAAK,GAAjCA,EAAmCJ,SAASL,IAE7CxP,KAAK+P,wBAAyB,GAEnC,IACH,MAEJ,QACI,SAMC,KAAAG,oBAAuBtI,IAAc,IAAAuI,EAAAC,EAEX,QAAlCD,EAAAnQ,KAAK2P,sBAAsBC,eAAO,IAAAO,GAAlCA,EAAoCN,SAASjI,EAAME,SAAW9H,KAAKM,MAAM4O,mBACzC,QAAhCkB,EAAApQ,KAAK8P,oBAAoBF,eAAO,IAAAQ,GAAhCA,EAAkCP,SAASjI,EAAME,SAAW9H,KAAKM,MAAM4O,mBAI5ElP,KAAK+P,wBAAwB,EA9I7B/P,KAAKqQ,cAAgBrQ,KAAKqQ,cAAczP,KAAKZ,MAC7CA,KAAK8P,oBAAsB9Q,IAAAA,YAC3BgB,KAAK2P,sBAAwB3Q,IAAAA,YAC7BgB,KAAKsQ,mBAAqBtQ,KAAKsQ,mBAAmB1P,KAAKZ,MACvDA,KAAK+P,uBAAyB/P,KAAK+P,uBAAuBnP,KAAKZ,MAC/DA,KAAKiP,aAAejP,KAAKiP,aAAarO,KAAKZ,MAC3CA,KAAKkQ,oBAAsBlQ,KAAKkQ,oBAAoBtP,KAAKZ,MACzDA,KAAKwK,gBAAkBxK,KAAKwK,gBAAgB5J,KAAKZ,MACjDA,KAAKC,SACDH,EAAMI,QAAQC,SAAWL,EAAMI,QAAQC,QAAQC,QAAgD,WAAtCN,EAAMI,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KACrHL,KAAKM,MAAQ,CACT4O,mBAAmB,EACnB3O,SAAUP,KAAKO,SAEvB,CAEcA,eACV,MAAyB,OAAlBP,KAAKC,UAAuC,OAAlBD,KAAKC,QAC1C,CAEOqB,oBACsB,IAADiP,EAAAC,EAApB5F,EAAAA,GAAS2D,YACD,QAARgC,EAAA/O,gBAAQ,IAAA+O,GAARA,EAAUE,iBAAiB,UAAYzQ,KAAKiP,cAA2C,GAC/E,QAARuB,EAAAhP,gBAAQ,IAAAgP,GAAM,QAANA,EAARA,EAAUE,YAAI,IAAAF,GAAdA,EAAgBC,iBAAiB,YAAazQ,KAAKkQ,qBACnDlQ,KAAKuC,4BAA8BF,SAAUqI,EAAAA,EAAAA,mBAAkBrI,OAAQ,SAAUrC,KAAKwK,iBACtFxK,KAAKwK,kBAEb,CAEOpI,uBACsB,IAADuO,EAAAC,EAApBhG,EAAAA,GAAS2D,YACD,QAARoC,EAAAnP,gBAAQ,IAAAmP,GAARA,EAAUrO,oBAAoB,UAAYtC,KAAKiP,cAA2C,GAClF,QAAR2B,EAAApP,gBAAQ,IAAAoP,GAAM,QAANA,EAARA,EAAUF,YAAI,IAAAE,GAAdA,EAAgBtO,oBAAoB,YAAatC,KAAKkQ,qBAAqB,GAC3E7N,QAAUA,OAAOC,oBAAoB,SAAUtC,KAAKuC,6BAA8B,GAE1F,CAEOC,SAAM,IAAAqO,EAAAC,EACT,MAAMlN,EAASC,EAAAA,EAAA,GACP7D,KAAKF,OAA6C,IACtDgP,WAAY,CACR/K,YAAa/D,KAAKF,MAClBlC,UAAWoG,IAAW,iBAAkBhE,KAAKF,MAAMmE,OAAOrG,UAAWoC,KAAKM,MAAMC,SAAW,cAAgB,gBAC3G2D,IAAK,OAET6M,eAAgB,CACZ7M,IAAK,SACLtG,UAAW,yBACX,aAAuC,QAA3BiT,EAAE7Q,KAAKF,MAAMmE,OAAO4D,eAAO,IAAAgJ,OAAA,EAAzBA,EAA2BlT,KACzC,gBAAiBqC,KAAKM,MAAM4O,kBAC5B7P,QAASW,KAAKF,MACd6N,IAAK3N,KAAK2P,uBAEdqB,mBAAoB,CAChBpT,UAAW,uBACXsG,IAAK,QAET+M,mBAAoB,CAChBrT,UAAW,uBACXuG,KAAM,OACND,IAAK,KACLyJ,IAAK3N,KAAK8P,qBAEdoB,uBAAwB,CACpBtT,UAAW,6BACXuG,KAAM,eACND,IAAK,MAETiN,0BAA2B,CACvBjN,IAAKkN,EAAAA,OACLxT,UAAW,yBACXyT,iBAA2C,QAA3BP,EAAE9Q,KAAKF,MAAMmE,OAAO4D,eAAO,IAAAiJ,OAAA,EAAzBA,EAA2BnT,KAC7C2T,UAAW,8BACXC,WAAY,+BACZC,eAAgB,OAEpBlN,aAActE,KAAKM,MAAMC,SACzBkR,4BAA6BzR,KAAK0R,yBAClCC,kBAAmB3R,KAAKsQ,mBACxBsB,sBAAuB5R,KAAK+P,uBAC5B8B,iBAAkB7R,KAAKM,MAAM4O,oBAEjC,OAAOlP,KAAKF,MAAMyE,WAAWX,EACjC,CAEQ0M,qBACJ,MAAMwB,EAAyB9R,KAAKM,MAAM4O,kBAC1ClP,KAAKyE,SAAS,CACVyK,mBAAoB4C,GAE5B,CAEQ/B,yBACJ/P,KAAKyE,SAAS,CACVyK,mBAAmB,GAE3B,CAiDQmB,cAAcpI,GAElB,GADAA,EAAE8J,iBACE9J,EAAE+J,cAAcnU,MAAQoK,EAAE+J,cAAcnU,KAAK4B,OAAS,GAAK4C,OAAQ,CACnE,GAAIrC,KAAKF,MAAMI,QAAQC,QAAQ8R,QAAQC,iBAAkB,CACrD,MAAMC,EAAe,CAAEC,OAAQpS,KAAKgP,4BACpChP,KAAKF,MAAMI,QAAQC,QAAQ8R,QAAQrD,IAAI5O,KAAK+O,YAAa9G,EAAE+J,cAAcnU,KAAMsU,EAAc,CAEjG9P,OAAOmM,SAASpP,OAAO6I,EAAE+J,cAAcnU,KAAM,CAErD,CAEQ6T,yBACJ,MAAMW,EAAuC,CACzCC,UAAW,CACPtF,GAAI,CAAEuF,EAAG,gBAAiBtF,EAAG,EAAGuF,EAAG,GACnCtF,GAAI,CAAEqF,EAAG,gBAAiBtF,EAAG,EAAGuF,EAAG,GACnCrF,GAAI,CAAEoF,EAAG,gBAAiBtF,EAAG,EAAGuF,EAAG,GACnCpF,GAAI,CAAEmF,EAAG,gBAAiBtF,EAAG,EAAGuF,EAAG,GACnCC,GAAI,CAAEF,EAAG,gBAAiBtF,EAAG,EAAGuF,EAAG,IAEvCE,UAAU,GAERC,EAAc3S,KAAKF,MAAMmE,OAAO0O,aAAe3S,KAAKF,MAAMmE,OAAO0O,YACvE,OACIA,GACAA,EAAYzL,KAAI,CAAChG,EAAMnD,KAAS,IAAA6U,EAAAC,EAC5B,MAAMC,EAAQ5R,aAAI,EAAJA,EAAM6R,UACdC,EAAa,CACfjG,aAAc/M,KAAKF,MAAMI,QAAQC,QAAQ4M,aACzCkG,cAAeH,SAAoB,QAAfF,EAALE,EAAOG,qBAAa,IAAAL,GAApBA,EAAsBN,UAAYQ,EAAMG,cAAgBZ,GAE3E,OACIrT,IAAAA,cAAA,KACImI,IAAKpJ,EACLH,UAAU,mCACV6I,SAAU,EACV5I,KAAMqD,SAAqB,QAAjB2R,EAAJ3R,EAAMgS,uBAAe,IAAAL,OAAA,EAArBA,EAAuBM,eAAc,aAC/BjS,aAAI,EAAJA,EAAMkS,SAClB/T,QAASW,KAAKqQ,cACdlM,KAAK,YAELnF,IAAAA,cAAA,QAAMpB,UAAU,oCAAoCsD,aAAI,EAAJA,EAAMkS,UAC1DpU,IAAAA,cAACqU,EAAAA,GAAK,CACF/K,eAAgBtI,KAAKF,MAAMI,QAAQC,QACnCvC,UAAU,kCACVuJ,IAAKpJ,EACLuV,KAAKR,aAAK,EAALA,EAAOQ,MAAO,GACnBvG,aAAciG,EAAWjG,aACzBkG,cAAeD,EAAWC,cAC1BM,QAAST,aAAK,EAALA,EAAOS,QAChBC,oBAAoB,OACpBC,uBAAqB,IAEzB,GAIpB,CAEQjJ,kBACJxK,KAAKC,SAAWD,KAAK6M,eACrB7M,KAAKyE,SAAS,CAAElE,SAAUP,KAAKO,UACnC,CAEQsM,eACJ,MAAM,QAAE3M,GAAYF,KAAKF,MACzB,GAAII,EAAQC,SAAWD,EAAQC,QAAQC,QAA0C,WAAhCF,EAAQC,QAAQC,OAAOC,KACpE,MAAO,KAGX,QAAsB1B,WAAX0D,QAAwBA,OAAOyK,WAAY,CAClD,MAAMC,EAAe7M,EAAQC,QAAQ4M,aACrC,GAAIA,EACA,OAAIA,EAAaC,IAAM3K,OAAOyK,YAAcC,EAAaC,GAAGC,EACjD,KACAF,EAAaG,IAAM7K,OAAOyK,YAAcC,EAAaG,GAAGD,EACxD,KACAF,EAAaI,IAAM9K,OAAOyK,YAAcC,EAAaI,GAAGF,EACxD,KACAF,EAAaK,IAAM/K,OAAOyK,YAAcC,EAAaK,GAAGH,EACxD,KAEJ,IAAI,CAGnB,MAAO,IACX,GA3OA7H,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCAqBDD,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,6BA0Nb,iFCvRA,QAAgBxF,GACLd,EAAAA,cAAAA,EAAAA,SAAA,KAAG0U,EAAkB5T,IAgB1B6T,EAA0B7T,IAC5B,MAAM,mBAAEmR,EAAkB,uBAAEC,EAAsB,4BAAEO,GAAgC3R,EAC9E8T,EAAUnC,EAA6BvK,KAAI,CAAChG,EAAMnD,IAEhDiB,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAK8R,EAAsB,CAAE/J,IAAKpJ,IAClCmD,KAIb,OACIlC,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAK6R,EAAkB,CAAE/R,aAAcY,EAAM8R,wBAC7CgC,EACE,EAiBTF,EAAqB5T,IACvB,MAAM,aAAEwE,EAAY,WAAEwK,GAAehP,EACrC,OAAOd,EAAAA,cAACuG,EAAAA,OAAMpG,OAAAC,OAAA,GAAK0P,GAAaxK,EAfTxE,KAAgD,IAAA+T,EACvE,MAAM,0BAAE1C,GAA8BrR,EACtC,OACId,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAK+R,EAAyB,CAAE9R,QAASS,EAAM6R,oBAChD3S,EAAAA,cAAA,WACsC,QADtC6U,EACK/T,EAAM2R,mCAA2B,IAAAoC,OAAA,EAAjCA,EAAmC3M,KAAI,CAAChG,EAAMnD,IACpCiB,EAAAA,cAAA,OAAKmI,IAAKpJ,GAAQmD,MAG9B,EAMoC4S,CAAkBhU,GA5CzCA,KAA+B,IAAAiU,EACvD,MAAM,eAAEhD,EAAc,mBAAEC,GAAuBlR,EAC/C,OACId,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAK2R,EAAc,CAAE1R,QAASS,EAAM6R,oBAChB,QADiCoC,EACrDjU,EAAMmE,OAAO4D,eAAO,IAAAkM,OAAA,EAApBA,EAAsBpW,KACvBqB,EAAAA,cAACsI,EAAAA,KAAInI,OAAAC,OAAA,GAAK4R,KAEblR,EAAM+R,iBAAmB8B,EAAuB7T,GAAS,KAC3D,EAmCmEkU,CAAmBlU,GAAgB","sources":["webpack://Citta2.0/./src/modules/citta-category-navigation-menu/components/link.tsx?c099","webpack://Citta2.0/./src/modules/citta-category-navigation-menu/components/subLink.tsx?099d","webpack://Citta2.0/./src/modules/citta-category-navigation-menu/citta-category-navigation-menu.tsx?40b8","webpack://Citta2.0/./src/modules/citta-category-navigation-menu/citta-category-navigation-menu.view.tsx?ab4a","webpack://Citta2.0/./src/modules/citta-tab-item/citta-tab-item.tsx?7492","webpack://Citta2.0/./src/modules/citta-tab-item/citta-tab-item.view.tsx?e3f3","webpack://Citta2.0/./src/modules/citta-tabs/citta-tabs.tsx?0226","webpack://Citta2.0/./src/modules/citta-tabs/citta-tabs.view.tsx?5654","webpack://Citta2.0/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Citta2.0/./src/modules/site-picker/site-picker.view.tsx?5319"],"sourcesContent":["import { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n// import { SubLink } from './subLink'\r\n\r\ninterface ILink {\r\n className?: string;\r\n text?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n index: string;\r\n noclick?: boolean;\r\n isActive: boolean;\r\n telemetryContent: ITelemetryContent;\r\n subLinks?: any;\r\n handleHover: Function;\r\n recordId: number;\r\n isHover: boolean;\r\n menuHover: boolean;\r\n}\r\n\r\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent, isActive, subLinks, handleHover, recordId, isHover, menuHover }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n const linkText = text !== undefined ? text : '';\r\n payLoad.contentAction.etext = linkText;\r\n // Construct telemetry attribute to render\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\r\n
handleHover(recordId)}\r\n onMouseLeave={() => handleHover(null)}\r\n >\r\n \r\n \r\n {linkText}\r\n \r\n \r\n \r\n\r\n {(isHover || (!menuHover && isActive)) && subLinks && subLinks.length ? \r\n (
\r\n {subLinks}\r\n
)\r\n :''\r\n }\r\n
\r\n );\r\n};","import { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ISubLink {\r\n className?: string;\r\n text?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n index: string;\r\n noclick?: boolean;\r\n isActive: boolean;\r\n telemetryContent: ITelemetryContent;\r\n handleHover: Function;\r\n recordId: number;\r\n}\r\n\r\nexport const SubLink: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent, isActive, handleHover, recordId }) => {\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n\r\n const subLinkText = text !== undefined ? text : '';\r\n payLoad.contentAction.etext = subLinkText;\r\n // Construct telemetry attribute to render\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n\r\n return (\r\n handleHover(recordId, true)}\r\n onMouseLeave={() => handleHover(null, true)}\r\n >\r\n \r\n {subLinkText}\r\n \r\n \r\n \r\n );\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { IGridSettings, IImageSettings, isEmptyOrNullObject} from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { Link } from './components/link';\r\nimport { SubLink } from './components/subLink';\r\nimport { IMenuItemData, ICittaCategoryNavigationMenuData } from './citta-category-navigation-menu.data';\r\nimport { ICittaCategoryNavigationMenuProps } from './citta-category-navigation-menu.props.autogenerated';\r\n\r\nexport interface INavigationMenuViewProps extends ICittaCategoryNavigationMenuProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer:INodeProps;\r\n MobileDescriptionContainer:INodeProps;\r\n MobileBackButton:INodeProps;\r\n MobileDescriptionLabel:INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?:INodeProps;\r\n ImageDivContainer?:INodeProps;\r\n showCategoryImage?:boolean;\r\n pageType: string;\r\n links?: React.ReactNode[];\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n linkHoverRecId?: number;\r\n subLinkHoverRecId?: number;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenu component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private hasSubLinks: boolean;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICittaCategoryNavigationMenuProps) {\r\n super(props);\r\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this.state = {\r\n isMobile: this.isMobile,\r\n linkHoverRecId: undefined,\r\n subLinkHoverRecId: undefined\r\n\r\n };\r\n this.hasSubLinks = false;\r\n\r\n this._handleHover = this._handleHover.bind(this);\r\n\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return (this.viewport === 'xs' || this.viewport === 'sm');\r\n }\r\n\r\n public componentDidMount(): void {\r\n let container = document.querySelector(\".ms-nav-category\");\r\n if (container) {\r\n const middle = container.querySelector(\"a.active\") || container.children[Math.floor((container.children.length - 1) / 2)];\r\n \r\n container.scrollTo({\r\n top: 0,\r\n // @ts-ignore\r\n left: middle.offsetLeft + middle.offsetWidth / 2 - container.offsetWidth / 2,\r\n behavior: 'smooth'\r\n })\r\n \r\n \r\n // middle.offsetLeft + middle.offsetWidth / 2 - container.offsetWidth / 2;\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const urlTokens = this.props.context.request.urlTokens;\r\n\r\n let links: React.ReactNode[] = [];\r\n\r\n if (urlTokens.pageType === 'Category') {\r\n const currentCategoryId = Number(urlTokens.recordId);\r\n const categoryHierarchyList = this.props.data.categories.result;\r\n if (categoryHierarchyList && categoryHierarchyList[1]) {\r\n const categoryHierarchyCurrent = categoryHierarchyList[1].Children[0];\r\n categoryHierarchyCurrent.Children.forEach(layerOneChild => {\r\n \r\n if (currentCategoryId === layerOneChild.RecordId) {\r\n links = this._getLinkData(layerOneChild, currentCategoryId);\r\n } else if (layerOneChild.Children && layerOneChild.Children.length) {\r\n layerOneChild.Children.forEach(layerTwoChild => {\r\n if (currentCategoryId === layerTwoChild.RecordId) {\r\n links = this._getLinkData(layerOneChild, currentCategoryId);\r\n \r\n } else if (layerTwoChild.Children && layerTwoChild.Children.length) {\r\n layerTwoChild.Children.forEach(layerThreeChild => {\r\n if (currentCategoryId === layerThreeChild.RecordId) {\r\n links = this._getLinkData(layerOneChild, currentCategoryId);\r\n }\r\n });\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n pageType: urlTokens.pageType,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames('ms-nav-category', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp', this.hasSubLinks ? 'hasSubMenu' : ''),\r\n tag:'nav',\r\n role:'navigation',\r\n 'aria-label': this.props.resources.menuAriaLabel\r\n },\r\n isMobileView: this.state.isMobile,\r\n links: links,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _handleHover(recordId?: number, isSubLink = false) {\r\n if (isSubLink) {\r\n this.setState({subLinkHoverRecId: recordId})\r\n } else {\r\n this.setState({linkHoverRecId: recordId})\r\n }\r\n }\r\n\r\n private _getLinkData(category: CategoryHierarchy, activeCurrent: Number): React.ReactNode[] {\r\n let links = [];\r\n links.push();\r\n \r\n (category.Children || []).forEach(childCategory => {\r\n let subLinks: any = [];\r\n let subLinkIsActive = false;\r\n if (childCategory.Children) {\r\n childCategory.Children.forEach(childChildCategory => {\r\n if (childChildCategory.RecordId === activeCurrent) {\r\n subLinkIsActive = true;\r\n }\r\n subLinks.push();\r\n });\r\n \r\n }\r\n if ((childCategory.RecordId === activeCurrent || subLinkIsActive) && childCategory.Children && childCategory.Children.length ) {\r\n this.hasSubLinks = true;\r\n }\r\n\r\n links.push();\r\n })\r\n\r\n return links;\r\n }\r\n}\r\n\r\nexport default NavigationMenu;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INavigationMenuViewProps } from './citta-category-navigation-menu';\r\n\r\nconst NavigationMenuView: React.FC = props => {\r\n const { isMobileView, Navigation, links, pageType} = props;\r\n if (pageType !== 'Category') {\r\n return null;\r\n }\r\n return (\r\n \r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default NavigationMenuView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaTabItemData } from './citta-tab-item.data';\r\nimport { ICittaTabItemProps } from './citta-tab-item.props.autogenerated';\r\n\r\nexport interface ITabItemViewProps {\r\n TabContentContainer: IModuleProps;\r\n TabHeaderContainer: IModuleProps;\r\n tabSlots: INodeProps;\r\n TabItemContent: INodeProps;\r\n tabItemType?: TabItemType;\r\n tabHeader: React.ReactNode;\r\n}\r\n\r\nexport interface ITabItemExtentedProps extends ICittaTabItemProps {\r\n tabItemType?: TabItemType;\r\n isSelected?: boolean;\r\n itemIndex?: number;\r\n tabId?: string;\r\n}\r\n\r\nexport enum TabItemType {\r\n TabHeader,\r\n TabContent\r\n}\r\n/**\r\n *\r\n * TabItem component\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nclass TabItem extends React.Component {\r\n private moduleContentClassName: string = 'ms-tab-item-content';\r\n private moduleHeaderClassName: string = 'ms-tab-item-header';\r\n\r\n constructor(props: ICittaTabItemProps) {\r\n super(props);\r\n this._renderTabHeader = this._renderTabHeader.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\r\n const index = itemIndex || 0;\r\n const contentID = getContentID(index, this.props.tabId || '');\r\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\r\n const shown = activeContentIDResult && activeContentIDResult.tabId === this.props.tabId && activeContentIDResult.activeContentIndex !== undefined ?\r\n activeContentIDResult.activeContentIndex === index : isSelected || false;\r\n const viewProps = {\r\n ... this.props,\r\n TabContentContainer: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleContentClassName, config.className)\r\n },\r\n TabHeaderContainer: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleHeaderClassName, config.className),\r\n tabIndex:'0'\r\n },\r\n TabItemContent: {\r\n className: 'ms-tab-item-content__content',\r\n tag: 'section' as NodeTag,\r\n 'aria-hidden': !shown,\r\n role: 'tabpanel',\r\n tabIndex: shown ? 0 : -1,\r\n id: contentID\r\n },\r\n tabHeader: this._renderTabHeader(),\r\n tabSlots: slots,\r\n };\r\n return renderView(viewProps) as React.ReactElement;\r\n\r\n }\r\n\r\n private _renderTabHeader(): React.ReactNode {\r\n return (\r\n <>\r\n {this.props.config.tabItemTitle}\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport const getContentID = (index: number, id: string) => {\r\n return `tab-item-content-${id}-${index}`;\r\n};\r\n\r\nexport default TabItem;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ITabItemViewProps, TabItemType } from './citta-tab-item';\r\n\r\nconst TabItemView: React.FC = props => {\r\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\r\n\r\n switch (tabItemType) {\r\n case TabItemType.TabContent:\r\n return (\r\n \r\n \r\n {tabSlots && tabSlots.tabItemContent && tabSlots.tabItemContent.length && (_renderTabItemContent(tabSlots.tabItemContent))}\r\n \r\n \r\n );\r\n case TabItemType.TabHeader:\r\n return (\r\n \r\n {tabHeader}\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n <>\r\n {items && items.length ? (\r\n items.map((item: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n })\r\n ) : null}\r\n \r\n );\r\n};\r\nexport default TabItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { addThrottledEvent, IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { createTabStateInput } from '../../data-actions/tabs/tab-state-data-action';\r\nimport TabItem, { getContentID, TabItemType } from '../citta-tab-item/citta-tab-item';\r\nimport { ICittaTabsData } from './citta-tabs.data';\r\nimport { ICittaTabsProps } from './citta-tabs.props.autogenerated';\r\n\r\n/**\r\n *\r\n * Tab component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nexport interface ICallToActionProps {\r\n link: INodeProps[];\r\n}\r\n\r\nexport interface ITabViewProps extends ICittaTabsProps<{}> {\r\n heading?: React.ReactNode;\r\n TabContainer: IModuleProps;\r\n headerSection: INodeProps;\r\n tabHeaderSection: INodeProps;\r\n tabsSection: INodeProps;\r\n tabItemContainer: INodeProps;\r\n tabHeaders: React.ReactNode;\r\n tabContents: React.ReactNode;\r\n isMobileView?: boolean;\r\n renderMobileHeader: React.ReactNode;\r\n tabMobileHeaders: React.ReactNode;\r\n headerMobileSection: INodeProps;\r\n}\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\nexport interface ITabViewStates {\r\n currentTabIndex: number;\r\n pathName: string;\r\n selectedIndex: string;\r\n isMobile: boolean;\r\n selectedDropDown: string;\r\n dropDownOpen: boolean;\r\n}\r\ninterface IRequestContextUrl {\r\n requestUrl: URL;\r\n staticCdnUrl: string;\r\n}\r\n/**\r\n *\r\n * Tab component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass Tab extends React.Component, ITabViewStates> {\r\n public readonly tabIndexQuery: string = 'activeTab';\r\n private activeLink: HTMLLIElement | null;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n @observable\r\n private viewport: GridSize;\r\n\r\n constructor(props: ICittaTabsProps) {\r\n super(props);\r\n const { defaultTabIndex } = this.props.config;\r\n const { slots } = this.props;\r\n const slotLength = slots && slots.tabItems && slots.tabItems.length || 0;\r\n const initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\r\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n const selectedDdlName = slots && slots.tabItems && slots.tabItems.length && slots.tabItems[defaultTabIndex! - 1];\r\n // @ts-ignore\r\n const defaultSelectedTabTitle: string = selectedDdlName && (selectedDdlName as TabItem).props.config.tabItemTitle || '';\r\n this.state = { currentTabIndex: initialIndex, pathName: '', selectedIndex: '', selectedDropDown: defaultSelectedTabTitle, isMobile: this.isMobile, dropDownOpen: false };\r\n this._getTabHeader = this._getTabHeader.bind(this);\r\n this._getTabContent = this._getTabContent.bind(this);\r\n this._onClick = this._onClick.bind(this);\r\n this._onKeyDown = this._onKeyDown.bind(this);\r\n this._setGetParameter = this._setGetParameter.bind(this);\r\n this.activeLink = null;\r\n this._getTabNameFromRequestContextUrl = this._getTabNameFromRequestContextUrl.bind(this);\r\n this._getRequestContextUrl = this._getRequestContextUrl.bind(this);\r\n this._getRequestContext = this._getRequestContext.bind(this);\r\n this._setState = this._setState.bind(this);\r\n this._getEncodedTabName = this._getEncodedTabName.bind(this);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this._dropDownAction = this._dropDownAction.bind(this);\r\n }\r\n @computed get isMobile(): boolean {\r\n return (this.viewport === 'xs' || this.viewport === 'sm');\r\n }\r\n public componentDidMount(): void {\r\n this._setState();\r\n this.resizeThrottledEventHandler =\r\n window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n this._updateViewport();\r\n }\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n public render(): JSX.Element {\r\n const { slots } = this.props;\r\n const { heading, className } = this.props.config;\r\n\r\n const headingComponent = heading && (\r\n \r\n );\r\n const slotLength = slots && slots.tabItems && slots.tabItems.length || 0;\r\n const renderMobileHeader: React.ReactNode = (\r\n

{this.state.selectedDropDown && this.state.selectedDropDown}\r\n \r\n

\r\n );\r\n const tabMobileHeaders: React.ReactNode = (\r\n
    {slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))}
\r\n );\r\n const tabViewProps = {\r\n ...this.props,\r\n TabContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-tab', className, this.state.isMobile ? ' mobile-dropdown-view' : '')\r\n },\r\n headerSection: { className: 'ms-tab-header-section' },\r\n headerMobileSection: { className: 'ms-tab-header' },\r\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\r\n heading: headingComponent,\r\n config: this.props && this.props.config,\r\n tabItemContainer: {\r\n tag: 'div' as NodeTag,\r\n className: 'ms-tab-content-section',\r\n },\r\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\r\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index)),\r\n isMobileView: this.state.isMobile,\r\n tabMobileHeaders: tabMobileHeaders,\r\n renderMobileHeader: renderMobileHeader\r\n };\r\n return this.props.renderView(tabViewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\r\n\r\n public componentDidUpdate(): void {\r\n const { data } = this.props;\r\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\r\n if (dataActionTabId) {\r\n if (this.props.id === dataActionTabId) {\r\n this.activeLink && this.activeLink.focus();\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _setState(): void {\r\n const { defaultTabIndex } = this.props.config;\r\n const { slots } = this.props;\r\n const slotLength = slots && slots.tabItems && slots.tabItems.length || 0;\r\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\r\n let queryTabIndex: number = 0;\r\n const firstTabItem = slots && slots.tabItems && slots.tabItems.length && slots.tabItems[defaultTabIndex! - 1];\r\n // @ts-ignore\r\n let selectedTabTitle: string = firstTabItem && (firstTabItem as TabItem).props.config.tabItemTitle || '';\r\n let selectedTabIndex: string = `${selectedTabTitle}0`;\r\n const requestContext = this._getRequestContext();\r\n const tabName = this._getTabNameFromRequestContextUrl(requestContext.url);\r\n const requestUrl: URL = new URL(requestContext && requestContext.url && requestContext.url.requestUrl && requestContext.url.requestUrl.toString());\r\n let pathName = requestUrl.pathname;\r\n const pathNameSplit = pathName.split('/');\r\n if (slots && slots.tabItems) {\r\n for (let i = 0; i < slots.tabItems.length; i++) {\r\n let tileWithoutSpecialCharacters = (slots.tabItems[i] as TabItem).props.config.tabItemTitle.replace('&','and');\r\n // @ts-ignore\r\n const tabTitle: string = this._getEncodedTabName(tileWithoutSpecialCharacters);\r\n if (tabName.toLocaleLowerCase() === tabTitle.toLocaleLowerCase()) {\r\n selectedTabTitle = tabTitle;\r\n selectedTabIndex = selectedTabTitle + i.toString();\r\n queryTabIndex = i;\r\n pathName = pathNameSplit.slice(0, pathNameSplit.length - 1).join('/');\r\n break;\r\n }\r\n }\r\n }\r\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex : initialIndex;\r\n this.viewport = this.props.context.request && this.props.context.request.device && this.props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n const selectedDdlName = slots && slots.tabItems && slots.tabItems.length && slots.tabItems[defaultTabIndex! - 1];\r\n // @ts-ignore\r\n const defaultSelectedTabTitle: string = selectedDdlName && (selectedDdlName as TabItem).props.config.tabItemTitle || '';\r\n this.setState({ currentTabIndex: initialIndex, pathName: pathName, selectedIndex: selectedTabIndex, selectedDropDown: defaultSelectedTabTitle, isMobile: this.isMobile, dropDownOpen: false });\r\n }\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n return 'xs';\r\n }\r\n\r\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\r\n const { data, config } = this.props;\r\n const activeContentIndex = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\r\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\r\n const selected = activeContentIndex !== undefined && dataActionTabId === this.props.id ? activeContentIndex === index : this.state.currentTabIndex === index;\r\n const contentID = getContentID(index, this.props.id);\r\n // @ts-ignore\r\n const tabTitle = (item as TabItem).props.config.tabItemTitle;\r\n const encodedTabTitle = this._getEncodedTabName(tabTitle);\r\n const requestContext: MsDyn365.IRequestContext = this._getRequestContext();\r\n const queryStringUrl = this._getRequestContextUrl(requestContext.url, true);\r\n let to = `${this.state.pathName}/${encodedTabTitle}${queryStringUrl}`.replace('//', '/');\r\n to = config.deepLink ? to : queryStringUrl;\r\n const selectedTabClassName = selected ? 'tab-selected' : '';\r\n return (\r\n { if (index === this.state.currentTabIndex) { this.activeLink = link; } }}\r\n aria-controls={contentID}\r\n aria-selected={selected}\r\n role='tab'\r\n >\r\n \r\n {React.cloneElement(item as React.ReactElement, { tabItemType: TabItemType.TabHeader, isSelected: index === this.state.currentTabIndex, itemIndex: index, tabId: this.props.id })}\r\n \r\n \r\n );\r\n }\r\n\r\n private _dropDownAction(event: React.MouseEvent): void {\r\n this.setState({ dropDownOpen: !this.state.dropDownOpen });\r\n }\r\n\r\n private _getEncodedTabName(tabName: string): string {\r\n /** @ts-ignore */\r\n return encodeURI(tabName.toLocaleLowerCase().replace(' ', '-').replace(' ', '-'));\r\n }\r\n private _getRequestContextUrl(requestContextUrl?: IRequestContextUrl, onlyQueryString?: boolean): string {\r\n const pageUrl = requestContextUrl && requestContextUrl.requestUrl && requestContextUrl.requestUrl.toString();\r\n if (onlyQueryString) {\r\n const requestContextQueryString = pageUrl && pageUrl.split('?');\r\n const requestContextQueryStringUrl = requestContextQueryString && requestContextQueryString.length > 1 && (requestContextQueryString[1] !== undefined) && requestContextQueryString[1] || '';\r\n return requestContextQueryStringUrl === '' ? requestContextQueryStringUrl : `?${requestContextQueryStringUrl}`;\r\n }\r\n return pageUrl || '';\r\n }\r\n private _getRequestContext(): MsDyn365.IRequestContext {\r\n const { context } = this.props;\r\n return context && context.actionContext && context.actionContext.requestContext;\r\n }\r\n\r\n private _getTabNameFromRequestContextUrl(url?: IRequestContextUrl): string {\r\n const pageUrl = this._getRequestContextUrl(url).split('?');\r\n const pagePath = pageUrl && pageUrl.length && pageUrl[0].split('/');\r\n return pagePath && pagePath.length && pagePath[pagePath.length - 1] || '';\r\n }\r\n\r\n private _getToUrl(item: TabItem, encodedTabTitle: string, requestContext: MsDyn365.IRequestContext): string {\r\n const queryStringUrl = this._getRequestContextUrl(requestContext.url, true);\r\n let to = `${this.state.pathName}/${encodedTabTitle}${queryStringUrl}`.replace('//', '/');\r\n to = this.props.config?.deepLink ? to : queryStringUrl;\r\n return to;\r\n }\r\n\r\n private _onClick = (item: TabItem, index: number, id: string) => (e: React.MouseEvent) => {\r\n const activeTabState = { activeContentIndex: index, tabId: id };\r\n const tabTitle = (item as TabItem).props.config.tabItemTitle.replace('&', 'and');\r\n const encodedTabTitle = this._getEncodedTabName(tabTitle);\r\n const requestContext: MsDyn365.IRequestContext = this._getRequestContext();\r\n const toUrl = this._getToUrl(item, encodedTabTitle, requestContext);\r\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\r\n requestContext && window.history.pushState({ path: toUrl }, '', toUrl);\r\n this.setState({ currentTabIndex: index, selectedDropDown: tabTitle, dropDownOpen: false });\r\n\r\n }\r\n\r\n private _getTabTitleByIndex = (index: number) => {\r\n const { slots } = this.props;\r\n const selTabItem = slots && slots.tabItems && slots.tabItems.length && slots.tabItems[index!];\r\n // @ts-ignore\r\n const selectedTabTitleByIndex = selTabItem && (selTabItem as TabItem).props.config.tabItemTitle || '';\r\n return { selTabItem, selectedTabTitleByIndex };\r\n }\r\n\r\n private _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\r\n if (e.keyCode === 13) {\r\n const activeTabState = { activeContentIndex: index, tabId: id };\r\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\r\n const seltab = this._getTabTitleByIndex(index);\r\n const encodedTabTitle = this._getEncodedTabName(seltab.selectedTabTitleByIndex);\r\n const requestContext: MsDyn365.IRequestContext = this._getRequestContext();\r\n // @ts-ignore\r\n const toUrl = this._getToUrl(seltab.selTabItem as TabItem, encodedTabTitle, requestContext);\r\n this.setState({ currentTabIndex: index, selectedDropDown: seltab.selectedTabTitleByIndex, dropDownOpen: false });\r\n requestContext && window.history.pushState({ path: toUrl }, '', toUrl);\r\n }\r\n }\r\n\r\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\r\n return (\r\n \r\n {React.cloneElement(item as React.ReactElement, { tabItemType: TabItemType.TabContent, isSelected: index === this.state.currentTabIndex, itemIndex: index, tabId: this.props.id })}\r\n \r\n );\r\n }\r\n\r\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\r\n let url;\r\n\r\n if (MsDyn365.msdyn365Commerce.isBrowser) {\r\n url = new URL(window.location.href);\r\n } else {\r\n url = new URL(requestContext.url.requestUrl.href);\r\n }\r\n const params = new window.URLSearchParams(url.search);\r\n params.set(paramName, paramValue);\r\n url.search = decodeURIComponent(params.toString());\r\n return url.toString();\r\n }\r\n}\r\n\r\nexport default Tab;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ITabViewProps } from './citta-tabs';\r\n\r\nconst tabView: React.FC = props => {\r\n const { heading, TabContainer, tabHeaders, tabContents,headerMobileSection, renderMobileHeader, isMobileView, tabMobileHeaders } = props;\r\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\r\n props.context.telemetry.error('Tab content is empty, module wont render');\r\n return null;\r\n }\r\n if (isMobileView) {\r\n return (\r\n \r\n \r\n \r\n {renderMobileHeader}\r\n {tabMobileHeaders}\r\n \r\n \r\n \r\n {tabContents}\r\n \r\n \r\n\r\n );\r\n } else {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n \r\n {tabHeaders}\r\n \r\n\r\n \r\n {tabContents}\r\n \r\n \r\n );\r\n }\r\n\r\n};\r\n\r\nexport default tabView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n"],"names":["Link","_ref","text","className","href","ariaLabel","index","noclick","telemetryContent","isActive","subLinks","handleHover","recordId","isHover","menuHover","payLoad","getPayloadObject","linkText","undefined","contentAction","etext","attribute","getTelemetryAttributes","React","onMouseEnter","onMouseLeave","Object","assign","onClick","onTelemetryClick","itemProp","content","length","SubLink","subLinkText","NavigationMenu","constructor","props","super","this","viewport","context","request","device","Type","state","isMobile","linkHoverRecId","subLinkHoverRecId","hasSubLinks","_handleHover","bind","static","locale","nameTranslations","nameTranslation","find","item","Language","toLowerCase","Text","componentDidMount","container","document","querySelector","middle","children","Math","floor","scrollTo","top","left","offsetLeft","offsetWidth","behavior","componentWillUnmount","window","removeEventListener","resizeThrottledEventHandler","render","urlTokens","links","pageType","currentCategoryId","Number","categoryHierarchyList","data","categories","result","Children","forEach","layerOneChild","RecordId","_getLinkData","layerTwoChild","layerThreeChild","isEmptyOrNullObject","telemetry","error","viewProps","_objectSpread","Navigation","moduleProps","classnames","config","tag","role","resources","menuAriaLabel","isMobileView","renderView","arguments","setState","category","activeCurrent","push","Name","Url","pageName","moduleName","childCategory","subLinkIsActive","childChildCategory","__decorate","observable","computed","Module","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","slots","isSelected","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","tabIndex","TabItemContent","id","tabHeader","tabSlots","tabItemTitle","observer","_renderTabItemContent","items","map","key","tabItemType","TabContent","Node","tabItemContent","TabHeader","Tab","tabIndexQuery","handleHeadingChange","event","heading","target","value","_onClick","e","tabTitle","replace","encodedTabTitle","_getEncodedTabName","requestContext","_getRequestContext","toUrl","_getToUrl","actionContext","update","createTabStateInput","history","pushState","path","currentTabIndex","selectedDropDown","dropDownOpen","_getTabTitleByIndex","selTabItem","tabItems","selectedTabTitleByIndex","_onKeyDown","keyCode","seltab","defaultTabIndex","slotLength","initialIndex","selectedDdlName","defaultSelectedTabTitle","pathName","selectedIndex","_getTabHeader","_getTabContent","_setGetParameter","activeLink","_getTabNameFromRequestContextUrl","_getRequestContextUrl","_setState","_updateViewport","_dropDownAction","addThrottledEvent","headingComponent","MsDyn365","editProps","onEdit","renderMobileHeader","tabMobileHeaders","tabViewProps","TabContainer","headerSection","headerMobileSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","dataActionTabId","focus","queryTabIndex","firstTabItem","selectedTabTitle","selectedTabIndex","tabName","url","URL","requestUrl","toString","pathname","pathNameSplit","split","i","tileWithoutSpecialCharacters","toLocaleLowerCase","slice","join","_getViewport","innerWidth","gridSettings","xs","w","sm","md","lg","selected","queryStringUrl","to","deepLink","selectedTabClassName","onKeyDown","ref","link","encodeURI","requestContextUrl","onlyQueryString","pageUrl","requestContextQueryString","requestContextQueryStringUrl","pagePath","_this$props$config","paramName","paramValue","isBrowser","location","params","URLSearchParams","search","set","decodeURIComponent","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","expandSiteOptions","KeyCodes","Escape","setTimeout","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","_document","_document2","addEventListener","body","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","currentTarget","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","viewports","q","h","xl","lazyload","siteOptions","_image$imageSettings","_item$siteRedirectUrl","image","siteImage","imageProps","imageSettings","siteRedirectUrl","destinationUrl","siteName","Image","src","altText","loadFailureBehavior","shouldSkipToMainImage","_renderSitePicker","_renderSiteOptionsList","options","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView"],"sourceRoot":""}