@next-bricks/ai-portal 0.31.0 → 0.31.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/2675.c45e7350.js","mappings":"8LAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,21CAA41C,KAEr4C,QAAeH,EAAwBI,U,iUCKvCC,EAAAA,EAAAA,gBAAeC,EAAAA,GAAIC,EAAAA,GAEnB,MAAM,cAAEC,GAAa,SAAEC,GAAUC,MAAK,UAAEC,KAAWC,EAAAA,EAAAA,oBAmB7CC,IAAuCC,EAAAA,EAAAA,YAC3CC,EAAAA,GAGIC,IAAiCF,EAAAA,EAAAA,YAAWG,EAAAA,GAElD,IAAAC,GAAA,IAAAC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAC,QAAAC,GAAA,IAAAlB,QAAAmB,GAAA,IAAAnB,QAAAoB,GAAA,IAAApB,QAAAqB,GAAA,IAAArB,QAAAsB,GAAA,IAAAtB,QAAAuB,GAAA,IAAAvB,QAAAwB,GAAA,IAAAxB,QAAAyB,GAAA,IAAAzB,QAAA0B,GAAA,IAAA1B,QAAA2B,GAAA,IAAA3B,QAIA,MAAA4B,WAI2BC,EAAAA,iBAA8CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAhB,KAAAiB,EAAAA,EAAAA,GAAA,KAAAlC,IAAAmC,EAAA,MAAAC,EAAA,SAIvEF,EAAAA,EAAAA,GAAA,KAAAhC,IAAAmC,EAAA,MAAAC,EAAA,SAAAJ,EAAAA,EAAAA,GAAA,KAAA/B,IAAAoC,EAAA,MAAAC,EAAA,SAAAN,EAAAA,EAAAA,GAAA,KAAA9B,IAAAqC,EAAA,MAAAC,EAAA,SAAAR,EAAAA,EAAAA,GAAA,KAAA7B,IAAAsC,EAAA,MAAAC,EAAA,SAaAV,EAAAA,EAAAA,GAAA,KAAA5B,IAAAuC,EAAA,MAAAC,EAAA,SAIAZ,EAAAA,EAAAA,GAAA,KAAA3B,IAAAwC,EAAA,MAAAC,EAAA,SAAAd,EAAAA,EAAAA,GAAA,KAAA1B,IAAAyC,EAAA,MAAAC,EAAA,SAAAhB,EAAAA,EAAAA,GAAA,KAAAzB,IAAA0C,EAAA,MAAAC,EAAA,SAAAlB,EAAAA,EAAAA,GAAA,KAAAxB,IAAA2C,EAAA,MAAAC,EAAA,SAAApB,EAAAA,EAAAA,GAAA,KAAAvB,IAAA4C,EAAA,MAAAC,EAAA,SAAAtB,EAAAA,EAAAA,GAAA,KAAAtB,IAAA6C,EAAA,MAAAC,EAAA,SAAAxB,EAAAA,EAAAA,GAAA,KAAArB,IAAA8C,EAAA,MAAAC,EAAA,SAAA1B,EAAAA,EAAAA,GAAA,KAAApB,IAAA+C,EAAA,MAAAC,EAAA,SAAA5B,EAAAA,EAAAA,GAAA,KAAAnB,IAAAgD,EAAA,MAAAC,EAAA,SAAA9B,EAAAA,EAAAA,GAAA,KAAAlB,IAAAiD,EAAA,MAAAC,EAAA,SAmCAhC,EAAAA,EAAAA,GAAA,KAAAf,IAAQgD,GAAA,MAAG,MACTC,EAAAA,EAAAA,GAAAnD,GAAAoD,KAAKC,GAAYC,MAAM,KACvBrC,EAAAA,EAAAA,GAAA,KAAAd,GAAAoD,GAAA,QAKFtC,EAAAA,EAAAA,GAAA,KAAAb,IAAYoD,GAAA,MAAG,MACbL,EAAAA,EAAAA,GAAAnD,GAAAoD,KAAKK,IAAgBH,MAAM,KAC3BrC,EAAAA,EAAAA,GAAA,KAAAZ,GAAAqD,GAAA,QAKFzC,EAAAA,EAAAA,GAAA,KAAAX,IAAiBqD,GAAA,MAAIC,KACnBT,EAAAA,EAAAA,GAAAnD,GAAAoD,KAAKS,IAAqBP,KAAKM,EAAO,KACtC3C,EAAAA,EAAAA,GAAA,KAAAV,GAAAuD,GAAA,QAKF7C,EAAAA,EAAAA,GAAA,KAAAT,IAAiBuD,GAAA,MAAIC,KACnBb,EAAAA,EAAAA,GAAAnD,GAAAoD,KAAKa,IAAqBX,KAAKU,EAAO,KACtC/C,EAAAA,EAAAA,GAAA,KAAAR,GAAAyD,GAAA,QAKFjD,EAAAA,EAAAA,GAAA,KAAAP,IAAeyD,GAAA,MAAG,MAChBhB,EAAAA,EAAAA,GAAAnD,GAAAoD,KAAKgB,IAAQd,KAAK,OAAO,KAG3BrC,EAAAA,EAAAA,GAAA,KAAAN,IAAO0D,EAAAA,EAAAA,aAA6B,mBAtF3BC,GAAc,OAAAC,EAAAA,EAAAA,GAAAxF,GAAA,wBAAduF,CAAcE,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,mBAIdE,GAAc,OAAAH,EAAAA,EAAAA,GAAAtF,GAAA,wBAAdyF,CAAcF,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,WAGdG,GAAM,OAAAJ,EAAAA,EAAAA,GAAArF,GAAA,gBAANyF,CAAMH,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,SAGNI,GAAI,OAAAL,EAAAA,EAAAA,GAAApF,GAAA,cAAJyF,CAAIJ,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,SAGJK,GAAI,OAAAN,EAAAA,EAAAA,GAAAnF,GAAA,cAAJyF,CAAIL,IAAAC,EAAAA,EAAAA,GAAArF,GAAA,KAAAoF,EAAA,WAIJM,GAAM,OAAAP,EAAAA,EAAAA,GAAAlF,GAAA,gBAANyF,CAAMN,IAAAC,EAAAA,EAAAA,GAAApF,GAAA,KAAAmF,EAAA,gBAQNO,GAAW,OAAAR,EAAAA,EAAAA,GAAAjF,GAAA,qBAAXyF,CAAWP,IAAAC,EAAAA,EAAAA,GAAAnF,GAAA,KAAAkF,EAAA,aAGXQ,GAAQ,OAAAT,EAAAA,EAAAA,GAAAhF,GAAA,kBAARyF,CAAQR,IAAAC,EAAAA,EAAAA,GAAAlF,GAAA,KAAAiF,EAAA,mBAGRS,GAAc,OAAAV,EAAAA,EAAAA,GAAA/E,GAAA,wBAAdyF,CAAcT,IAAAC,EAAAA,EAAAA,GAAAjF,GAAA,KAAAgF,EAAA,iBAGdU,GAAY,OAAAX,EAAAA,EAAAA,GAAA9E,GAAA,sBAAZyF,CAAYV,IAAAC,EAAAA,EAAAA,GAAAhF,GAAA,KAAA+E,EAAA,4BAGZW,GAAuB,OAAAZ,EAAAA,EAAAA,GAAA7E,GAAA,iCAAvByF,CAAuBX,IAAAC,EAAAA,EAAAA,GAAA/E,GAAA,KAAA8E,EAAA,uBAGvBY,GAAkB,OAAAb,EAAAA,EAAAA,GAAA5E,GAAA,4BAAlByF,CAAkBZ,IAAAC,EAAAA,EAAAA,GAAA9E,GAAA,KAAA6E,EAAA,iBAGlBa,GAAY,OAAAd,EAAAA,EAAAA,GAAA3E,GAAA,sBAAZyF,CAAYb,IAAAC,EAAAA,EAAAA,GAAA7E,GAAA,KAAA4E,EAAA,gBAGZc,GAAW,OAAAf,EAAAA,EAAAA,GAAA1E,GAAA,qBAAXyF,CAAWd,IAAAC,EAAAA,EAAAA,GAAA5E,GAAA,KAAA2E,EAAA,kBAGXe,GAAa,OAAAhB,EAAAA,EAAAA,GAAAzE,GAAA,uBAAbyF,CAAaf,IAAAC,EAAAA,EAAAA,GAAA3E,GAAA,KAAA0E,EAAA,CAwCtBgB,OAAAA,GAAU,IAAAC,EAAAC,EACS,QAAjBD,GAAAlB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAF,GAAS,QAATC,EAAjBD,EAAmBD,eAAO,IAAAE,GAA1BA,EAAAE,KAAAH,EACF,CAGAI,kBAAAA,GAAqB,IAAAC,EACF,QAAjBA,GAAAvB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAG,GAAjBA,EAAmBD,oBACrB,CAGAE,oBAAAA,GAAuB,IAAAC,EACJ,QAAjBA,GAAAzB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAK,GAAjBA,EAAmBD,sBACrB,CAGAE,kBAAAA,CAAmBjC,GAAgB,IAAAkC,EAChB,QAAjBA,GAAA3B,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAO,GAAjBA,EAAmBD,mBAAmBjC,EACxC,CAEAmC,MAAAA,GACE,MAAMC,EAAYhD,KAAKkB,eACnB1F,GACAH,GACJ,OACE4H,IAAAA,cAACD,EAAS,CACR9B,eAAgBlB,KAAKkB,eACrBI,eAAgBtB,KAAKsB,eACrBC,OAAQvB,KAAKuB,OACbE,KAAMzB,KAAKyB,KACXD,KAAMxB,KAAKwB,KACXE,OAAQ1B,KAAK0B,OACbC,YAAa3B,KAAK2B,YAClBC,SAAU5B,KAAK4B,SACfC,eAAgB7B,KAAK6B,eACrBC,aAAc9B,KAAK8B,aACnBC,wBAAyB/B,KAAK+B,wBAC9BE,aAAcjC,KAAKiC,aACnBD,mBAAoBhC,KAAKgC,mBACzBG,cAAenC,KAAKmC,cACpBe,SAAS/B,EAAAA,EAAAA,GAAKrE,GAALkD,MACTmD,aAAahC,EAAAA,EAAAA,GAAKnE,GAALgD,MACboD,kBAAkBjC,EAAAA,EAAAA,GAAKjE,GAAL8C,MAClBqD,gBAAgBlC,EAAAA,EAAAA,GAAK7D,GAAL0C,MAChBsD,kBAAkBnC,EAAAA,EAAAA,GAAK/D,GAAL4C,MAClBuD,KAAKpC,EAAAA,EAAAA,GAAK5D,GAALyC,OAGX,EACDwD,EAAAhG,KAAAiG,GAAA1F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAI,EAAAyD,EAAA5D,GAAAK,GAAAE,GAAAsD,GAAAvD,GAAAE,GAAAG,GAAAmD,GAAArD,GAAAG,GAAAG,GAAAgD,GAAAlD,GAAAG,GAAAE,GAAA8C,GAAA/C,GAAAjD,GAAAiG,GAAArI,GAAAsI,KAAAC,EAAAA,EAAAA,GAAAT,EAAA,CA/IAxI,GAAc,0BAA2B,CAExCkJ,eAAe,KACf,EAECjJ,KAAU,qBAIVA,GAAS,CAAEkJ,WAAW,EAAOpB,QAAQ,IAAQ,qBAG7C9H,KAAU,aAGVA,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,GAAS,CAAEkJ,WAAW,IAAQ,WAI9BlJ,GAAS,CAAEmJ,KAAMC,QAAStB,QAAQ,IAAQ,aAQ1C9H,GAAS,CAAEmJ,KAAME,OAAQvB,QAAQ,IAAQ,kBAGzC9H,GAAS,CAAEkJ,WAAW,IAAQ,eAG9BlJ,GAAS,CAAEmJ,KAAMC,UAAU,qBAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,mBAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,8BAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,yBAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,mBAG3BpJ,GAAS,CAAEmJ,KAAMC,QAAStB,QAAQ,IAAQ,kBAG1C9H,GAAS,CAAEmJ,KAAMC,UAAU,oBAG3BnJ,GAAM,CAAEkJ,KAAM,UAAU,eAAAG,IAAApD,EAAAA,EAAAA,GAAAxE,GAAA4H,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA1E,GAAA4H,EAAAnD,IAAA,CAOxBlG,GAAM,CAAEkJ,KAAM,cAAc,mBAAAG,IAAApD,EAAAA,EAAAA,GAAApE,GAAAwH,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAtE,GAAAwH,EAAAnD,IAAA,CAO5BlG,GAAM,CAAEkJ,KAAM,oBAAoB,wBAAAG,IAAApD,EAAAA,EAAAA,GAAAlE,GAAAsH,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAApE,GAAAsH,EAAAnD,IAAA,CAOlClG,GAAM,CAAEkJ,KAAM,qBAAqB,wBAAAG,IAAApD,EAAAA,EAAAA,GAAAhE,GAAAoH,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAlE,GAAAoH,EAAAnD,IAAA,CAOnClG,GAAM,CAAEkJ,KAAM,cAAc,WAAAG,IAAApD,EAAAA,EAAAA,GAAA9D,GAAAkH,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAhE,GAAAkH,EAAAnD,IAAA,CAS5BjG,KAAQ,cAKRA,KAAQ,yBAKRA,KAAQ,2BAKRA,KAAQ,4BAAAqJ,GAAAjH,GAAAkH,KAAAC,EAAAA,EAAAA,GAAAF,KAzGgB/G,EAAAA,mBAAgBuG,I,gBC7CpC,IAAKW,GAAC,SAADA,GAAC,OAADA,EAAC,6BAADA,EAAC,4BAADA,CAAC,MAKb,MAUa7J,GAAK,4BAELC,GAAU,CAAE6J,GAZN,CACjB,CAACD,GAAEE,eAAgB,eACnB,CAACF,GAAEG,cAAe,gBAUSC,GAPV,CACjB,CAACJ,GAAEE,eAAgB,SACnB,CAACF,GAAEG,cAAe,SAOPE,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,yDCLtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMoK,IAAcC,EAAAA,EAAAA,WAAyC,YAErDpK,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAiK,GAAA,IAAA1J,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAA0J,GAAA,IAAAzI,QAAA0I,GAAA,IAAA3J,QAiB9D,MAAA4J,WAGsB/H,EAAAA,iBAAyCC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA0H,KAAAzH,EAAAA,EAAAA,GAAA,KAAAlC,GAAA8J,GAAA,QAAA5H,EAAAA,EAAAA,GAAA,KAAAhC,IAAA6J,GAAA,MAAAC,GAAA,SAAA9H,EAAAA,EAAAA,GAAA,KAAA/B,IAAA8J,GAAA,MAAAC,GAAA,SAAAhI,EAAAA,EAAAA,GAAA,KAAA9B,IAAA+J,GAAA,MAAAC,GAAA,SAa7DlI,EAAAA,EAAAA,GAAA,KAAA0H,IAAoBS,GAAA,MAAIC,KACtBlG,EAAAA,EAAAA,GAAAuF,GAAAtF,KAAKkG,IAAehG,KAAK+F,EAAM,GAC/B,aAbOE,GAAQ,OAAAhF,EAAAA,EAAAA,GAAAxF,GAAA,kBAARwK,CAAQ/E,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,gBAGRgF,GAAW,OAAAjF,EAAAA,EAAAA,GAAAtF,GAAA,qBAAXuK,CAAWhF,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,cAGXiF,GAAS,OAAAlF,EAAAA,EAAAA,GAAArF,GAAA,mBAATuK,CAASjF,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,CASlB2B,MAAAA,GACE,OACEE,IAAAA,cAACqD,GAAgB,CACfH,SAAUnG,KAAKmG,SACfC,YAAapG,KAAKoG,YAClBC,UAAWrG,KAAKqG,UAChBE,UAAUpF,EAAAA,EAAAA,GAAKoE,GAALvF,OAGhB,EAQK,SAASsG,GAAgB/I,GAKN,IALO,SAC/B4I,EAAQ,YACRC,EAAW,UACXC,EAAS,SACTE,GACsBhJ,EACtB,MAAMiJ,GAAeC,EAAAA,EAAAA,QAAuB,MACtCC,GAAcD,EAAAA,EAAAA,QAA8B,OAC3CR,EAAOU,IAAYC,EAAAA,EAAAA,UAAS,IAC7BC,GAAWJ,EAAAA,EAAAA,QAAO,IAElBK,GAAeC,EAAAA,EAAAA,cAClBtD,IACKA,EAAEuD,cAAcf,QAClBM,SAAAA,EAAW9C,EAAEuD,cAAcf,OAC7B,GAEF,CAACM,IAGGU,GAAeF,EAAAA,EAAAA,cAClBtD,IACCoD,EAAStE,QAAUkB,EAAEyD,OAAOjB,MAC5BU,EAASlD,EAAEyD,OAAOjB,MAAM,GAE1B,IAGIkB,GAAoBJ,EAAAA,EAAAA,cAAY,KACpCR,SAAAA,EAAWM,EAAStE,QAAQ,GAC3B,CAACgE,IAeJ,OAbAa,EAAAA,EAAAA,YACE,KACMf,GACFgB,QAAQC,UAAUC,MAAK,KAAM,IAAAC,EACR,QAAnBA,EAAAd,EAAYnE,eAAO,IAAAiF,GAAnBA,EAAqBC,OAAO,GAEhC,GAIF,IAIAxE,IAAAA,cAAA,OAAKyE,UAAU,QACbzE,IAAAA,cAAA,OAAKyE,UAAU,YAAYnE,IAAKiD,GAC9BvD,IAAAA,cAAC0E,GAAAA,EAAkB,CACjBnB,aAAcA,EACdjD,IAAKmD,EACLT,MAAOA,EACP2B,QAAS,GAAK,GACdC,YAAa,GACbC,YAAU,EACV3B,SAAUA,EACVC,YAAaA,QAAAA,EAAepB,GAAEL,GAAEE,eAChCkD,WAAW,sBACXxB,SAAUO,EACVkB,SAAUf,IAEZhE,IAAAA,cAAA,UACEyE,UAAU,WACVvB,UAAWF,EACXgC,QAASd,GAETlE,IAAAA,cAACkC,GAAW,CAAC+C,IAAI,KAAKC,OAAO,MAAMC,KAAK,eAKlD,CA9ECC,GAAA7C,KAAA/B,GAAAgC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAoC,GAAAtC,IAAAjC,GAAAsB,GAAArB,MAAAC,EAAAA,EAAAA,GAAAoE,GAAA,CA9BArN,GAAc,qBAAsB,CACnCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEmJ,KAAMC,UAAU,eAG3BpJ,KAAU,kBAGVA,GAAS,CAAEmJ,KAAMC,UAAU,gBAG3BnJ,GAAM,CAAEkJ,KAAM,mBAAmB,kBAAAG,IAAApD,EAAAA,EAAAA,GAAApF,GAAAwI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAtF,GAAAwI,EAAAnD,KAAA,GAAAoD,GAAAe,GAAAd,KAAAC,EAAAA,EAAAA,GAAAF,KAVd/G,EAAAA,mBAAgBuG,K,0BClCtC,MAAQhJ,cAAaA,KAAKI,EAAAA,EAAAA,oBAE1B,IAAAqN,GAIA,MAAAC,WAG4BjL,EAAAA,iBAC1BsF,MAAAA,GACE,OAAOE,IAAAA,cAAC0F,GAAsB,KAChC,EAGK,SAASA,KACd,OAAO1F,IAAAA,cAAA,YACT,CAJC2F,GAAAF,IAAAD,GAAAzE,KAAAC,EAAAA,EAAAA,GAAA2E,GAAA,CAPA5N,GAAc,2BAA4B,CACzCuN,WAAY,CAACC,GAAAA,MACb,YAC0B/K,EAAAA,kBAAgBsG,EAAAC,K,kDCbrC,IAAKW,GAAC,SAADA,GAAC,OAADA,EAAC,cAADA,EAAC,sBAADA,EAAC,kCAADA,EAAC,oCAADA,CAAC,MAOb,MAca7J,GAAK,gCAELC,GAAU,CAAE6J,GAhBN,CACjB,CAACD,GAAEkE,OAAQ,QACX,CAAClE,GAAEmE,WAAY,YACf,CAACnE,GAAEoE,iBAAkB,kBACrB,CAACpE,GAAEqE,kBAAmB,oBAYKjE,GATV,CACjB,CAACJ,GAAEkE,OAAQ,KACX,CAAClE,GAAEmE,WAAY,KACf,CAACnE,GAAEoE,iBAAkB,OACrB,CAACpE,GAAEqE,kBAAmB,UAOXhE,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,iFCDtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMoK,IAAcC,EAAAA,EAAAA,WAAyC,WACvD6D,IAAc7D,EAAAA,EAAAA,WAA2B,WACzC8D,IAAqB9D,EAAAA,EAAAA,WAKzB,kBAAmB,CACnB+D,cAAe,eACfC,gBAAiB,oBAGXpO,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAiO,GAAA,IAAA1N,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAA0N,GAAA,IAAAzM,QAAA0M,GAAA,IAAA3N,QAAAI,GAAA,IAAAJ,QAAA4N,GAAA,IAAA5N,QAyB9D,MAAA6N,WAG0BhM,EAAAA,iBAA6CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA0L,KAAAzL,EAAAA,EAAAA,GAAA,KAAAlC,GAAA+N,GAAA,QAAA7L,EAAAA,EAAAA,GAAA,KAAAhC,IAAA8N,GAAA,MAAAC,GAAA,SAAA/L,EAAAA,EAAAA,GAAA,KAAA/B,IAAA+N,GAAA,MAAAC,GAAA,SAAAjM,EAAAA,EAAAA,GAAA,KAAA9B,IAAAgO,GAAA,MAAAC,GAAA,SAarEnM,EAAAA,EAAAA,GAAA,KAAA0L,IAAkBU,GAAA,MAAIzJ,KACpBT,EAAAA,EAAAA,GAAAuJ,GAAAtJ,KAAKkK,IAAahK,KAAKM,EAAO,KAC9B3C,EAAAA,EAAAA,GAAA,KAAA7B,GAAAmO,GAAA,QAKFtM,EAAAA,EAAAA,GAAA,KAAA2L,IAAeY,GAAA,MAAIC,KACjBtK,EAAAA,EAAAA,GAAAuJ,GAAAtJ,KAAKsK,IAAUpK,KAAK,CAAEmK,aAAY,GAClC,SApBOE,GAAI,OAAApJ,EAAAA,EAAAA,GAAAxF,GAAA,cAAJ4O,CAAInJ,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,YAGJoJ,GAAO,OAAArJ,EAAAA,EAAAA,GAAAtF,GAAA,iBAAP2O,CAAOpJ,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,cAGPiJ,GAAS,OAAAlJ,EAAAA,EAAAA,GAAArF,GAAA,mBAATuO,CAASjJ,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,CAgBlB2B,MAAAA,GACE,OACEE,IAAAA,cAACwH,GAAoB,CACnBC,KAAM1K,KACNuK,KAAMvK,KAAKuK,KACXC,QAASxK,KAAKwK,QACdH,UAAWrK,KAAKqK,UAChBlB,eAAehI,EAAAA,EAAAA,GAAKoI,GAALvJ,MACf2K,YAAYxJ,EAAAA,EAAAA,GAAKqI,GAALxJ,OAGlB,EAcK,SAASyK,GAAoBlN,GAON,IAPO,KACnCmN,EAAI,KACJH,EAAI,QACJC,EAAO,UACPH,EAAS,cACTlB,EAAa,WACbwB,GAC0BpN,EAC1B,MAAMqN,GAASC,EAAAA,EAAAA,UAAQ,KACrB,MAAMC,EAAW,IAAIC,IAQfC,EAAMC,OACNC,EAAaF,EAAIG,QAAQC,QAAQ,OACjCC,EAAYH,EAAWC,QAAQG,SAAS,EAAG,OAC3CC,EAAeL,EAAWC,QAAQG,SAAS,EAAG,QAC9CE,EAAgBN,EAAWC,QAAQG,SAAS,GAAI,QAGhDG,GACSP,EAAa,IADtBO,GAEQJ,EAAY,IAFpBI,GAGWF,EAAe,IAH1BE,GAIYD,EAAgB,IAJ5BC,GAFWT,EAAIG,QAAQC,QAAQ,QAOb,IAExB,IAAK,MAAMM,KAAQnB,QAAAA,EAAQ,GAAI,CAC7B,IAAIoB,EAEFA,EADED,EAAKE,WAAaH,EACTzG,GAAEL,GAAEkE,OACN6C,EAAKE,WAAaH,EAChBzG,GAAEL,GAAEmE,WACN4C,EAAKE,WAAaH,EAChBzG,GAAEL,GAAEoE,iBACN2C,EAAKE,WAAaH,EAChBzG,GAAEL,GAAEqE,kBACN0C,EAAKE,WAAaH,EAChBR,KAAwB,IAAjBS,EAAKE,WAAkBC,OAAO,QAErCZ,KAAwB,IAAjBS,EAAKE,WAAkBC,OAAO,QAElD,IAAIC,EAAQhB,EAASiB,IAAIJ,GACpBG,GACHhB,EAASkB,IAAIL,EAAWG,EAAQ,CAAEG,MAAON,EAAUO,MAAO,KAE5DJ,EAAMI,MAAMzR,KAAKiR,EACnB,CAEA,MAAO,IAAIZ,EAASqB,SAAS,GAC5B,CAAC5B,KAEG6B,EAAgBC,IAAqBzF,EAAAA,EAAAA,UAAwB,MAE9D0F,GAAU7F,EAAAA,EAAAA,QAA8B,MAuB9C,OArBAW,EAAAA,EAAAA,YAAU,KACR,MAAMmF,EAAOD,EAAQ/J,QACrB,IAAKgK,IAASlC,EACZ,OAEF,MAAMmC,EAAW,IAAIC,sBAClBC,IACC,IAAK,MAAMC,KAASD,EACdC,EAAMC,gBACRjC,EAAWN,EAEf,GAEF,CAAEK,SAGJ,OADA8B,EAASK,QAAQN,GACV,KACLC,EAASM,YAAY,CACtB,GACA,CAACzC,EAAWM,EAAYD,IAEtBH,EAcHtH,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,UACG2H,EAAOmC,KAAKjB,GACX7I,IAAAA,cAAA,MAAI+J,IAAKlB,EAAMG,MAAOvE,UAAU,SAC9BzE,IAAAA,cAAA,OAAKyE,UAAU,eAAeoE,EAAMG,OACpChJ,IAAAA,cAAA,MAAIyE,UAAU,SACXoE,EAAMI,MAAMa,KAAKrB,GAChBzI,IAAAA,cAAA,MAAI+J,IAAKtB,EAAK/Q,IACZsI,IAAAA,cAACgG,GAAW,CACVvB,UAAWuF,KAAW,OAAQ,CAC5BC,OAAQd,IAAmBV,EAAK/Q,KAElCwS,IAAKzB,EAAKyB,KAEVlK,IAAAA,cAAA,OAAKyE,UAAU,aAAauE,MAAOP,EAAKO,OACrCP,EAAKO,OAERhJ,IAAAA,cAACiG,GAAkB,CACjBxB,UAAU,UACV8C,QAASA,EACTrB,cAAgB1F,IACd0F,EAAc,CAAEiE,OAAQ3J,EAAEjD,OAAQkL,QAAO,EAE3CtC,gBAAkB3F,IAChB4I,EAAkB5I,EAAEjD,OAASkL,EAAK/Q,GAAK,KAAK,KAG9C0S,GAAAA,GAAYC,SAAS5B,EAAK6B,QAC1BtK,IAAAA,cAAA,OAAKyE,UAAU,qBAS9B2C,GACCpH,IAAAA,cAAA,OAAKyE,UAAU,YAAYnE,IAAK+I,GAC9BrJ,IAAAA,cAACkC,GAAW,CAAC+C,IAAI,OAAOE,KAAK,qBAAqBoF,UAAQ,MAnD9DvK,IAAAA,cAAA,OAAKyE,UAAU,WACbzE,IAAAA,cAACkC,GAAW,CACV+C,IAAI,OACJuF,MAAM,WACNrF,KAAK,qBACLoF,UAAQ,IAmDlB,CAxJCE,GAAAjE,KAAAhG,GAAAiG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAAyD,GAAA1D,GAAAE,GAAAG,GAAAsD,GAAAxD,IAAArG,GAAAsF,GAAArF,MAAAC,EAAAA,EAAAA,GAAAyJ,GAAA,CAvCA1S,GAAc,yBAA0B,CACvCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,GAAS,CAAEkJ,WAAW,IAAQ,cAG9BlJ,KAAU,gBAGVC,GAAM,CAAEkJ,KAAM,iBAAiB,gBAAAG,IAAApD,EAAAA,EAAAA,GAAApF,GAAAwI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAtF,GAAAwI,EAAAnD,IAAA,CAO/BlG,GAAM,CAAEkJ,KAAM,cAAc,aAAAG,IAAApD,EAAAA,EAAAA,GAAAnF,GAAAuI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAArF,GAAAuI,EAAAnD,KAAA,GAAAoD,GAAAgF,GAAA/E,KAAAC,EAAAA,EAAAA,GAAAF,KAjBL/G,EAAAA,mBAAgBuG,K,+FC1D1C,MAAM6J,IAAuBzI,EAAAA,EAAAA,WAC3B,uBAGMpK,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAA0S,GAAA,IAAAnS,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAgBvD,MAAAmS,WAIUtQ,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAAqS,GAAA,QAAAnQ,EAAAA,EAAAA,GAAA,KAAAhC,IAAAoS,GAAA,MAAAC,GAAA,SAOErQ,EAAAA,EAAAA,GAAA,KAAA/B,IAAAqS,GAAA,MAAAC,GAAA,SAMAvQ,EAAAA,EAAAA,GAAA,KAAA9B,IAAAsS,GAAA,MAAAC,GAAA,SAAAzQ,EAAAA,EAAAA,GAAA,KAAA7B,IAAAuS,GAAA,MAAAC,GAAA,SASA3Q,EAAAA,EAAAA,GAAA,KAAA5B,IAAAwS,GAAA,MAAAC,GAAA,SAOA7Q,EAAAA,EAAAA,GAAA,KAAA3B,IAAAyS,GAAA,MAAAC,GAAA,SAOA/Q,EAAAA,EAAAA,GAAA,KAAA1B,IAAA0S,GAAA,MAAAC,GAAA,SAMAjR,EAAAA,EAAAA,GAAA,KAAAzB,IAAA2S,GAAA,MAAAC,GAAA,SAAAnR,EAAAA,EAAAA,GAAA,KAAAxB,IAAA4S,GAAA,MAAAC,GAAA,QAAAC,GAAA,eAxCSC,GAAK,OAAAjO,EAAAA,EAAAA,GAAAxF,GAAA,eAALyT,CAAKhO,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,UAGL6E,GAAK,OAAA9E,EAAAA,EAAAA,GAAAtF,GAAA,eAALoK,CAAK7E,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,SAMLiO,GAAI,OAAAlO,EAAAA,EAAAA,GAAArF,GAAA,cAAJuT,CAAIjO,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,cAMJkO,GAAS,OAAAnO,EAAAA,EAAAA,GAAApF,GAAA,mBAATuT,CAASlO,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,aAGTmO,GAAQ,OAAApO,EAAAA,EAAAA,GAAAnF,GAAA,kBAARuT,CAAQnO,IAAAC,EAAAA,EAAAA,GAAArF,GAAA,KAAAoF,EAAA,QAORoO,GAAG,OAAArO,EAAAA,EAAAA,GAAAlF,GAAA,aAAHuT,CAAGpO,IAAAC,EAAAA,EAAAA,GAAApF,GAAA,KAAAmF,EAAA,QAOHqO,GAAG,OAAAtO,EAAAA,EAAAA,GAAAjF,GAAA,aAAHuT,CAAGrO,IAAAC,EAAAA,EAAAA,GAAAnF,GAAA,KAAAkF,EAAA,WAMHsO,GAAM,OAAAvO,EAAAA,EAAAA,GAAAhF,GAAA,gBAANuT,CAAMtO,IAAAC,EAAAA,EAAAA,GAAAlF,GAAA,KAAAiF,EAAA,WAMNuO,GAAM,OAAAxO,EAAAA,EAAAA,GAAA/E,GAAA,gBAANuT,CAAMvO,IAAAC,EAAAA,EAAAA,GAAAjF,GAAA,KAAAgF,EAAA,SAGNwO,GAAI,OAAAzO,EAAAA,EAAAA,GAAA9E,GAAA,cAAJuT,CAAIxO,IAAAC,EAAAA,EAAAA,GAAAhF,GAAA,KAAA+E,EAAA,CAEb2B,MAAAA,GACE,OACEE,IAAAA,cAAC4M,GAA0B,CACzBT,MAAOpP,KAAKoP,MACZnJ,MAAOjG,KAAKiG,MACZoJ,KAAMrP,KAAKqP,KACXC,UAAWtP,KAAKsP,UAChBC,SAAUvP,KAAKuP,SACfC,IAAKxP,KAAKwP,IACVC,IAAKzP,KAAKyP,IACVC,OAAQ1P,KAAK0P,OACbC,OAAQ3P,KAAK2P,OACbC,KAAM5P,KAAK4P,MAGjB,EAGF,SAASC,GAA0BtS,GAKR,IALS,MAClC6R,EAAK,MACLnJ,EAAK,KACLoJ,KACGS,GACoBvS,EACvB,MAAa,UAAT8R,EAEApM,IAAAA,cAAA,OAAKyE,UAAU,aACbzE,IAAAA,cAAA,OAAKyE,UAAU,kBACbzE,IAAAA,cAAA,OAAKyE,UAAU,SAAS0H,GACxBnM,IAAAA,cAAA,OAAKyE,UAAU,QAAQzB,IAEzBhD,IAAAA,cAAA,OAAKyE,UAAU,SACbzE,IAAAA,cAAC4K,IAAoBkC,EAAAA,GAAAA,GAAA,GACfD,EAAU,CACdE,UAAW,IACXC,MAAM,OACNC,OAAO,UAOfjN,IAAAA,cAAA,OAAKyE,UAAU,aACbzE,IAAAA,cAAA,OAAKyE,UAAU,SAAS0H,GACxBnM,IAAAA,cAAA,OAAKyE,UAAU,kBACbzE,IAAAA,cAAA,OAAKyE,UAAU,SACbzE,IAAAA,cAAC4K,IAAoBkC,EAAAA,GAAAA,GAAA,GACfD,EAAU,CACdE,UAAW,EACXC,MAAM,OACNC,OAAO,SAGXjN,IAAAA,cAAA,OAAKyE,UAAU,QAAQzB,IAI/B,CA1CCkK,GAAApC,KAAAtK,GAAAuK,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IAAApL,GAAA+J,GAAA9J,MAAAC,EAAAA,EAAAA,GAAAkM,GAAA,CAzEAnV,GAAc,iCAAkC,CAC/CuN,WAAY,CAACC,GAAAA,MACb,EAKCvN,KAAU,YAGVA,KAAU,YAMVA,KAAU,WAMVA,KAAU,gBAGVA,GAAS,CAAEmJ,KAAMC,UAAU,eAO3BpJ,GAAS,CAAEmJ,KAAME,SAAS,UAO1BrJ,GAAS,CAAEmJ,KAAME,SAAS,UAM1BrJ,KAAU,aAMVA,KAAU,aAGVA,GAAS,CAAEkJ,WAAW,IAAQ,oBAlDvB1G,EAAAA,mBAAgBuG,K,sCC3B1B,MAAQhJ,cAAaA,KAAKI,EAAAA,EAAAA,oBAE1B,IAAAgV,GAIA,MAAAC,WAGwB5S,EAAAA,iBACtBsF,MAAAA,GACE,OAAOE,IAAAA,cAACqN,GAAkB,KAC5B,EAGF,SAASA,KACP,OAAOrN,IAAAA,cAAA,OAAKsN,IAAKC,GAAWC,IAAI,QAAQR,MAAO,GAAIC,OAAQ,IAC7D,CAJCQ,GAAAL,IAAAD,GAAApM,KAAAC,EAAAA,EAAAA,GAAAyM,GAAA,CAPA1V,GAAc,uBAAwB,CACrCuN,WAAY,CAACC,GAAAA,MACb,YACsB/K,EAAAA,kBAAgBsG,EAAAC,K,8NCyBxCnJ,EAAAA,EAAAA,gBAAeC,GAAAA,GAAIC,GAAAA,GAEnB,MAAM4V,GAAiC,CACrCzI,IAAK,UACLE,KAAM,YAGApN,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBA0B7CwV,IAAwBtV,EAAAA,EAAAA,YAAWuV,IAA6B,IAAAC,GAAA,IAAAnV,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAmV,GAAA,IAAAlU,QAAAmU,GAAA,IAAApV,QAAAe,GAAA,IAAAf,QAAA2N,GAAA,IAAA3N,QAAAqV,GAAA,IAAArV,QAAAmB,GAAA,IAAAnB,QAAAsV,GAAA,IAAAtV,QAAAqB,GAAA,IAAArB,QAAAuV,GAAA,IAAAvV,QAAA2B,GAAA,IAAA3B,QAUtE,MAAAwV,WAG2B3T,EAAAA,iBAA8CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAmT,KACvElT,EAAAA,EAAAA,GAAA,KAAAlC,IAAAmC,GAAA,MAAAuT,GAAA,MAEkB,MAAIxT,EAAAA,EAAAA,GAAA,KAAAhC,IAAAyV,GAAA,MAAAC,GAAA,SAAA1T,EAAAA,EAAAA,GAAA,KAAA/B,IAAA0V,GAAA,MAAAC,GAAA,SAAA5T,EAAAA,EAAAA,GAAA,KAAA9B,IAAA2V,GAAA,MAAAC,GAAA,SAAA9T,EAAAA,EAAAA,GAAA,KAAA7B,IAAA4V,GAAA,MAAAC,GAAA,SAAAhU,EAAAA,EAAAA,GAAA,KAAA5B,IAAA6V,GAAA,MAAAC,GAAA,SAAAlU,EAAAA,EAAAA,GAAA,KAAA3B,IAAA8V,GAAA,MAAAC,GAAA,SAAApU,EAAAA,EAAAA,GAAA,KAAA1B,IAAA+V,GAAA,MAAAC,GAAA,SAAAtU,EAAAA,EAAAA,GAAA,KAAAzB,IAAAgW,GAAA,MAAAC,GAAA,SAAAxU,EAAAA,EAAAA,GAAA,KAAAxB,IAAAiW,GAAA,MAAAC,GAAA,SAAA1U,EAAAA,EAAAA,GAAA,KAAAvB,IAAAkW,GAAA,MAAAC,GAAA,SAAA5U,EAAAA,EAAAA,GAAA,KAAAtB,IAAAmW,GAAA,MAAAC,GAAA,SAAA9U,EAAAA,EAAAA,GAAA,KAAArB,IAAAoW,GAAA,MAAAC,GAAA,SAAAhV,EAAAA,EAAAA,GAAA,KAAApB,IAAAqW,GAAA,MAAAC,GAAA,SAAAlV,EAAAA,EAAAA,GAAA,KAAAnB,IAAAsW,GAAA,MAAAC,GAAA,SA4CtBpV,EAAAA,EAAAA,GAAA,KAAAmT,IAAakC,GAAA,MAAG,MACdnT,EAAAA,EAAAA,GAAAgR,GAAA/Q,KAAKmT,IAAQjT,MAAM,KACnBrC,EAAAA,EAAAA,GAAA,KAAAlB,GAAAqN,GAAA,QAOFnM,EAAAA,EAAAA,GAAA,KAAA0L,IAAkBU,GAAA,MAAIzJ,KACpBT,EAAAA,EAAAA,GAAAgR,GAAA/Q,KAAKkK,IAAahK,KAAKM,EAAO,KAGhC3C,EAAAA,EAAAA,GAAA,KAAAoT,IAA4BzQ,KAC1BT,EAAAA,EAAAA,GAAAgR,GAAA/Q,KAAKkK,IAAahK,KAAKM,EAAO,KAC9B3C,EAAAA,EAAAA,GAAA,KAAAd,GAAAqW,GAAA,QAKFvV,EAAAA,EAAAA,GAAA,KAAAqT,IAAyBmC,GAAA,MAAI7S,KAC3BT,EAAAA,EAAAA,GAAAgR,GAAA/Q,KAAKsT,IAAoBpT,KAAKM,EAAO,KACrC3C,EAAAA,EAAAA,GAAA,KAAAZ,GAAAsW,GAAA,QAKF1V,EAAAA,EAAAA,GAAA,KAAAsT,IAAiBqC,GAAA,MAAG,MAClBzT,EAAAA,EAAAA,GAAAgR,GAAA/Q,KAAKyT,IAAYvT,MAAM,KAGzBrC,EAAAA,EAAAA,GAAA,KAAAN,IAAO0D,EAAAA,EAAAA,aAA6B,WA3E3ByS,GAAM,OAAAvS,EAAAA,EAAAA,GAAAxF,GAAA,gBAAN+X,CAAMtS,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,aAGNuS,GAAQ,OAAAxS,EAAAA,EAAAA,GAAAtF,GAAA,kBAAR8X,CAAQvS,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,mBAGRwS,GAAc,OAAAzS,EAAAA,EAAAA,GAAArF,GAAA,wBAAd8X,CAAcxS,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,aAGdyS,GAAQ,OAAA1S,EAAAA,EAAAA,GAAApF,GAAA,kBAAR8X,CAAQzS,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,YAGR0S,GAAO,OAAA3S,EAAAA,EAAAA,GAAAnF,GAAA,iBAAP8X,CAAO1S,IAAAC,EAAAA,EAAAA,GAAArF,GAAA,KAAAoF,EAAA,eAGP2S,GAAU,OAAA5S,EAAAA,EAAAA,GAAAlF,GAAA,oBAAV8X,CAAU3S,IAAAC,EAAAA,EAAAA,GAAApF,GAAA,KAAAmF,EAAA,6BAGV4S,GAAwB,OAAA7S,EAAAA,EAAAA,GAAAjF,GAAA,kCAAxB8X,CAAwB5S,IAAAC,EAAAA,EAAAA,GAAAnF,GAAA,KAAAkF,EAAA,oBAGxB6S,GAAe,OAAA9S,EAAAA,EAAAA,GAAAhF,GAAA,yBAAf8X,CAAe7S,IAAAC,EAAAA,EAAAA,GAAAlF,GAAA,KAAAiF,EAAA,uBAGf8S,GAAkB,OAAA/S,EAAAA,EAAAA,GAAA/E,GAAA,4BAAlB8X,CAAkB9S,IAAAC,EAAAA,EAAAA,GAAAjF,GAAA,KAAAgF,EAAA,mBAGlB+S,GAAc,OAAAhT,EAAAA,EAAAA,GAAA9E,GAAA,wBAAd8X,CAAc/S,IAAAC,EAAAA,EAAAA,GAAAhF,GAAA,KAAA+E,EAAA,oBAGdgT,GAAe,OAAAjT,EAAAA,EAAAA,GAAA7E,GAAA,yBAAf8X,CAAehT,IAAAC,EAAAA,EAAAA,GAAA/E,GAAA,KAAA8E,EAAA,uBAGfiT,GAAkB,OAAAlT,EAAAA,EAAAA,GAAA5E,GAAA,4BAAlB8X,CAAkBjT,IAAAC,EAAAA,EAAAA,GAAA9E,GAAA,KAAA6E,EAAA,mBAGlBkT,GAAc,OAAAnT,EAAAA,EAAAA,GAAA3E,GAAA,wBAAd8X,CAAclT,IAAAC,EAAAA,EAAAA,GAAA7E,GAAA,KAAA4E,EAAA,UAGdmT,GAAK,OAAApT,EAAAA,EAAAA,GAAA1E,GAAA,eAAL8X,CAAKnT,IAAAC,EAAAA,EAAAA,GAAA5E,GAAA,KAAA2E,EAAA,CA0CdoT,WAAAA,CAAYC,GAEVC,YAAW,KAAM,IAAArS,EACE,QAAjBA,GAAAlB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAF,GAAjBA,EAAmBsS,MAAM,GACxBF,EACL,CAGAG,KAAAA,GAAQ,IAAAtS,EACW,QAAjBA,GAAAnB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAD,GAAjBA,EAAmBsS,OACrB,CAGAC,aAAAA,CAAcC,GAAmB,IAAApS,EAAAE,EACd,QAAjBF,GAAAvB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAG,GAAe,QAAfE,EAAjBF,EAAmBmS,qBAAa,IAAAjS,GAAhCA,EAAAJ,KAAAE,EAAmCoS,EACrC,CAGAC,UAAAA,CAAWC,GAAkB,IAAAlS,EAAAmS,EACV,QAAjBnS,GAAA3B,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAO,GAAY,QAAZmS,EAAjBnS,EAAmBiS,kBAAU,IAAAE,GAA7BA,EAAAzS,KAAAM,EAAgCkS,EAClC,CAGAE,gBAAAA,CAAiBhU,GAAwB,IAAAiU,EAAAC,EACtB,QAAjBD,GAAAhU,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAA4S,GAAkB,QAAlBC,EAAjBD,EAAmBD,wBAAgB,IAAAE,GAAnCA,EAAA5S,KAAA2S,EAAsCjU,EACxC,CAEA6B,MAAAA,GACE,OACEE,IAAAA,cAAC2N,GAAqB,CACpBrN,KAAKpC,EAAAA,EAAAA,GAAK5D,GAALyC,MACL0T,OAAQ1T,KAAK0T,OACbC,SAAU3T,KAAK2T,SACfC,eAAgB5T,KAAK4T,eACrBC,SAAU7T,KAAK6T,SACfC,QAAS9T,KAAK8T,QACdC,WAAY/T,KAAK+T,WACjBC,yBAA0BhU,KAAKgU,yBAC/BC,gBAAiBjU,KAAKiU,gBACtBC,mBAAoBlU,KAAKkU,mBACzBC,eAAgBnU,KAAKmU,eACrBC,gBAAiBpU,KAAKoU,gBACtBC,mBAAoBrU,KAAKqU,mBACzBC,eAAgBtU,KAAKsU,eACrBC,MAAOvU,KAAKuU,MACZc,UAAUlU,EAAAA,EAAAA,GAAK6P,GAALhR,MACVsV,qBAAqBnU,EAAAA,EAAAA,GAAK8P,GAALjR,MACrBmJ,eAAehI,EAAAA,EAAAA,GAAKoI,GAALvJ,MACfuV,sBAAsBpU,EAAAA,EAAAA,GAAK+P,GAALlR,MACtBwV,cAAcrU,EAAAA,EAAAA,GAAKgQ,GAALnR,OAGpB,EAWF,SAAS6Q,GAA2B4E,EAsBlClS,GACA,IAtBA,OACEmQ,EAAM,SACNC,EAAQ,eACRC,EAAc,SACdC,EAAQ,QACRC,EAAO,WACPC,EAAU,yBACVC,EAAwB,gBACxBC,EAAe,mBACfC,EAAkB,eAClBC,EAAc,gBACdC,EAAe,mBACfC,EAAkB,eAClBC,EAAc,MACdC,EAAK,SACLc,EAAQ,cACRlM,EAAa,oBACbmM,EAAmB,qBACnBC,EAAoB,aACpBC,GAC2BC,EAG7B,MAAOC,EAAWC,IAAgB/O,EAAAA,EAAAA,UAAsB,WAAbiN,GACrC+B,GAAiB7O,EAAAA,EAAAA,cAAY,KACjC4O,GAAa,EAAK,GACjB,IACGE,GAAe9O,EAAAA,EAAAA,cAAY,KAC/B4O,GAAa,EAAM,GAClB,KAEHvO,EAAAA,EAAAA,YAAU,KACS,WAAbyM,GACF8B,GAAa,EACf,GACC,CAAC9B,IAEJ,MAAMiC,GAAkB/O,EAAAA,EAAAA,cAAY,KAClC4O,GAAa,EAAK,GACjB,IAEGI,GAAqBhP,EAAAA,EAAAA,cAAY,KACpB,WAAb8M,GACF8B,GAAa,EACf,GACC,CAAC9B,IAEEmC,GAAkBnL,EAAAA,EAAAA,UACtB,IAAM,CACJ,CACEmC,IAAK,SACL5E,KAAM,CACJF,IAAK,KACLC,OAAQ,MACRC,KAAM,4BAER6N,MAAMjR,EAAAA,GAAAA,GAAEL,GAAAA,EAAEuR,SAEZ,CACElJ,IAAK,kBACL5E,KAAM,CACJF,IAAK,UACLE,KAAM,YAER6N,MAAMjR,EAAAA,GAAAA,GAAEL,GAAAA,EAAEwR,oBAGd,IAGIC,GAAa3P,EAAAA,EAAAA,QAAuB,MAwB1C,OAtBA4P,EAAAA,EAAAA,qBACE9S,GACA,KAAM,CACJqR,MAAOA,KACLe,GAAa,EAAK,EAEpBhB,KAAMA,KAAM,IAAA2B,EACQ,QAAlBA,EAAAF,EAAW7T,eAAO,IAAA+T,GAAlBA,EAAoB3B,MAAM,EAE5BE,cAAgBC,IAAsB,IAAAyB,EAAAC,EAClB,QAAlBD,EAAAH,EAAW7T,eAAO,IAAAgU,GAAe,QAAfC,EAAlBD,EAAoB1B,qBAAa,IAAA2B,GAAjCA,EAAAhU,KAAA+T,EAAoCzB,EAAU,EAEhDC,WAAaC,IAAqB,IAAAyB,EAAAC,EACd,QAAlBD,EAAAL,EAAW7T,eAAO,IAAAkU,GAAY,QAAZC,EAAlBD,EAAoB1B,kBAAU,IAAA2B,GAA9BA,EAAAlU,KAAAiU,EAAiCzB,EAAQ,EAE3CE,iBAAmBhU,IAA2B,IAAAyV,EAAAC,EAC1B,QAAlBD,EAAAP,EAAW7T,eAAO,IAAAoU,GAAkB,QAAlBC,EAAlBD,EAAoBzB,wBAAgB,IAAA0B,GAApCA,EAAApU,KAAAmU,EAAuCzV,EAAe,KAG1D,IAIA+B,IAAAA,cAAA,OAAKyE,UAAWuF,KAAW,YAAa,CAAEyI,eAC1B,WAAb7B,IAA0B6B,GACzBzS,IAAAA,cAAA,OAAKyE,UAAU,OAAOO,QAAS6N,IAEjC7S,IAAAA,cAAA,OAAKyE,UAAU,eACbzE,IAAAA,cAAC4T,GAAAA,GAAiB,CAChBzO,KAAMuI,GACNmG,QAAQ,QACR7O,QAAS4N,IAEV7B,GACC/Q,IAAAA,cAACgG,GAAAA,GAAW,CAACvB,UAAU,WAAWyF,IAAK4G,GACrC9Q,IAAAA,cAACkC,GAAAA,GAAW,CACVuC,UAAU,gBACVQ,IAAI,UACJE,KAAK,cAENpD,EAAAA,GAAAA,GAAEL,GAAAA,EAAEoS,YAIX9T,IAAAA,cAAA,OAAKyE,UAAU,WACbzE,IAAAA,cAAA,OAAKyE,UAAU,YACbzE,IAAAA,cAACgG,GAAAA,GAAW,CAACkE,IAAK2G,EAASpM,UAAU,aACnCzE,IAAAA,cAAA,OACEyE,UAAU,OACV+I,IAAI,QACJF,IAAKF,GACLJ,MAAO,GACPC,OAAQ,MAGZjN,IAAAA,cAAC4T,GAAAA,GAAiB,CAChBzO,KAAMuI,GACNmG,QAAQ,QACR7O,QAAS2N,KAGb3S,IAAAA,cAACgG,GAAAA,GAAW,CAACvB,UAAU,WAAWyF,IAAK4G,GACrC9Q,IAAAA,cAACkC,GAAAA,GAAW,CACVuC,UAAU,gBACVQ,IAAI,UACJE,KAAK,cAENpD,EAAAA,GAAAA,GAAEL,GAAAA,EAAEoS,WAENxC,SAAAA,EAAOyC,OACN/T,IAAAA,cAAA,OAAKyE,UAAU,SACZ6M,EAAMxH,KAAI,CAACkK,EAAMC,IAChBjU,IAAAA,cAACgG,GAAAA,GAAW,CAACvB,UAAU,OAAOsF,IAAKkK,EAAO/J,IAAK8J,EAAK9J,KAClDlK,IAAAA,cAACkC,GAAAA,IAAW4K,EAAAA,GAAAA,GAAA,CAACrI,UAAU,QAAWuP,EAAK7O,OACvCnF,IAAAA,cAAA,QAAMyE,UAAU,SAASuP,EAAKhL,WAIlC,KACHyH,EACCzQ,IAAAA,cAACkU,GAAAA,EAAiB,CAChB5T,IAAK6S,EACLgB,SAAUnD,EACVoD,YAAanD,EACb1J,QAAS2J,EACThL,cAAemM,EACfgC,eAAgBvB,IAGlB9S,IAAAA,cAACwG,GAAAA,EAAW,CACVlG,IAAK6S,EACLzC,SAAUA,EACVM,gBAAiBA,EACjBC,mBAAoBA,EACpBC,eAAgBA,EAChBC,gBAAiBA,EACjBC,mBAAoBA,EACpBC,eAAgBA,EAChBnL,cAAeA,EACfmO,eAAgBvB,EAChBR,qBAAsBA,EACtBC,aAAcA,IAGlBvS,IAAAA,cAAA,OAAKyE,UAAU,UACbzE,IAAAA,cAACsU,GAAAA,GAAsB,CACrB7P,UAAU,WACV8C,QAASwL,EACT7M,cAAeqO,UACQ,WAAjB/T,EAAEjD,OAAOwM,IACXqI,WAEMpQ,EAAAA,KAAKwS,eACTxS,EAAAA,KAAKyS,UAA4C,OAAhCzS,EAAAA,KAAKyS,SAASC,MAAM,KAAK,GACtC,KACA,OAENC,EAAAA,GAAAA,cAAaC,SACf,GAGF5U,IAAAA,cAAA,UAAQyE,UAAU,WAChBzE,IAAAA,cAAC6U,GAAAA,GAAoB,CACnBC,iBAAkBnE,EAClBoE,UAAQ,EACR3I,KAAK,WAQrB,CAxNC4I,GAAA7G,KAAA3N,GAAA4N,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAA+E,GAAAhF,GAAAlJ,GAAAE,GAAAyD,GAAA1D,GAAAmJ,GAAAE,GAAA6E,GAAA9E,GAAAE,GAAAE,GAAA2E,GAAA5E,GAAA1V,IAAAiG,GAAA+M,GAAA9M,MAAAC,EAAAA,EAAAA,GAAAgU,GAAA,CA5IAjd,GAAc,0BAA2B,CACxCuN,WAAY,CAACC,GAAAA,MACb,EAGCvN,GAAS,CAAEmJ,KAAMC,UAAU,aAG3BpJ,KAAU,eAGVA,KAAU,qBAGVA,KAAU,eAGVA,KAAU,cAGVA,KAAU,iBAGVA,GAAS,CAAEmJ,KAAMC,UAAU,+BAG3BpJ,KAAU,sBAGVA,KAAU,yBAGVA,GAAS,CAAEkJ,WAAW,IAAQ,qBAG9BlJ,KAAU,sBAGVA,KAAU,yBAGVA,GAAS,CAAEkJ,WAAW,IAAQ,qBAG9BlJ,GAAS,CAAEkJ,WAAW,IAAQ,YAG9BjJ,GAAM,CAAEkJ,KAAM,WAAW,WAAAG,IAAApD,EAAAA,EAAAA,GAAAzE,GAAA6H,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA3E,GAAA6H,EAAAnD,IAAA,CAOzBlG,GAAM,CAAEkJ,KAAM,iBAAiB,gBAAAG,IAAApD,EAAAA,EAAAA,GAAAxE,GAAA4H,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA1E,GAAA4H,EAAAnD,IAAA,CAa/BlG,GAAM,CAAEkJ,KAAM,yBAAyB,uBAAAG,IAAApD,EAAAA,EAAAA,GAAApE,GAAAwH,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAtE,GAAAwH,EAAAnD,IAAA,CAOvClG,GAAM,CAAEkJ,KAAM,gBAAgB,eAAAG,IAAApD,EAAAA,EAAAA,GAAAlE,GAAAsH,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAApE,GAAAsH,EAAAnD,IAAA,CAY9BjG,KAAQ,kBAQRA,KAAQ,YAKRA,KAAQ,oBAKRA,KAAQ,iBAKRA,KAAQ,0BAAAqJ,GAAAjH,GAAAkH,KAAAC,EAAAA,EAAAA,GAAAF,KA1GgB/G,EAAAA,mBAAgBuG,K,kDC5E3C,MAAMmB,IAAcC,EAAAA,EAAAA,WAAyC,WACvDiT,IAAiBjT,EAAAA,EAAAA,WAAmC,eAElDpK,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAkd,GAAA,IAAA3c,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAoBvD,MAAA2c,WAGyB9a,EAAAA,iBAA4CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAA6c,GAAA,QAAA3a,EAAAA,EAAAA,GAAA,KAAAhC,IAAA4c,GAAA,MAAAC,GAAA,SAAA7a,EAAAA,EAAAA,GAAA,KAAA/B,IAAA6c,GAAA,MAAAlT,GAAA,SAAA5H,EAAAA,EAAAA,GAAA,KAAA9B,IAAA2J,GAAA,MAAAkT,GAAA,QAAAC,GAAA,cAE1DzQ,GAAI,OAAAjH,EAAAA,EAAAA,GAAAxF,GAAA,cAAJyM,CAAIhH,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,YAGJ0X,GAAO,OAAA3X,EAAAA,EAAAA,GAAAtF,GAAA,iBAAPid,CAAO1X,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,aAGP+E,GAAQ,OAAAhF,EAAAA,EAAAA,GAAArF,GAAA,kBAARqK,CAAQ/E,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,YAGR0V,GAAO,OAAA3V,EAAAA,EAAAA,GAAApF,GAAA,iBAAP+a,CAAO1V,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,CAEhB2B,MAAAA,GACE,OACEE,IAAAA,cAAC8V,GAAmB,CAClB3Q,KAAMpI,KAAKoI,KACX0Q,QAAS9Y,KAAK8Y,QACd3S,SAAUnG,KAAKmG,UAGrB,EAGF,SAAS4S,GAAmBxb,GAA+C,IAA9C,KAAE6K,EAAI,QAAE0Q,EAAO,SAAE3S,GAA2B5I,EACvE,MAAMyb,EACJ/V,IAAAA,cAAA,UAAQkD,SAAUA,GAChBlD,IAAAA,cAACkC,GAAgBiD,IAIrB,OAAI0Q,EACK7V,IAAAA,cAACoV,GAAc,CAACY,QAASH,GAAUE,GAGrCA,CACT,CAdCE,GAAAX,KAAA9U,GAAA+U,GAAAC,GAAAC,GAAAC,GAAAlT,GAAAC,GAAAkT,GAAAC,IAAA9U,GAAAuU,GAAAtU,MAAAC,EAAAA,EAAAA,GAAAiV,GAAA,CAzBAle,GAAc,wBAAyB,CACtCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,KAAU,cAGVA,GAAS,CAAEmJ,KAAMC,UAAU,eAG3BpJ,GAAS,CAAE8H,QAAQ,IAAQ,uBAVLtF,EAAAA,mBAAgBuG,KCnClC,IAAKW,GAAC,SAADA,GAAC,OAADA,EAAC,UAADA,EAAC,kDAADA,CAAC,MAKb,MAUa7J,GAAK,8BAELC,GAAU,CAAE6J,GAZN,CACjB,CAACD,GAAEwU,KAAM,MACT,CAACxU,GAAEyU,yBAA0B,2BAUFrU,GAPV,CACjB,CAACJ,GAAEwU,KAAM,KACT,CAACxU,GAAEyU,yBAA0B,WAOlBpU,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,0FCFtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMkO,IAAc7D,EAAAA,EAAAA,WAA2B,WACzCiU,IAAiBjU,EAAAA,EAAAA,WAKrB,qBAAsB,CACtBkU,WAAY,eAGNte,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAme,GAAA,IAAA5d,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAmBvD,MAAA4d,WAGwB/b,EAAAA,iBAA2CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAA+N,GAAA,QAAA7L,EAAAA,EAAAA,GAAA,KAAAhC,IAAA8N,GAAA,MAAA8P,GAAA,QAAAC,GAAA,cAExDnP,GAAI,OAAApJ,EAAAA,EAAAA,GAAAxF,GAAA,cAAJ4O,CAAInJ,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,oBAGJuY,GAAe,OAAAxY,EAAAA,EAAAA,GAAAtF,GAAA,yBAAf8d,CAAevY,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,CAExB2B,MAAAA,GACE,OACEE,IAAAA,cAAC2W,GAAkB,CACjBrP,KAAMvK,KAAKuK,KACXoP,gBAAiB3Z,KAAK2Z,iBAG5B,EAGF,SAASC,GAAkBrc,GAA4C,IAA3C,KAAEgN,EAAI,gBAAEoP,GAAiCpc,EAEnE,MAAMqN,GAASC,EAAAA,EAAAA,UAAkB,IACxB,CAAC,MAAO,IAAIgP,IAAItP,aAAI,EAAJA,EAAMwC,KAAKrB,GAASA,EAAKoO,WAAUC,OAAO1V,YAChE,CAACkG,KAEGyP,EAAaC,IAAkBrT,EAAAA,EAAAA,UAAS,IAEzCsT,GAAerP,EAAAA,EAAAA,UAAQ,IACtBmP,EAGEzP,aAAI,EAAJA,EAAMwP,QAAQrO,GAASA,EAAKoO,WAAaE,IAFvCzP,GAGR,CAACyP,EAAazP,IAEX4P,GAAOtP,EAAAA,EAAAA,UAAe,IACnBD,EAAOmC,KAAKjB,IAAK,CACtBnR,GAAImR,EACJsD,MAAiB,KAAVtD,EAAe9G,GAAEL,GAAEwU,KAAOrN,OAElC,CAAClB,IAEJ,OAAKL,SAAAA,EAAMyM,OAKT/T,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,OAAKyE,UAAU,QAAQ,GAAG1C,GAAEL,GAAEyU,8BAC9BnW,IAAAA,cAACoW,GAAc,CACbc,KAAMA,EACNC,UAAWJ,EACXV,WAAape,GAAU+e,EAAe/e,EAAMsF,OAAO7F,MAErDsI,IAAAA,cAAA,MAAIyE,UAAU,SACXwS,aAAY,EAAZA,EAAcnN,KAAKrB,GAClBzI,IAAAA,cAAA,MAAI+J,IAAKtB,EAAKnK,OAAQmG,UAAU,QAC9BzE,IAAAA,cAACgG,GAAW,CACVvB,UAAU,OACVyF,KAAKkN,EAAAA,GAAAA,GAAcV,EAAiBjO,IAEpCzI,IAAAA,cAAA,QACEyE,UAAU,YACV4S,MAAO,CACLC,gBAAiB,IACX7O,EAAK8O,SACL,CAAC,QAAOC,EAAAA,GAAAA,iBAAgB/O,EAAK8O,aAC7B,GACJ,OAAOE,OACPC,KAAK,SAGPjP,EAAK8O,UACLvX,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,QAAMyE,UAAU,UAChBzE,IAAAA,cAAA,QAAMyE,UAAU,QAAQgE,EAAKkP,WAInC3X,IAAAA,cAAA,QAAMyE,UAAU,SACdzE,IAAAA,cAAA,YAAOyI,EAAKO,cArCjB,IA6CX,CAtEC4O,GAAArB,KAAA/V,GAAAiG,GAAAC,GAAA8P,GAAAC,IAAA3V,GAAAwV,GAAAvV,MAAAC,EAAAA,EAAAA,GAAA4W,GAAA,CAlBA7f,GAAc,uBAAwB,CACrCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,KAAU,+BAJWwC,EAAAA,mBAAgBuG,KCnDjC,IAAKW,GAAC,SAADA,GAAC,OAADA,EAAC,kBAADA,EAAC,UAADA,EAAC,0BAADA,EAAC,wDAADA,EAAC,4BAADA,EAAC,wCAADA,EAAC,0CAADA,EAAC,0DAADA,EAAC,oDAADA,EAAC,gCAADA,EAAC,sCAADA,EAAC,wBAADA,CAAC,MAgBb,MAgCa7J,GAAK,6BAELC,GAAU,CAAE6J,GAlCN,CACjB,CAACD,GAAEmW,SAAU,UACb,CAACnW,GAAEwU,KAAM,MAET,CAACxU,GAAEoW,aAAc,OACjB,CAACpW,GAAEqW,4BAA6B,OAChC,CAACrW,GAAEsW,cAAe,QAClB,CAACtW,GAAEuW,oBAAqB,OACxB,CAACvW,GAAEwW,qBAAsB,OACzB,CAACxW,GAAEyW,6BAA8B,uBACjC,CAACzW,GAAE0W,0BAA2B,oBAC9B,CAAC1W,GAAE2W,gBAAiB,UACpB,CAAC3W,GAAE4W,mBAAoB,aACvB,CAAC5W,GAAE6W,YAAa,OAqBWzW,GAlBV,CACjB,CAACJ,GAAEmW,SAAU,SACb,CAACnW,GAAEwU,KAAM,KAET,CAACxU,GAAEoW,aAAc,OACjB,CAACpW,GAAEqW,4BAA6B,OAChC,CAACrW,GAAEsW,cAAe,KAClB,CAACtW,GAAEuW,oBAAqB,KACxB,CAACvW,GAAEwW,qBAAsB,KACzB,CAACxW,GAAEyW,6BAA8B,SACjC,CAACzW,GAAE0W,0BAA2B,OAC9B,CAAC1W,GAAE2W,gBAAiB,UACpB,CAAC3W,GAAE4W,mBAAoB,aACvB,CAAC5W,GAAE6W,YAAa,QAOLxW,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,uCCnCtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAM0gB,GAAsC,CAC1CvT,IAAK,OACLE,KAAM,QAGFsT,GAAkB,IAAI3Q,IAAI,CAC9B,CACE,YACA,CACE4Q,QAAS,CAAC,OAAQ,yBAGtB,CACE,UACA,CACEA,QAAS,CAAC,aAGd,CACE,aACA,CACEA,QAAS,CAAC,gBAGd,CACE,OACA,CACEA,QAAS,CAAC,WAGd,CACE,MACA,CACEA,QAAS,CAAC,gBAGd,CACE,MACA,CACEA,QAAS,CAAC,cAAe,kBAG7B,CACE,MACA,CACEA,QAAS,CAAC,SAGd,CACE,OACA,CACEA,QAAS,CAAC,4BAKVxW,IAAcC,EAAAA,EAAAA,WAAyC,WACvDiU,IAAiBjU,EAAAA,EAAAA,WAKrB,qBAAsB,CACtBkU,WAAY,eAGNte,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAwgB,GAAA,IAAAjgB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAyBvD,MAAAigB,WAGuBpe,EAAAA,iBAA0CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAA+N,GAAA,QAI/D7L,EAAAA,EAAAA,GAAA,KAAAhC,IAAA8N,GAAA,MAAAmS,GAAA,MAEyB,KAAIC,GAAA,cAJpBxR,GAAI,OAAApJ,EAAAA,EAAAA,GAAAxF,GAAA,cAAJ4O,CAAInJ,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,kBAIJ4a,GAAa,OAAA7a,EAAAA,EAAAA,GAAAtF,GAAA,uBAAbmgB,CAAa5a,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,CAEtB2B,MAAAA,GACE,OACEE,IAAAA,cAACgZ,GAAiB,CAAC1R,KAAMvK,KAAKuK,KAAMyR,cAAehc,KAAKgc,eAE5D,EAGF,SAASC,GAAiB1e,GAAyC,IAAxC,KAAEgN,EAAI,cAAEyR,GAA8Bze,EAE/D,MAAOuN,EAAUoR,IAAerR,EAAAA,EAAAA,UAAQ,KACtC,MAAMkC,EAAM,IAAIhC,IACVmR,EAAc,IAAInR,IACxBR,SAAAA,EAAM4R,SAASzQ,IACb,MAAM0Q,EAAYpX,GAChB,UAAU0G,EAAK2Q,OAAO1hB,GAAG2hB,WAAW,IAAK,OACzC5Q,EAAK2Q,OAAOE,MAEd,IAAIhS,EAAOwC,EAAIhB,IAAIqQ,GACd7R,GACHwC,EAAIf,IAAIoQ,EAAY7R,EAAO,IAE7BA,EAAK9P,KAAKiR,GAEV,MAAM8Q,EAAW,IAAId,GAAgBhP,WAAW+P,MAC9ChH,IAAA,IAAEiH,GAAO,QAAEf,IAAUlG,EAAA,OAAKkG,EAAQrO,SAAS5B,EAAK2Q,OAAO1hB,GAAG,IAEtDgiB,EAAeH,EAAWA,EAAS,GAAK,KAC9C,IAAI5R,EAASsR,EAAYnQ,IAAI4Q,GACxB/R,GACHsR,EAAYlQ,IAAI2Q,EAAe/R,EAAS,IAE1CA,EAAOnQ,KAAK2hB,EAAU,IAGxB,MAAMQ,EAAe,CAAC,QAYtB,MAAO,CAXY,IAAI7R,IACrB,IAAIgC,EAAIL,WAAWmQ,MAAK,CAAAC,EAAAC,KAAsB,IAApBC,GAAMF,GAAGG,GAAMF,EACvC,MAAMG,EAASN,EAAaO,QAAQH,GAC9BI,EAASR,EAAaO,QAAQF,GACpC,OACGC,EAAS,EAAIN,EAAa5F,OAASkG,IACnCE,EAAS,EAAIR,EAAa5F,OAASoG,EAAO,KAK7BlB,EAAY,GAC/B,CAAC3R,IAEE8S,GAAYxS,EAAAA,EAAAA,UAAQ,KACxB,MAAM+R,EAAe,IAAIlB,GAAgB4B,QACnCC,EAAQ,IAAIrB,EAAYoB,QAS9B,OARAC,EAAMV,MAAK,CAACW,EAAGC,KACb,MAAMC,EAASd,EAAaO,QAAQK,GAC9BG,EAASf,EAAaO,QAAQM,GACpC,OACGC,EAAS,EAAId,EAAa5F,OAAS0G,IACnCC,EAAS,EAAIf,EAAa5F,OAAS2G,EAAO,IAGxC,CAAC,MAAOJ,EAAM,GACpB,CAACrB,KAEG0B,EAAgBC,IAAqBjX,EAAAA,EAAAA,UAAS,IAE/CkX,GAAiBjT,EAAAA,EAAAA,UAAQ,KAC7B,MAAMkT,EAAc,IAAIjT,GACxB,IAAK8S,EACH,OAAOG,EAET,MAAMC,EAAiB9B,EAAYnQ,IAAI6R,GACvC,OAAOG,EAAYhE,QAAOkE,IAAA,IAAEnS,GAAMmS,EAAA,OAAKD,aAAc,EAAdA,EAAgB1Q,SAASxB,EAAM,GAAC,GACtE,CAAC8R,EAAgB9S,EAAUoR,IAExB/B,GAAOtP,EAAAA,EAAAA,UAAe,IACnBwS,EAAUtQ,KAAKyP,IAAQ,CAC5B7hB,GAAI6hB,EACJpN,MAAoB,KAAboN,EAAkBxX,GAAEL,GAAEwU,KAAOqD,OAErC,CAACa,IAEEa,EACJjb,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACoW,GAAc,CACbc,KAAMA,EACNC,UAAWwD,EACXtE,WAAape,GAAU2iB,EAAkB3iB,EAAMsF,OAAO7F,MAExDsI,IAAAA,cAAA,MAAIyE,UAAU,UACXoW,aAAc,EAAdA,EAAgB/Q,KAAIoR,IAAA,IAAE/B,EAAWlQ,GAAMiS,EAAA,OACtClb,IAAAA,cAAA,MAAI+J,IAAKoP,EAAW1U,UAAU,SAC5BzE,IAAAA,cAAA,UAAKmZ,GACLnZ,IAAAA,cAAA,MAAIyE,UAAU,QACXwE,EAAMa,KAAI,CAACrB,EAAMwL,KAAK,IAAAkH,EAAA,OACrBnb,IAAAA,cAAA,MAAI+J,IAAKkK,EAAOxP,UAAU,QACxBzE,IAAAA,cAAA,OAAKyE,UAAU,WACbzE,IAAAA,cAACkC,IAAW4K,EAAAA,GAAAA,GAAA,CACVrI,UAAU,QACI,QADE0W,EACX1S,EAAKtD,YAAI,IAAAgW,EAAAA,EAAI3C,GAAiB,CACnC4C,SAAU5C,MAEZxY,IAAAA,cAAA,OAAKyE,UAAU,SAASgE,EAAKO,QAE/BhJ,IAAAA,cAAA,OAAKyE,UAAU,eAAegE,EAAK4S,aAChC,KAGN,MAMb,OAAKtC,EAKH/Y,IAAAA,cAAA,OAAKyE,UAAU,aACbzE,IAAAA,cAAA,UAAK+B,GAAEL,GAAEmW,UACRoD,GANIA,CASX,CAtHCK,GAAA1C,KAAApY,GAAAiG,GAAAC,GAAAmS,GAAAC,IAAAhY,GAAA6X,GAAA5X,MAAAC,EAAAA,EAAAA,GAAAsa,GAAA,CAhBAvjB,GAAc,sBAAuB,CACpCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAI9BlJ,GAAS,CAAEmJ,KAAMC,UAAU,6BALP5G,EAAAA,mBAAgBuG,K,uTC/EvCnJ,EAAAA,EAAAA,gBAAeC,GAAAA,GAAIC,GAAAA,GAEnB,MAAMyjB,GAA+B,CACnCtW,IAAK,UACLE,KAAM,UAGApN,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBAa7CqjB,IAAsBnjB,EAAAA,EAAAA,YAAWojB,IAEvC,IAAAC,GAAA,IAAAhjB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAgjB,GAAA,IAAA/hB,QAAAC,GAAA,IAAAlB,QAAAU,GAAA,IAAAV,QAAAoB,GAAA,IAAApB,QAAAW,GAAA,IAAAX,QAAAsB,GAAA,IAAAtB,QAAAY,GAAA,IAAAZ,QAAAwB,GAAA,IAAAxB,QAAAa,GAAA,IAAAb,QAAAijB,GAAA,IAAAjjB,QAAA2B,GAAA,IAAA3B,QAIA,MAAAkjB,WAIyBrhB,EAAAA,iBAA4CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAghB,KAAA/gB,EAAAA,EAAAA,GAAA,KAAAlC,IAAAmC,GAAA,MAAAK,GAAA,SAInEN,EAAAA,EAAAA,GAAA,KAAAhC,IAAAuC,GAAA,MAAAK,GAAA,SAIAZ,EAAAA,EAAAA,GAAA,KAAA/B,IAAA4C,GAAA,MAAAC,GAAA,SAAAd,EAAAA,EAAAA,GAAA,KAAA9B,IAAA6C,GAAA,MAAAC,GAAA,SAAAhB,EAAAA,EAAAA,GAAA,KAAA7B,IAAA8C,GAAA,MAAAG,GAAA,SAAApB,EAAAA,EAAAA,GAAA,KAAA5B,IAAAiD,GAAA,MAAAC,GAAA,SAAAtB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAkD,GAAA,MAAAC,GAAA,SAAAxB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAmD,GAAA,MAAAC,GAAA,SAAA1B,EAAAA,EAAAA,GAAA,KAAAzB,IAAAoD,GAAA,MAAAC,GAAA,SAAA5B,EAAAA,EAAAA,GAAA,KAAAxB,IAAAqD,GAAA,MAAAG,GAAA,SA6BAhC,EAAAA,EAAAA,GAAA,KAAAf,IAAQgD,GAAA,MAAG,MACTC,EAAAA,EAAAA,GAAA6e,GAAA5e,KAAKC,IAAYC,MAAM,KACvBrC,EAAAA,EAAAA,GAAA,KAAAvB,GAAA6D,GAAA,QAKFtC,EAAAA,EAAAA,GAAA,KAAAb,IAAYoD,GAAA,MAAG,MACbL,EAAAA,EAAAA,GAAA6e,GAAA5e,KAAKK,IAAgBH,MAAM,KAC3BrC,EAAAA,EAAAA,GAAA,KAAAtB,GAAA+D,GAAA,QAKFzC,EAAAA,EAAAA,GAAA,KAAAX,IAAiBqD,GAAA,MAAIC,KACnBT,EAAAA,EAAAA,GAAA6e,GAAA5e,KAAKS,IAAqBP,KAAKM,EAAO,KACtC3C,EAAAA,EAAAA,GAAA,KAAArB,GAAAkE,GAAA,QAKF7C,EAAAA,EAAAA,GAAA,KAAAT,IAAiBuD,GAAA,MAAIC,KACnBb,EAAAA,EAAAA,GAAA6e,GAAA5e,KAAKa,IAAqBX,KAAKU,EAAO,KACtC/C,EAAAA,EAAAA,GAAA,KAAApB,GAAAqE,GAAA,QAKFjD,EAAAA,EAAAA,GAAA,KAAAghB,IAAiB9d,GAAA,MAAG,MAClBhB,EAAAA,EAAAA,GAAA6e,GAAA5e,KAAKgB,IAAQd,KAAK,SAAS,KAG7BrC,EAAAA,EAAAA,GAAA,KAAAN,IAAO0D,EAAAA,EAAAA,aAA2B,WAnEzBM,GAAM,OAAAJ,EAAAA,EAAAA,GAAAxF,GAAA,gBAAN4F,CAAMH,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,WAINM,GAAM,OAAAP,EAAAA,EAAAA,GAAAtF,GAAA,gBAAN6F,CAAMN,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,gBAQNO,GAAW,OAAAR,EAAAA,EAAAA,GAAArF,GAAA,qBAAX6F,CAAWP,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,aAGXQ,GAAQ,OAAAT,EAAAA,EAAAA,GAAApF,GAAA,kBAAR6F,CAAQR,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,iBAGRU,GAAY,OAAAX,EAAAA,EAAAA,GAAAnF,GAAA,sBAAZ8F,CAAYV,IAAAC,EAAAA,EAAAA,GAAArF,GAAA,KAAAoF,EAAA,4BAGZW,GAAuB,OAAAZ,EAAAA,EAAAA,GAAAlF,GAAA,iCAAvB8F,CAAuBX,IAAAC,EAAAA,EAAAA,GAAApF,GAAA,KAAAmF,EAAA,uBAGvBY,GAAkB,OAAAb,EAAAA,EAAAA,GAAAjF,GAAA,4BAAlB8F,CAAkBZ,IAAAC,EAAAA,EAAAA,GAAAnF,GAAA,KAAAkF,EAAA,iBAGlBa,GAAY,OAAAd,EAAAA,EAAAA,GAAAhF,GAAA,sBAAZ8F,CAAYb,IAAAC,EAAAA,EAAAA,GAAAlF,GAAA,KAAAiF,EAAA,gBAGZc,GAAW,OAAAf,EAAAA,EAAAA,GAAA/E,GAAA,qBAAX8F,CAAWd,IAAAC,EAAAA,EAAAA,GAAAjF,GAAA,KAAAgF,EAAA,CAwCpBgB,OAAAA,GAAU,IAAAC,EACS,QAAjBA,GAAAlB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAF,GAAjBA,EAAmBD,SACrB,CAGAK,kBAAAA,GAAqB,IAAAH,EACF,QAAjBA,GAAAnB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAD,GAAjBA,EAAmBG,oBACrB,CAGAE,oBAAAA,GAAuB,IAAAD,EACJ,QAAjBA,GAAAvB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAG,GAAjBA,EAAmBC,sBACrB,CAGAE,kBAAAA,CAAmBjC,GAAgB,IAAAgC,EAChB,QAAjBA,GAAAzB,EAAAA,EAAAA,GAAK5D,GAALyC,MAAUuC,eAAO,IAAAK,GAAjBA,EAAmBC,mBAAmBjC,EACxC,CAEAmC,MAAAA,GACE,OACEE,IAAAA,cAACwb,GAAmB,CAClBld,OAAQvB,KAAKuB,OACbG,OAAQ1B,KAAK0B,OACbC,YAAa3B,KAAK2B,YAClBC,SAAU5B,KAAK4B,SACfE,aAAc9B,KAAK8B,aACnBC,wBAAyB/B,KAAK+B,wBAC9BC,mBAAoBhC,KAAKgC,mBACzBC,aAAcjC,KAAKiC,aACnBiB,SAAS/B,EAAAA,EAAAA,GAAKrE,GAALkD,MACTmD,aAAahC,EAAAA,EAAAA,GAAKnE,GAALgD,MACboD,kBAAkBjC,EAAAA,EAAAA,GAAKjE,GAAL8C,MAClB+e,kBAAkB5d,EAAAA,EAAAA,GAAK0d,GAAL7e,MAClBsD,kBAAkBnC,EAAAA,EAAAA,GAAK/D,GAAL4C,OAGxB,EAkBF,SAAS0e,GAAyBjJ,EAgBhClS,GACA,IAAAyb,EAAA,IAhBA,OACEzd,EAAM,OACNG,EAAM,YACNC,EAAW,SACXC,EACAE,aAAcmd,EAAgB,wBAC9Bld,EAAuB,mBACvBC,EAAkB,aAClBC,EAAY,QACZiB,EAAO,YACPC,EAAW,iBACXC,EAAgB,iBAChB2b,EAAgB,iBAChBzb,GACyBmS,EAG3B,MAAM,KACJjU,EAAI,KACJC,EAAI,MACJyd,EAAK,cACLC,EAAa,WACbC,EAAU,cACVC,EAAa,WACbC,IACEC,EAAAA,GAAAA,GAAche,EAAQG,EAAQC,GAC5B6d,EAAuB,QAAdR,EAAGxd,aAAI,EAAJA,EAAMyK,aAAK,IAAA+S,EAAAA,EAAI,GAC3BS,EAAYje,aAAI,EAAJA,EAAM+L,MAClBmS,EAAWrS,GAAAA,GAAYC,SAASmS,IAChC,SAAEE,EAAQ,mBAAEC,EAAkB,kBAAEC,IAAsBC,EAAAA,GAAAA,GAC1Dte,EACAC,GAGIse,GAAQlV,EAAAA,EAAAA,UAAQ,IACbpJ,aAAI,EAAJA,EAAMue,SAASC,GACpBA,EAAIC,cACA,CACEvlB,GAAIslB,EAAItlB,GACRwlB,KAAMF,EAAIC,eAEZ,MAEL,CAACze,KAEG2e,EAAoBC,IAAyBzZ,EAAAA,EAAAA,WAAS,IACtD0Z,EAAmBC,IAAwB3Z,EAAAA,EAAAA,WAAS,IACpD9E,EAAc0e,IAAmB5Z,EAAAA,EAAAA,YAAoBqY,IAC5D7X,EAAAA,EAAAA,YAAU,KACRoZ,IAAkBvB,EAAiB,GAClC,CAACA,IACJ,MAAOwB,EAAmBC,IAAwB9Z,EAAAA,EAAAA,YAI5C+Z,GAAuB5Z,EAAAA,EAAAA,cAC1BvG,IACC6f,GAAsB,GACtBjd,EAAiB5C,EAAO,GAE1B,CAAC4C,KAGHiT,EAAAA,EAAAA,qBACE9S,GACA,KAAM,CACJnB,QAASA,KAAA,IAAAwe,EAAA,OAAwB,QAAxBA,EAAMxB,EAAW7c,eAAO,IAAAqe,OAAA,EAAlBA,EAAApe,KAAA4c,EAAsB,EACrC3c,mBAAoBA,KAClB8d,GAAqB,GACrB7L,YAAW,KACT8L,GAAgB,EAAM,GACrB,IAAK,EAEV7d,qBAAsBA,KACpB0d,GAAsB,EAAM,EAE9Bxd,mBAAqBjC,IACnB8f,GAAsBG,IACpB,MAAMC,EAAS,IAAIjH,IAAIgH,GAEvB,OADAC,EAAOC,IAAIngB,GACJkgB,CAAM,GACb,KAGN,CAAC1B,IAGH,MAAO4B,EAAyBC,IAA8Bra,EAAAA,EAAAA,UAE5D,OAEKsa,EAAqBC,IAA0Bva,EAAAA,EAAAA,UACpD,OAEKwa,EAAiBC,IAAsBza,EAAAA,EAAAA,WAAS,GAEjD0a,GAAW7a,EAAAA,EAAAA,SAAO,GAElB8a,IAAkB/f,GACxB4F,EAAAA,EAAAA,YAAU,KACR,GAAIma,EAAe,CACjB,MAAMC,EAAQ9M,YAAW,KACvB4M,EAAS/e,SAAU,CAAI,GACtB,KACH,MAAO,KACLkf,aAAaD,EAAM,CAEvB,IACC,CAACD,KAEJna,EAAAA,EAAAA,YAAU,KACJka,EAAS/e,SAAWsd,IAAsBuB,GAC5CD,EAAuBtB,EACzB,GACC,CAACA,EAAmBuB,KAEvBha,EAAAA,EAAAA,YAAU,MACRsa,EAAAA,GAAAA,cAAaC,eAAenC,EAAU,GACrC,CAACA,KAEJpY,EAAAA,EAAAA,YAAU,KACJ8X,IACF0C,EAAAA,GAAAA,iBAAgB1C,EAClB,GACC,CAACA,IAEJ,MAAM2C,GAAa9a,EAAAA,EAAAA,cACjB,CAAC+a,EAAeC,KAAkB,IAAAC,EACX,QAArBA,EAAA7C,EAAc5c,eAAO,IAAAyf,GAArBA,EAAAxf,KAAA2c,EAAwB2C,EAAOC,EAAM,GAEvC,CAAC5C,IAGG8C,GAAmBpX,EAAAA,EAAAA,UACvB,KAAM,CACJgX,aACA3e,UACAC,cACAvB,WAEAof,0BACAC,6BACAC,sBACAC,yBAEAf,qBACAE,oBACAld,iBAAkBud,EAClBH,kBACAxe,qBACAsB,mBACAmd,uBAEF,CACEoB,EACA3e,EACAC,EACAvB,EAEAof,EACAE,EAEAd,EACAE,EACAK,EACA3e,EACAsB,EACAmd,IAIEyB,GAAqBrX,EAAAA,EAAAA,UACzB,KAAM,CACJgV,oBACAwB,wBAEF,CAACxB,IAGGsC,GAAsB1b,EAAAA,EAAAA,SAAO,GAC7B2b,GAAoB3b,EAAAA,EAAAA,SAAO,GAC3B4b,IAAqB5b,EAAAA,EAAAA,QAAuB,OAC3C6b,GAAYC,KAAiB3b,EAAAA,EAAAA,WAAS,IAE7CQ,EAAAA,EAAAA,YAAU,KACR,MAAMob,EAAkBH,GAAmB9f,QACrCkgB,EAAmBD,aAAe,EAAfA,EAAiBE,kBAC1C,GAAIN,EAAkB7f,UAAYigB,IAAoBC,EACpD,OAGF,MAAME,EAAeA,KACnBJ,GACEC,EAAgBI,UAAYJ,EAAgBK,aAAgB,GAC1DL,EAAgBM,cAEfX,EAAoB5f,UAGzB6f,EAAkB7f,QAChBigB,EAAgBI,UAAYJ,EAAgBK,aAAgB,EAC5DL,EAAgBM,aAAY,EAIhC,IAAItB,EAFJgB,EAAgBO,iBAAiB,SAAUJ,GAG3C,MAAMnW,EAAW,IAAIwW,GAAAA,GAAe,KAC9BZ,EAAkB7f,UAGtB4f,EAAoB5f,SAAU,EAE9BigB,EAAgBS,SAAS,CACvBC,IAAKT,EAAiBK,aACtBjP,SAAU,YAEZ4N,aAAaD,GACbA,EAAQ9M,YAAW,KACjByN,EAAoB5f,SAAU,CAAI,GACjC,KAAI,IAIT,OAFAiK,EAASK,QAAQ4V,GAEV,KACLjW,EAASM,aACT0V,EAAgBW,oBAAoB,SAAUR,EAAa,CAC5D,GACA,CAACpB,IAEJ,MAAM6B,IAAiBrc,EAAAA,EAAAA,cAAY,KACjC,MAAMyb,EAAkBH,GAAmB9f,QAC3CigB,SAAAA,EAAiBS,SAAS,CACxBC,IAAKV,aAAe,EAAfA,EAAiBM,aACtBjP,SAAU,WACV,GACD,IAEGwP,IAAoBxY,EAAAA,EAAAA,UAAQ,IAC3BqW,EAGEzf,aAAI,EAAJA,EAAMgb,MAAMwD,GAAQA,EAAItlB,KAAOumB,IAF7B,MAGR,CAACA,EAAqBzf,IAEzB,OACEwB,IAAAA,cAACqgB,GAAAA,EAAYC,SAAQ,CAACtd,MAAOgc,GAC3Bhf,IAAAA,cAACugB,GAAAA,EAAcD,SAAQ,CAACtd,MAAOic,GAC7Bjf,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOC,WACrBzgB,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOE,QACrB1gB,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOG,OACvB3gB,IAAAA,cAAA,UAAKuc,GACLvc,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOI,OACpB5hB,GACCgB,IAAAA,cAAC4T,GAAAA,GAAiB,CAChBzO,KAAM0b,GAAAA,GACNhN,QAAQ,OACRwD,MAAO,CACLyJ,UAAW,iBAEb9b,QAAS8W,IAGb9b,IAAAA,cAAC4T,GAAAA,GAAiB,CAChBzO,KAAMoW,GACN1H,QAAQ,OACR7O,QAAS/E,MAIdqe,EACCte,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOO,KAAMzgB,IAAK8e,IAChCpf,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOQ,QACpBtE,EAAS5S,KAAI,CAACmX,EAAKhN,EAAO3M,IACzBtH,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOU,QAASnX,IAAKkK,GACrB,SAAbgN,EAAIE,KACHnhB,IAAAA,cAACohB,GAAAA,EAAW,CAACpL,QAASiL,EAAIjL,UAE1BhW,IAAAA,cAACqhB,GAAAA,EAAgB,CACf7iB,KAAMyiB,EAAIziB,KACVge,UAAWA,EACX8E,SAAUrN,IAAU3M,EAAKyM,OAAS,OAKzClV,IACgB,cAAd2d,GACgB,WAAdA,GAA0B1d,IAC3BkB,IAAAA,cAACuhB,GAAAA,EAAY,CAAC9c,UAAW+b,GAAAA,EAAOgB,aAIxCxhB,IAAAA,cAAA,OACEyE,UAAW+b,GAAAA,EAAO,eAClBiB,QAASpC,GACTra,QAASmb,IAETngB,IAAAA,cAACkC,GAAAA,GAAW,CAAC+C,IAAI,OAAOE,KAAK,WAIjCnF,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAO,iBACrBxgB,IAAAA,cAACkC,GAAAA,GAAW,CACV+C,IAAI,OACJuF,MAAM,WACNrF,KAAK,qBACLoF,UAAQ,KAIb9L,GAAUE,SAAAA,EAAU+iB,KACnB1hB,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOmB,QACrB3hB,IAAAA,cAAA,OAAKyE,UAAW+b,GAAAA,EAAOQ,QACpBviB,EACCuB,IAAAA,cAAC4hB,GAAAA,EAAa,CACZnF,SAAUA,EACVL,cAAeA,EACfC,WAAYA,IAGdrc,IAAAA,cAACuC,GAAAA,EAAO,CACN+H,MAAOkS,EACPqF,QAASpF,KAAcE,EACvBA,mBAAoBA,MAK1B,MAEN3c,IAAAA,cAAA,OACEyE,UAAWuF,KAAWwW,GAAAA,EAAOsB,MAAO,CAClC,CAACtB,GAAAA,EAAOuB,YAAa3B,MAGtBA,IAAqBpgB,IAAAA,cAACgiB,GAAAA,EAAK,CAAChF,IAAKoD,MAEnCrC,GAA2B/d,IAAAA,cAACiiB,GAAAA,EAAY,CAACnF,MAAOA,KAIzD,CAxWCoF,GAAArG,KAAArb,GAAAtF,GAAAC,GAAAK,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAI,GAAAyD,GAAA5D,GAAAK,GAAAE,GAAAsD,GAAAvD,GAAAE,GAAAG,GAAAmD,GAAArD,GAAAG,GAAAG,GAAAgD,GAAAlD,GAAAG,GAAAE,GAAA8C,GAAA/C,GAAAjD,IAAAiG,GAAA4a,GAAA3a,MAAAC,EAAAA,EAAAA,GAAAkhB,GAAA,CAlHAnqB,GAAc,wBAAyB,CAEtCkJ,eAAe,KACf,EAECjJ,KAAU,aAIVA,GAAS,CAAEmJ,KAAMC,UAAU,aAQ3BpJ,GAAS,CAAEmJ,KAAME,SAAS,kBAG1BrJ,GAAS,CAAEkJ,WAAW,IAAQ,eAG9BlJ,GAAS,CAAEmJ,KAAMC,UAAU,mBAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,8BAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,yBAG3BpJ,GAAS,CAAEmJ,KAAMC,UAAU,mBAG3BpJ,GAAS,CAAEmJ,KAAMC,QAAStB,QAAQ,IAAQ,kBAG1C7H,GAAM,CAAEkJ,KAAM,UAAU,eAAAG,IAAApD,EAAAA,EAAAA,GAAA9E,GAAAkI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAhF,GAAAkI,EAAAnD,IAAA,CAOxBlG,GAAM,CAAEkJ,KAAM,cAAc,mBAAAG,IAAApD,EAAAA,EAAAA,GAAA7E,GAAAiI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA/E,GAAAiI,EAAAnD,IAAA,CAO5BlG,GAAM,CAAEkJ,KAAM,oBAAoB,wBAAAG,IAAApD,EAAAA,EAAAA,GAAA5E,GAAAgI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA9E,GAAAgI,EAAAnD,IAAA,CAOlClG,GAAM,CAAEkJ,KAAM,qBAAqB,wBAAAG,IAAApD,EAAAA,EAAAA,GAAA3E,GAAA+H,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA7E,GAAA+H,EAAAnD,IAAA,CAOnClG,GAAM,CAAEkJ,KAAM,cAAc,WAAAG,IAAApD,EAAAA,EAAAA,GAAA1E,GAAA8H,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAA5E,GAAA8H,EAAAnD,IAAA,CAS5BjG,KAAQ,cAKRA,KAAQ,yBAKRA,KAAQ,2BAKRA,KAAQ,4BAAAqJ,GAAAjH,GAAAkH,KAAAC,EAAAA,EAAAA,GAAAF,KAtFc/G,EAAAA,mBAAgBuG,KChElC,IAAKW,GAAC,SAADA,GAAC,OAADA,EAAC,4BAADA,EAAC,oBAADA,CAAC,MAKb,MAUa7J,GAAK,gCAILkK,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,mDCCtCD,EAAAA,EAAAA,gBAAeC,GDHQ,CAAE8J,GAZN,CACjBwgB,aAAc,eACdC,SAAU,YAUiBtgB,GAPV,CACjBqgB,aAAc,SACdC,SAAU,SCUZ,MAAMpc,IAAc7D,EAAAA,EAAAA,WAA2B,WACzCD,IAAcC,EAAAA,EAAAA,WAAyC,WACvDiU,IAAiBjU,EAAAA,EAAAA,WAKrB,qBAAsB,CACtBkU,WAAY,eAGNte,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAkqB,GAAA,IAAA3pB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAuBvD,MAAA2pB,WAG0B9nB,EAAAA,iBAA6CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAA+N,GAAA,QAAA7L,EAAAA,EAAAA,GAAA,KAAAhC,IAAA8N,GAAA,MAAA6b,GAAA,SAQrE3nB,EAAAA,EAAAA,GAAA,KAAA/B,IAAA2pB,GAAA,MAAAC,GAAA,SAKA7nB,EAAAA,EAAAA,GAAA,KAAA9B,IAAA4pB,GAAA,MAAA7J,GAAA,MAEyB,KAAIC,GAAA,cAbpBxR,GAAI,OAAApJ,EAAAA,EAAAA,GAAAxF,GAAA,cAAJ4O,CAAInJ,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,eAGJwkB,GAAU,OAAAzkB,EAAAA,EAAAA,GAAAtF,GAAA,oBAAV+pB,CAAUxkB,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,gBAMViW,GAAW,OAAAlW,EAAAA,EAAAA,GAAArF,GAAA,qBAAXub,CAAWjW,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,kBAIX4a,GAAa,OAAA7a,EAAAA,EAAAA,GAAApF,GAAA,uBAAbigB,CAAa5a,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,CAEtB2B,MAAAA,GACE,OACEE,IAAAA,cAAC4iB,GAAoB,CACnBtb,KAAMvK,KAAKuK,KACXqb,WAAY5lB,KAAK4lB,WACjBvO,YAAarX,KAAKqX,YAClB2E,cAAehc,KAAKgc,eAG1B,EAGF,SAAS6J,GAAoBtoB,GAKR,IALS,KAC5BgN,EACAqb,WAAYE,EAAW,YACvBzO,EAAW,cACX2E,GACiBze,EACjB,MAAMqoB,GAAa/a,EAAAA,EAAAA,UAAQ,IAClB,IACF,IAAIgP,IAAI,IACLiM,QAAAA,EAAe,OACfvb,QAAAA,EAAQ,IAAIwC,KAAKrB,GAASA,EAAKqa,eAGtC,CAACD,EAAavb,KAEVyb,EAAgBC,IAAqBrf,EAAAA,EAAAA,UAASgf,EAAW,IAG1Dhb,GAASC,EAAAA,EAAAA,UAAQ,KACrB,MAAMkC,EAAM,IAAIhC,IAWhB,OAVAR,SAAAA,EAAM4R,SAASzQ,IACb,GAAIA,EAAKqa,WAAaC,EACpB,OAEF,IAAIE,EAAQnZ,EAAIhB,IAAIL,EAAK0Y,MACpB8B,GACHnZ,EAAIf,IAAIN,EAAK0Y,KAAO8B,EAAQ,IAE9BA,EAAMzrB,KAAKiR,EAAK,IAEX,IAAIqB,EAAIL,UAAU,GACxB,CAACsZ,EAAgBzb,IAEd4P,GAAOtP,EAAAA,EAAAA,UAAe,IACnB+a,EAAW7Y,KAAKgZ,IAAQ,CAC7BprB,GAAIorB,EACJ3W,MAAO2W,GAAY/gB,GAAEL,GAAE0gB,eAExB,CAACO,IAEE1H,EACJjb,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACoW,GAAc,CACbc,KAAMA,EACNC,UAAW4L,EACX1M,WAAape,GAAU+qB,EAAkB/qB,EAAMsF,OAAO7F,MAExDsI,IAAAA,cAAA,MAAIyE,UAAU,UACXkD,EAAOmC,KAAI0I,IAAA,IAAE2G,EAAWlQ,GAAMuJ,EAAA,OAC7BxS,IAAAA,cAAA,MAAI+J,IAAKoP,EAAW1U,UAAU,SAC5BzE,IAAAA,cAAA,UAAKmZ,GACLnZ,IAAAA,cAAA,MAAIyE,UAAU,QACXwE,EAAMa,KAAI,CAACrB,EAAMwL,IAChBjU,IAAAA,cAAA,MAAI+J,IAAKkK,GACPjU,IAAAA,cAACgG,IAAW8G,EAAAA,GAAAA,GAAA,CACVrI,UAAWuF,KAAW,OAAQ,CAAEkZ,YAAa9O,KACxCA,EACD,CAAElK,KAAKkN,EAAAA,GAAAA,GAAchD,EAAa3L,IAClC,MAEJzI,IAAAA,cAAA,OAAKyE,UAAU,WACbzE,IAAAA,cAAA,OAAKyE,UAAU,UACZgE,EAAK0a,OACJnjB,IAAAA,cAAA,OAAKsN,IAAK7E,EAAK0a,SAEfnjB,IAAAA,cAACkC,GAAW,CAAC+C,IAAI,OAAOE,KAAK,UAGjCnF,IAAAA,cAAA,OAAKyE,UAAU,SAASgE,EAAK6Q,OAE/BtZ,IAAAA,cAAA,OAAKyE,UAAU,eAAegE,EAAK4S,kBAKxC,MAMb,OAAKtC,EAKH/Y,IAAAA,cAAA,OAAKyE,UAAU,aACbzE,IAAAA,cAAA,UAAK+B,GAAEL,GAAEygB,eACRlH,GANIA,CASX,CA7FCmI,GAAAd,KAAA9hB,GAAAiG,GAAAC,GAAA6b,GAAAC,GAAAC,GAAAC,GAAA7J,GAAAC,IAAAhY,GAAAuhB,GAAAthB,MAAAC,EAAAA,EAAAA,GAAAoiB,GAAA,CA9BArrB,GAAc,yBAA0B,CACvCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,GAAS,CAAEkJ,WAAW,IAAQ,iBAM9BlJ,KAAU,kBAIVA,GAAS,CAAEmJ,KAAMC,UAAU,6BAdJ5G,EAAAA,mBAAgBuG,KC3DnC,IAAKW,GAAC,SAADA,GAAC,OAADA,EAAC,gBAADA,CAAC,MAIb,MAQa7J,GAAK,6BAILkK,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,4CCHtC,MAAM2gB,GAAsC,CAC1CvT,IAAK,OACLE,KAAM,SAGRvN,EAAAA,EAAAA,gBAAeC,GDJQ,CAAE8J,GAVN,CACjB0hB,OAAQ,UASmBvhB,GANV,CACjBuhB,OAAQ,SCWV,MAAMnhB,IAAcC,EAAAA,EAAAA,WAAyC,WAEvD6D,IAAc7D,EAAAA,EAAAA,WAA2B,YAEvCpK,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAmrB,GAAA,IAAA5qB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAoBvD,MAAA4qB,WAGuB/oB,EAAAA,iBAA0CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAA+N,GAAA,QAAA7L,EAAAA,EAAAA,GAAA,KAAAhC,IAAA8N,GAAA,MAAA+b,GAAA,SAO/D7nB,EAAAA,EAAAA,GAAA,KAAA/B,IAAA6pB,GAAA,MAAA7J,GAAA,MAEyB,KAAIC,GAAA,cAPpBxR,GAAI,OAAApJ,EAAAA,EAAAA,GAAAxF,GAAA,cAAJ4O,CAAInJ,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,gBAGJiW,GAAW,OAAAlW,EAAAA,EAAAA,GAAAtF,GAAA,qBAAXwb,CAAWjW,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,kBAIX4a,GAAa,OAAA7a,EAAAA,EAAAA,GAAArF,GAAA,uBAAbkgB,CAAa5a,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,CAEtB2B,MAAAA,GACE,OACEE,IAAAA,cAACwjB,GAAiB,CAChBlc,KAAMvK,KAAKuK,KACX8M,YAAarX,KAAKqX,YAClB2E,cAAehc,KAAKgc,eAG1B,EAGF,SAASyK,GAAiBlpB,GAIR,IAJS,KACzBgN,EAAI,YACJ8M,EAAW,cACX2E,GACcze,EACd,MAAM2gB,EACJjb,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,MAAIyE,UAAU,QACX6C,aAAI,EAAJA,EAAMwC,KAAI,CAACrB,EAAMwL,KAAK,IAAAkH,EAAAsI,EAAA,OACrBzjB,IAAAA,cAAA,MAAI+J,IAAKkK,GACPjU,IAAAA,cAACgG,IAAW8G,EAAAA,GAAAA,GAAA,CACVrI,UAAWuF,KAAW,OAAQ,CAAEkZ,YAAa9O,KACxCA,EACD,CAAElK,KAAKkN,EAAAA,GAAAA,GAAchD,EAAa3L,IAClC,MAEJzI,IAAAA,cAAA,OAAKyE,UAAU,WACbzE,IAAAA,cAAA,OAAKyE,UAAU,QACbzE,IAAAA,cAACkC,IAAW4K,EAAAA,GAAAA,GAAA,GACI,QADJqO,EACL1S,EAAKtD,YAAI,IAAAgW,EAAAA,EAAI3C,GAAiB,CACnC4C,SAAU5C,OAGdxY,IAAAA,cAAA,OAAKyE,UAAU,SAASgE,EAAK6Q,OAE/BtZ,IAAAA,cAAA,OAAKyE,UAAU,QACH,QADSgf,EAClBhb,EAAKib,YAAI,IAAAD,OAAA,EAATA,EAAW3Z,KAAI,CAAC6Z,EAAKC,IACpB5jB,IAAAA,cAAA,QAAM+J,IAAK6Z,EAAUnf,UAAU,OAC5Bkf,MAIP3jB,IAAAA,cAAA,OAAKyE,UAAU,eAAegE,EAAK4S,cAElC,MAMb,OAAKtC,EAKH/Y,IAAAA,cAAA,OAAKyE,UAAU,aACbzE,IAAAA,cAAA,UAAK+B,GAAEL,GAAE2hB,SACRpI,GANIA,CASX,CApDC4I,GAAAN,KAAA/iB,GAAAiG,GAAAC,GAAA+b,GAAAC,GAAA7J,GAAAC,IAAAhY,GAAAwiB,GAAAviB,MAAAC,EAAAA,EAAAA,GAAA6iB,GAAA,CAvBA9rB,GAAc,sBAAuB,CACpCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,KAAU,kBAIVA,GAAS,CAAEmJ,KAAMC,UAAU,6BARP5G,EAAAA,mBAAgBuG,K,gBC9CvC,IAAI+iB,GAA6B,KAgBjCC,eAAeC,OACb,gCACAC,EAAAA,GAAAA,sBAhBK,SAA0BjhB,GAC/B8gB,GAAQ9gB,CACV,KAiBA+gB,eAAeC,OACb,gCACAC,EAAAA,GAAAA,sBAjBK,WACL,MAAMjhB,EAAQ8gB,GAEd,OADAA,GAAQ,KACD9gB,CACT,KAgBA+gB,eAAeC,OACb,iCACAC,EAAAA,GAAAA,sBAhBK,WACLH,GAAQ,IACV,K,4CCTO,MAAM9d,IAAc7D,EAAAA,EAAAA,WAA2B,YAE9CpK,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAA+rB,GAAA,IAAAxrB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAoBvD,MAAAwrB,WAG4B3pB,EAAAA,iBAA+CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAA0rB,GAAA,QAAAxpB,EAAAA,EAAAA,GAAA,KAAAhC,IAAAyrB,GAAA,MAAAC,GAAA,SAAA1pB,EAAAA,EAAAA,GAAA,KAAA/B,IAAA0rB,GAAA,MAAApZ,GAAA,QAAAC,GAAA,mBAEhEmR,GAAS,OAAAre,EAAAA,EAAAA,GAAAxF,GAAA,mBAAT6jB,CAASpe,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,gBAGTqmB,GAAW,OAAAtmB,EAAAA,EAAAA,GAAAtF,GAAA,qBAAX4rB,CAAWrmB,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,SAGXiO,GAAI,OAAAlO,EAAAA,EAAAA,GAAArF,GAAA,cAAJuT,CAAIjO,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,CAEb2B,MAAAA,GACE,OACEE,IAAAA,cAACykB,GAAsB,CACrBlI,UAAWxf,KAAKwf,UAChBiI,YAAaznB,KAAKynB,aAGxB,EAGF,SAASC,GAAsBnqB,GAGR,IAHS,YAC9BkqB,EAAW,UACXjI,GACmBjiB,EAOnB,OANA6J,EAAAA,EAAAA,YAAU,KACiB,iBAAdoY,IACTkC,EAAAA,GAAAA,cAAaC,eAAenC,EAC9B,GACC,CAACA,IAGFvc,IAAAA,cAAA,OAAKyE,UAAU,aACZ8X,GAAaiI,SAAAA,EAAazQ,OACzB/T,IAAAA,cAAA,OAAKyE,UAAU,UACbzE,IAAAA,cAAA,WACGwkB,SAAAA,EAAazQ,OACZ/T,IAAAA,cAAA,MAAIyE,UAAU,eACX+f,EAAY1a,KAAI,CAACrB,EAAMwL,IACtBjU,IAAAA,cAAA,MAAI+J,IAAKkK,GACPjU,IAAAA,cAACgG,GAAW,CAACkE,IAAKzB,EAAKyB,KAAMzB,EAAKuK,UAItC,KACHuJ,EAAYvc,IAAAA,cAAA,UAAKuc,GAAkB,MAEtCvc,IAAAA,cAAA,QAAMsZ,KAAK,aAEX,KACJtZ,IAAAA,cAAA,aAGN,CAlCC0kB,GAAAP,KAAA3jB,GAAA4jB,GAAAC,GAAAC,GAAAC,GAAApZ,GAAAC,IAAAtK,GAAAojB,GAAAnjB,MAAAC,EAAAA,EAAAA,GAAA0jB,GAAA,CArBA3sB,GAAc,2BAA4B,CACzCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,KAAU,gBAGVA,GAAS,CAAEkJ,WAAW,IAAQ,kBAG9BlJ,GAAS,CAAE8H,QAAQ,IAAQ,oBAPFtF,EAAAA,mBAAgBuG,KCjCrC,MAAM4jB,GAAmB,gBAEzB,IAAKjjB,GAAC,SAADA,GAAC,OAADA,EAAC,cAADA,EAAC,sBAADA,EAAC,4BAADA,EAAC,gDAADA,EAAC,wCAADA,EAAC,8CAADA,EAAC,sCAADA,EAAC,sDAADA,EAAC,8CAADA,EAAC,kBAADA,EAAC,4BAADA,EAAC,kBAADA,EAAC,cAADA,EAAC,YAADA,EAAC,gBAADA,CAAC,MCAb,MAkBA,GAlBuB,CACrB,CAACA,GAAEmE,WAAY,YACf,CAACnE,GAAEkE,OAAQ,QACX,CAAClE,GAAEkjB,cAAe,iBAClB,CAACljB,GAAEmjB,wBAAyB,MAC5B,CAACnjB,GAAEojB,oBAAqB,KACxB,CAACpjB,GAAEqjB,uBAAwB,cAC3B,CAACrjB,GAAEsjB,mBAAoB,QACvB,CAACtjB,GAAEujB,2BAA4B,cAC/B,CAACvjB,GAAEwjB,uBAAwB,QAC3B,CAACxjB,GAAEyjB,QAAS,SACZ,CAACzjB,GAAE0jB,OAAQ,QACX,CAAC1jB,GAAE2jB,SAAU,UACb,CAAC3jB,GAAE4jB,cAAe,cAClB,CAAC5jB,GAAE6jB,MAAO,OACV,CAAC7jB,GAAE8jB,SAAU,WCGf,GAlBuB,CACrB,CAAC9jB,GAAEmE,WAAY,KACf,CAACnE,GAAEkE,OAAQ,KACX,CAAClE,GAAEkjB,cAAe,YAClB,CAACljB,GAAEmjB,wBAAyB,WAC5B,CAACnjB,GAAEojB,oBAAqB,KACxB,CAACpjB,GAAEqjB,uBAAwB,cAC3B,CAACrjB,GAAEsjB,mBAAoB,QACvB,CAACtjB,GAAEujB,2BAA4B,cAC/B,CAACvjB,GAAEwjB,uBAAwB,QAC3B,CAACxjB,GAAEyjB,QAAS,KACZ,CAACzjB,GAAE0jB,OAAQ,KACX,CAAC1jB,GAAE2jB,SAAU,IACb,CAAC3jB,GAAE4jB,cAAe,KAClB,CAAC5jB,GAAE6jB,MAAO,IACV,CAAC7jB,GAAE8jB,SAAU,OCXb5tB,EAAAA,EAAAA,gBAAe+sB,GAAkB,CAAEhjB,GAAE,GAAEG,GAAEA,KCGpC,IAAK2jB,GAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,YAAlBA,EAAkB,kBAAlBA,EAAkB,oBAAlBA,EAAkB,YAAlBA,EAAkB,gBAAlBA,EAAkB,oBAAlBA,EAAkB,YAAlBA,CAAkB,MCPvB,IAAK/jB,GAAC,SAADA,GAAC,OAADA,EAAC,cAADA,EAAC,cAADA,CAAC,MAKb,MAUa7J,GAAK,mCAELC,GAAU,CAAE6J,GAZN,CACjB,CAACD,GAAEgkB,OAAQ,eACX,CAAChkB,GAAEikB,OAAQ,iBAUgB7jB,GAPV,CACjB,CAACJ,GAAEgkB,OAAQ,OACX,CAAChkB,GAAEikB,OAAQ,SAOA5jB,GAAIC,EAAAA,KAAKC,UAAU,KAAMpK,I,uCCCtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMoK,IAAcC,EAAAA,EAAAA,WAAyC,WACvD6D,IAAc7D,EAAAA,EAAAA,WAA2B,WACzCiU,IAAiBjU,EAAAA,EAAAA,WAKrB,qBAAsB,CACtBkU,WAAY,cAGRuP,GAAe,QAGfC,GAAc,CAClB,CACEnuB,GAAIkuB,GACJzZ,MAAOpK,GAAEL,GAAEgkB,QAEb,CACEhuB,GARiB,QASjByU,MAAOpK,GAAEL,GAAEikB,UAIP5tB,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAA2tB,GAAA,IAAAptB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAiBvD,MAAAotB,WAG6BvrB,EAAAA,iBAAgDC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAlC,GAAAstB,GAAA,QAAAprB,EAAAA,EAAAA,GAAA,KAAAhC,IAAAqtB,GAAA,MAAAC,GAAA,QAAAC,GAAA,kBAElEC,GAAQ,OAAAloB,EAAAA,EAAAA,GAAAxF,GAAA,kBAAR0tB,CAAQjoB,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,oBAGRkoB,GAAe,OAAAnoB,EAAAA,EAAAA,GAAAtF,GAAA,yBAAfytB,CAAeloB,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,CAExB2B,MAAAA,GACE,OACEE,IAAAA,cAACsmB,GAAuB,CACtBF,SAAUrpB,KAAKqpB,SACfC,gBAAiBtpB,KAAKspB,iBAG5B,EAGF,SAASC,GAAuBhsB,GAGR,IAHS,SAC/B8rB,EAAQ,gBACRC,GACoB/rB,EACpB,MAAO6c,EAAWoP,IAAgB5iB,EAAAA,EAAAA,UAASiiB,IAC3C,OACE5lB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACoW,GAAc,CACbc,KAAM2O,GACN1O,UAAWA,EACXd,WAAape,GAAUsuB,EAAatuB,EAAMsF,OAAO7F,MAElDyf,IAAcyO,GACbQ,EACEpmB,IAAAA,cAAA,MAAIyE,UAAU,SACX2hB,EAAStc,KAAKrB,GACbzI,IAAAA,cAAA,MAAI+J,IAAKtB,EAAKxK,eAAgBwG,UAAU,QACtCzE,IAAAA,cAACgG,GAAW,CACVvB,UAAU,OACVyF,KAAKkN,EAAAA,GAAAA,GAAciP,EAAiB5d,IAEpCzI,IAAAA,cAAA,OAAKyE,UAAU,SAASgE,EAAKO,OAC7BhJ,IAAAA,cAAA,OAAKyE,UAAU,QACbzE,IAAAA,cAACkC,GAAW,CAAC+C,IAAI,OAAOE,KAAK,iBF1FrB,SAC1BqhB,GAIkB,IAHlB5d,EAA0BlO,UAAAqZ,OAAA,QAAA0S,IAAA/rB,UAAA,GAAAA,UAAA,GAAG+qB,GAAmBiB,KAEhDvlB,EAA0BzG,UAAAqZ,OAAA,EAAArZ,UAAA,QAAA+rB,EAE1B,GACED,SAEAA,KAAS,KACTA,IAASG,IAET,OAAO,KAET,MAAMC,EAAI5e,GAAOwe,GACXze,EAAMC,KAAS8V,IA3BH,GA4BZ+I,EAAiB,SAAT1lB,EAAkB,KAAO,WACjC2lB,EAAU9kB,EAAAA,KAAKD,EACnB,GAAG4iB,MAA6B,SAATxjB,EAAkBO,GAAEojB,mBAAqBpjB,GAAEmjB,0BAE9DkC,EAAS/kB,EAAAA,KAAKD,EAClB,GAAG4iB,MAA6B,SAATxjB,EAAkBO,GAAEsjB,kBAAoBtjB,GAAEqjB,yBAE7DiC,EAAWhlB,EAAAA,KAAKD,EACpB,GAAG4iB,MAA6B,SAATxjB,EAAkBO,GAAEwjB,sBAAwBxjB,GAAEujB,6BAEjEgC,EAAoB,SAAT9lB,EAAkB,KAAO,cAE1C,IAAI6R,EA4CJ,OAAQpK,GACN,KAAK6c,GAAmByB,KACtBlU,EAAO4T,EAAEhe,OAAOie,GAChB,MACF,KAAKpB,GAAmB0B,QACtBnU,EAAO4T,EAAEhe,OAAOqe,GAChB,MACF,KAAKxB,GAAmB2B,SAAU,CAChC,MAAMC,GAAQT,GAAK7e,EACnBiL,EACEqU,GAAQ,EACJrf,GAAAA,SAAgBqf,GAAMC,UAAS,GAC/BtlB,EAAAA,KAAKD,EAAE,GAAG4iB,MAAoBjjB,GAAEkjB,eAAgB,CAC9C4B,KAAMxe,GAAAA,SAAgBqf,GAAMC,aAEpC,KACF,CACA,KAAK7B,GAAmB8B,KACtBvU,EAAOhL,GAAAA,SAAgBwf,KAAKjb,KAAKqa,GAAK7e,EAAK,IAAIuf,UAAS,GACxD,MACF,KAAK7B,GAAmBgC,OACtBzU,EAAOhR,EAAAA,KAAKD,EAAE,GAAG4iB,MAAoBjjB,GAAEkjB,eAAgB,CACrD4B,KAAMxe,GAAAA,SAAgBwf,KAAKhb,KAAKoa,GAAK7e,EAAK,IAAIuf,aAEhD,MACF,KAAK7B,GAAmBiC,SACtB1U,EA/DoB2U,MACtB,MAAMN,GAAQT,EAAES,KAAKtf,EAAK,QAAQ,GAAM6f,QAAQ,GAChD,IAAIC,EAAQ,GACZ,MAAMC,EACJlB,EAAEmB,OAAShgB,EAAIggB,OACX,WACAV,GAAQ,GAAKT,EAAEoB,SAASjgB,EAAIG,QAAQ4V,KAAK,EAAG,OAAQ,OAClD,gBACA8I,EAAEqB,OAAOlgB,EAAIG,QAAQ4V,KAAK,EAAG,OAAQ,OACnC,YACA8I,EAAEqB,OAAOlgB,EAAK,OACZ,UACAsf,EAAO,GAAKT,EAAEqB,OAAOlgB,EAAIG,QAAQ4V,IAAI,EAAG,OAAQ,OAC9C,UACAuJ,EAAO,EACL,WACA,UAChB,OAAQS,GACN,IAAK,UACL,IAAK,YACHD,EAAQ,GAAG7lB,EAAAA,KAAKD,EAAE,GAAG4iB,MAA+B,cAAXmD,EAAyBpmB,GAAEmE,UAAYnE,GAAEkE,WACvE,SAATzE,EAAkB,GAAK,IAAIylB,EAAEhe,OA7BjB,aA+Bd,MACF,IAAK,WAML,QACEif,EAAQjB,EAAEhe,OAAOie,SAJnB,IAAK,gBACHgB,EAAQjB,EAAEhe,OAAOoe,GAMrB,OAAOa,CAAK,EA6BHF,GACP,MACF,QACE3U,EAAO4T,EAAEhe,OAAOge,EAAEmB,SAAWhgB,EAAIggB,OAAShB,EAASD,GAEvD,OAAO9T,CACT,CEbqBkV,CAAazf,EAAKE,UAAW8c,GAAmB2B,gBAO3DpnB,IAAAA,cAAA,OAAKyE,UAAU,WACbzE,IAAAA,cAACkC,GAAW,CAAC+C,IAAI,OAAOE,KAAK,qBAAqBoF,UAAQ,KAG5D,KAGV,CAxCC4d,GAAApC,KAAAvlB,GAAAwlB,GAAAC,GAAAC,GAAAC,IAAArlB,GAAAglB,GAAA/kB,MAAAC,EAAAA,EAAAA,GAAAmnB,GAAA,CAlBApwB,GAAc,4BAA6B,CAC1CuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,eAG9BlJ,KAAU,+BAJgBwC,EAAAA,mBAAgBuG,K,kDC9D7C,MAAQhJ,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAiwB,GAAA,IAAA1vB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAA0vB,GAAA,IAAAzuB,QAAA0uB,GAAA,IAAA3vB,QA2B9D,MAAA4vB,WAGsB/tB,EAAAA,iBAAyCC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA0tB,KAAAztB,EAAAA,EAAAA,GAAA,KAAAlC,GAAA8vB,GAAA,QAAA5tB,EAAAA,EAAAA,GAAA,KAAAhC,IAAA6vB,GAAA,MAAAC,GAAA,SAAA9tB,EAAAA,EAAAA,GAAA,KAAA/B,IAAA8vB,GAAA,MAAAC,GAAA,SAU7DhuB,EAAAA,EAAAA,GAAA,KAAA0tB,IAAeO,GAAA,MAAIC,IACjB/rB,KAAKoa,UAAY2R,EAAIpxB,IACrBoF,EAAAA,EAAAA,GAAAurB,GAAAtrB,KAAKgsB,IAAU9rB,KAAK6rB,EAAI,GACxB,SAXO5R,GAAI,OAAAhZ,EAAAA,EAAAA,GAAAxF,GAAA,cAAJwe,CAAI/Y,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,cAGJgZ,GAAS,OAAAjZ,EAAAA,EAAAA,GAAAtF,GAAA,mBAATue,CAAShZ,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,CAUlB2B,MAAAA,GACE,OACEE,IAAAA,cAACgpB,GAAgB,CACf9R,KAAMna,KAAKma,KACXC,UAAWpa,KAAKoa,UAChBd,YAAYnY,EAAAA,EAAAA,GAAKoqB,GAALvrB,OAGlB,EAOF,SAASisB,GAAgB1uB,GAIC,IAJA,KACxB4c,EAAI,UACJC,EAAS,WACTd,GACsB/b,EACtB,OACE0F,IAAAA,cAAA,MAAIyE,UAAU,OAAOwkB,KAAK,QACvB/R,aAAI,EAAJA,EAAMpN,KAAKgf,GACV9oB,IAAAA,cAAA,MACE+J,IAAK+e,EAAIpxB,GACTuxB,KAAK,MACLxkB,UAAWuF,KAAW,MAAO,CAAEC,OAAQ6e,EAAIpxB,KAAOyf,KAElDnX,IAAAA,cAAA,KAAGgF,QAASA,IAAMqR,EAAWyS,IAAOA,EAAI3c,UAKlD,CAxBC+c,GAAAX,KAAA/nB,GAAAgoB,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAI,GAAAN,IAAA/nB,GAAAsnB,GAAArnB,MAAAC,EAAAA,EAAAA,GAAAkoB,GAAA,CA3BAnxB,GAAc,qBAAsB,CACnCuN,WAAY,CAACC,GAAAA,MACb,EAECvN,GAAS,CAAEkJ,WAAW,IAAQ,WAG9BlJ,GAAS,CAAEkJ,WAAW,IAAQ,gBAG9BjJ,GAAM,CAAEkJ,KAAM,cAAc,aAAAG,IAAApD,EAAAA,EAAAA,GAAArF,GAAAyI,GAAA,CAAAA,EAAAnD,KAAAC,EAAAA,EAAAA,GAAAvF,GAAAyI,EAAAnD,KAAA,GAAAoD,GAAA+mB,GAAA9mB,KAAAC,EAAAA,EAAAA,GAAAF,KAPT/G,EAAAA,mBAAgBuG,I,sEClClCxJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,yYAA0Y,KAEnb,QAAeH,EAAwBI,U,sECJnCJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,41BAC2E,KAEpH,QAAeH,EAAwBI,U,2HCLnCJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,2FAA4F,KAErI,QAAeH,EAAwBI,U,mGCHnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA4L4xB,siCAE+d,KAEpsB,QAAe/xB,EAAwBI,U,wJCRnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,w4BAAw4B4xB,4NAA8P,KAE/qC,QAAe/xB,EAAwBI,U,mGCNnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,+GAA+G4xB,k/BACqR,KAE7a,QAAe/xB,EAAwBI,U,2HCRnCJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,g7BACu0B,KAEh3B,QAAeH,EAAwBI,U,mGCJnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,uIAAuI4xB,+tBAAiwB,KAEj7B,QAAe/xB,EAAwBI,U,2HCPnCJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,k6BAAm6B,KAE58B,QAAeH,EAAwBI,U,mGCHnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,kEAAkE4xB,4IAA8K,KAEzR,QAAe/xB,EAAwBI,U,mGCNnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA4L4xB,++CAAihD,KAEtvD,QAAe/xB,EAAwBI,U,mGCNnCyxB,EAAgC,IAAIC,IAAI,cACxC9xB,EAA0B,IAA4B,KACtD+xB,EAAqC,IAAgCF,GAEzE7xB,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA4L4xB,4+CAEk5B,KAEvnC,QAAe/xB,EAAwBI,U","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/chat-history/i18n.ts","webpack:///./src/chat-history/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/page-container/index.tsx","webpack:///../../../src/i18n/constants.ts","webpack:///../../../../src/i18n/locales/en.ts","webpack:///../../../../src/i18n/locales/zh.ts","webpack:///../../../src/i18n/index.ts","webpack:///../../src/humanizeTime.ts","webpack:///./src/project-summary/i18n.ts","webpack:///./src/project-summary/index.tsx","webpack:///./src/tab-list/index.tsx","webpack:///./src/tab-list/styles.shadow.css","webpack:///./src/chat-history/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/page-container/styles.shadow.css","webpack:///./src/project-summary/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { Job, TaskBaseDetail, FeedbackDetail } from \"./interfaces.js\";\nimport { LegacyCruiseCanvasComponent } from \"./LegacyCruiseCanvas.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type { RequestStore } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n}\n\nconst ForwardedLegacyCruiseCanvasComponent = forwardRef(\n LegacyCruiseCanvasComponent\n);\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n @property()\n accessor taskId: string | undefined;\n\n @property({ attribute: false })\n accessor task: TaskBaseDetail | undefined;\n\n @property({ attribute: false })\n accessor jobs: Job[] | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n const Component = this.conversationId\n ? ForwardedCruiseCanvasComponent\n : ForwardedLegacyCruiseCanvasComponent;\n return (\n <Component\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n ref={this.#ref}\n />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n}\n\nexport interface Suggestion {\n title: string;\n content: string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n onSubmit={this.#handleMessageSubmit}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit?: (value: string) => void;\n}\n\nexport function ChatBoxComponent({\n disabled,\n placeholder,\n autoFocus,\n onSubmit,\n}: ChatBoxComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit?.(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit?.(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n}\n\nconst en: Locale = {\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n};\n\nconst zh: Locale = {\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-history\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","// istanbul ignore file: experimental\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport moment from \"moment\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatHistoryProps {\n list?: HistoryItem[];\n actions?: ActionType[];\n nextToken?: string;\n}\n\nexport interface HistoryItem {\n id: string;\n url: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\n/**\n * 构件 `ai-portal.chat-history`\n */\nexport\n@defineElement(\"ai-portal.chat-history\", {\n styleTexts: [styleText],\n})\nclass ChatHistory extends ReactNextElement implements ChatHistoryProps {\n @property({ attribute: false })\n accessor list: HistoryItem[] | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property()\n accessor nextToken: string | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"load.more\" })\n accessor #loadMore!: EventEmitter<{ nextToken: string }>;\n\n #handleLoadMore = (nextToken: string) => {\n this.#loadMore.emit({ nextToken });\n };\n\n render() {\n return (\n <ChatHistoryComponent\n root={this}\n list={this.list}\n actions={this.actions}\n nextToken={this.nextToken}\n onActionClick={this.#handleActionClick}\n onLoadMore={this.#handleLoadMore}\n />\n );\n }\n}\n\nexport interface ChatHistoryComponentProps extends ChatHistoryProps {\n root: HTMLElement;\n onActionClick: (detail: ActionClickDetail) => void;\n onLoadMore: (nextToken: string) => void;\n}\n\ninterface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport function ChatHistoryComponent({\n root,\n list,\n actions,\n nextToken,\n onActionClick,\n onLoadMore,\n}: ChatHistoryComponentProps) {\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n if (!next || !nextToken) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n onLoadMore(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, onLoadMore, root]);\n\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n );\n }\n\n return (\n <>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n active: actionsVisible === item.id,\n })}\n url={item.url}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport logoImage from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * Elevo Logo\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return <ElevoLogoComponent />;\n }\n}\n\nfunction ElevoLogoComponent() {\n return <img src={logoImage} alt=\"Elevo\" width={95} height={28} />;\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport ElevoLogo from \"../elevo-logo/images/logo@2x.png\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n type Project,\n type ProjectActionClickDetail,\n} from \"./ChatHistory.js\";\nimport {\n LegacyChatHistory,\n type LegacyActionClickDetail,\n} from \"./LegacyChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n /** @deprecated */\n legacy?: boolean;\n username?: string;\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n logoUrl?: string;\n newChatUrl?: string;\n newChatLinkWhenCollapsed?: boolean;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n links?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon: GeneralIconProps;\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n /** @deprecated */\n @property({ type: Boolean })\n accessor legacy = true;\n\n @property()\n accessor username: string | undefined;\n\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property({ type: Boolean })\n accessor newChatLinkWhenCollapsed: boolean | undefined;\n\n @property()\n accessor historyActiveId: string | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property()\n accessor projectActiveId: string | undefined;\n\n @property()\n accessor projectUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor projectActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<\n ActionClickDetail | LegacyActionClickDetail\n >;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #handleLegacyActionClick = (detail: LegacyActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"project.action.click\" })\n accessor #projectActionClick!: EventEmitter<ProjectActionClickDetail>;\n\n #handleProjectActionClick = (detail: ProjectActionClickDetail) => {\n this.#projectActionClick.emit(detail);\n };\n\n @event({ type: \"add.project\" })\n accessor #addProject!: EventEmitter<void>;\n\n #handleAddProject = () => {\n this.#addProject.emit();\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n @method()\n removeProject(projectId: string) {\n this.#ref.current?.removeProject?.(projectId);\n }\n\n @method()\n addProject(project: Project) {\n this.#ref.current?.addProject?.(project);\n }\n\n @method()\n moveConversation(conversationId: string) {\n this.#ref.current?.moveConversation?.(conversationId);\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n legacy={this.legacy}\n username={this.username}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n newChatLinkWhenCollapsed={this.newChatLinkWhenCollapsed}\n historyActiveId={this.historyActiveId}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n projectActiveId={this.projectActiveId}\n projectUrlTemplate={this.projectUrlTemplate}\n projectActions={this.projectActions}\n links={this.links}\n onLogout={this.#handleLogout}\n onLegacyActionClick={this.#handleLegacyActionClick}\n onActionClick={this.#handleActionClick}\n onProjectActionClick={this.#handleProjectActionClick}\n onAddProject={this.#handleAddProject}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n onLegacyActionClick: (detail: LegacyActionClickDetail) => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n legacy,\n username,\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n newChatLinkWhenCollapsed,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n projectActiveId,\n projectUrlTemplate,\n projectActions,\n links,\n onLogout,\n onActionClick,\n onLegacyActionClick,\n onProjectActionClick,\n onAddProject,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n removeProject: (projectId: string) => {\n historyRef.current?.removeProject?.(projectId);\n },\n addProject: (project: Project) => {\n historyRef.current?.addProject?.(project);\n },\n moveConversation: (conversationId: string) => {\n historyRef.current?.moveConversation?.(conversationId);\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n {newChatLinkWhenCollapsed && (\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n )}\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <img\n className=\"logo\"\n alt=\"Elevo\"\n src={ElevoLogo}\n width={95}\n height={28}\n />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <WrappedLink className=\"link\" key={index} url={link.url}>\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n ))}\n </div>\n ) : null}\n {legacy ? (\n <LegacyChatHistory\n ref={historyRef}\n activeId={historyActiveId}\n urlTemplate={historyUrlTemplate}\n actions={historyActions}\n onActionClick={onLegacyActionClick}\n onHistoryClick={handleHistoryClick}\n />\n ) : (\n <ChatHistory\n ref={historyRef}\n username={username}\n historyActiveId={historyActiveId}\n historyUrlTemplate={historyUrlTemplate}\n historyActions={historyActions}\n projectActiveId={projectActiveId}\n projectUrlTemplate={projectUrlTemplate}\n projectActions={projectActions}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n onProjectActionClick={onProjectActionClick}\n onAddProject={onAddProject}\n />\n )}\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant =\n | \"default\"\n | \"light\"\n | \"mini\"\n | \"mini-light\"\n | \"bordered\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({ icon, tooltip, disabled }: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return <WrappedTooltip content={tooltip}>{btn}</WrappedTooltip>;\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n EXPLORE_EXCELLENT_CASES = \"EXPLORE_EXCELLENT_CASES\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n [K.EXPLORE_EXCELLENT_CASES]: \"Explore excellent cases\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n [K.EXPLORE_EXCELLENT_CASES]: \"探索优秀案例\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\nimport bg from \"./images/bg.png\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCase[];\n taskUrlTemplate?: string;\n}\n\nexport interface ShowCase {\n taskId: string;\n title: string;\n summary: string;\n scenario: string;\n thumbUrl?: string;\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCase[] | undefined;\n\n @property()\n accessor taskUrlTemplate: string | undefined;\n\n render() {\n return (\n <ShowCasesComponent\n list={this.list}\n taskUrlTemplate={this.taskUrlTemplate}\n />\n );\n }\n}\n\nfunction ShowCasesComponent({ list, taskUrlTemplate }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<string[]>(() => {\n return [\"\", ...new Set(list?.map((item) => item.scenario).filter(Boolean))];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState(\"\");\n\n const filteredList = useMemo(() => {\n if (!activeGroup) {\n return list;\n }\n return list?.filter((item) => item.scenario === activeGroup);\n }, [activeGroup, list]);\n\n const tabs = useMemo<Tab[]>(() => {\n return groups.map((group) => ({\n id: group,\n label: group === \"\" ? t(K.ALL) : group,\n }));\n }, [groups]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <div className=\"tips\">{`${t(K.EXPLORE_EXCELLENT_CASES)} ↓`}</div>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeGroup}\n onTabClick={(event) => setActiveGroup(event.detail.id)}\n />\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.taskId} className=\"item\">\n <WrappedLink\n className=\"link\"\n url={parseTemplate(taskUrlTemplate, item)}\n >\n <span\n className=\"thumbnail\"\n style={{\n backgroundImage: [\n ...(item.thumbUrl\n ? [`url(${getBasePath()}${item.thumbUrl})`]\n : []),\n `url(${bg})`,\n ].join(\", \"),\n }}\n >\n {!item.thumbUrl && (\n <>\n <span className=\"quote\" />\n <span className=\"text\">{item.summary}</span>\n </>\n )}\n </span>\n <span className=\"title\">\n <span>{item.title}</span>\n </span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <McpToolsComponent list={this.list} withContainer={this.withContainer} />\n );\n }\n}\n\nfunction McpToolsComponent({ list, withContainer }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [\"\", ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState(\"\");\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (!activePlatform) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n const tabs = useMemo<Tab[]>(() => {\n return platforms.map((platform) => ({\n id: platform,\n label: platform === \"\" ? t(K.ALL) : platform,\n }));\n }, [platforms]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activePlatform}\n onTabClick={(event) => setActivePlatform(event.detail.id)}\n />\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_HUB)}</h1>\n {node}\n </div>\n );\n}\n","// istanbul ignore file: experimental\nimport React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { getRuntime, handleHttpError } from \"@next-core/runtime\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { NS, locales } from \"./i18n.js\";\nimport { useTaskDetail } from \"../cruise-canvas/useTaskDetail.js\";\nimport { useChatStream } from \"./useChatStream.js\";\nimport styles from \"./styles.module.css\";\nimport { WrappedIcon, WrappedIconButton } from \"../shared/bricks.js\";\nimport { UserMessage } from \"./UserMessage/UserMessage.js\";\nimport { AssistantMessage } from \"./AssistantMessage/AssistantMessage.js\";\nimport { TaskContext } from \"../shared/TaskContext.js\";\nimport { ChatBox } from \"../shared/ChatBox/ChatBox.js\";\nimport { DONE_STATES, ICON_CANVAS } from \"../shared/constants.js\";\nimport { ExpandedView } from \"../shared/ExpandedView/ExpandedView.js\";\nimport { ReplayToolbar } from \"../shared/ReplayToolbar/ReplayToolbar.js\";\nimport { Aside } from \"./Aside/Aside.js\";\nimport { StreamContext } from \"./StreamContext.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { NodeFeedback } from \"../shared/NodeFeedback/NodeFeedback.js\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_SHARE: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"share\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n taskId?: string;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n}\n\nconst ChatStreamComponent = forwardRef(LegacyChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor taskId: string | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ChatStreamComponent\n taskId={this.taskId}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n />\n );\n }\n}\n\ninterface ChatStreamComponentProps extends ChatStreamProps {\n onShare: () => void;\n onTerminate: () => void;\n onSubmitFeedback: (detail: FeedbackDetail) => void;\n onSwitchToCanvas: () => void;\n onFeedbackOnView: (viewId: string) => void;\n}\n\ninterface ChatStreamRef {\n resumed: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n\nfunction LegacyChatStreamComponent(\n {\n taskId,\n replay,\n replayDelay,\n supports,\n showFeedback: propShowFeedback,\n showFeedbackAfterFailed,\n showFeedbackOnView,\n showUiSwitch,\n onShare,\n onTerminate,\n onSubmitFeedback,\n onSwitchToCanvas,\n onFeedbackOnView,\n }: ChatStreamComponentProps,\n ref: React.Ref<ChatStreamRef>\n) {\n const {\n task,\n jobs,\n error,\n humanInputRef,\n resumedRef,\n skipToResults,\n watchAgain,\n } = useTaskDetail(taskId, replay, replayDelay);\n const pageTitle = task?.title ?? \"\";\n const taskState = task?.state;\n const taskDone = DONE_STATES.includes(taskState!);\n const { messages, inputRequiredJobId, lastToolCallJobId } = useChatStream(\n task,\n jobs\n );\n\n const views = useMemo(() => {\n return jobs?.flatMap((job) =>\n job.generatedView\n ? {\n id: job.id,\n view: job.generatedView,\n }\n : []\n );\n }, [jobs]);\n\n const [submittingFeedback, setSubmittingFeedback] = useState(false);\n const [submittedFeedback, setSubmittedFeedback] = useState(false);\n const [showFeedback, setShowFeedback] = useState<boolean>(!!propShowFeedback);\n useEffect(() => {\n setShowFeedback(!!propShowFeedback);\n }, [propShowFeedback]);\n const [feedbackDoneViews, setFeedbackDoneViews] = useState<\n Set<string> | undefined\n >();\n\n const handleSubmitFeedback = useCallback(\n (detail: FeedbackDetail) => {\n setSubmittingFeedback(true);\n onSubmitFeedback(detail);\n },\n [onSubmitFeedback]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n resumed: () => resumedRef.current?.(),\n feedbackSubmitDone: () => {\n setSubmittedFeedback(true);\n setTimeout(() => {\n setShowFeedback(false);\n }, 3000);\n },\n feedbackSubmitFailed: () => {\n setSubmittingFeedback(false);\n },\n feedbackOnViewDone: (viewId: string) => {\n setFeedbackDoneViews((prev) => {\n const newSet = new Set(prev);\n newSet.add(viewId);\n return newSet;\n });\n },\n }),\n [resumedRef]\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeToolCallJobId, setActiveToolCallJobId] = useState<string | null>(\n null\n );\n const [userClosedAside, setUserClosedAside] = useState(false);\n // Delay flag to prevent aside from auto opened for a completed task\n const delayRef = useRef(false);\n\n const taskAvailable = !!task;\n useEffect(() => {\n if (taskAvailable) {\n const timer = setTimeout(() => {\n delayRef.current = true;\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [taskAvailable]);\n\n useEffect(() => {\n if (delayRef.current && lastToolCallJobId && !userClosedAside) {\n setActiveToolCallJobId(lastToolCallJobId);\n }\n }, [lastToolCallJobId, userClosedAside]);\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n useEffect(() => {\n if (error) {\n handleHttpError(error);\n }\n }, [error]);\n\n const humanInput = useCallback(\n (jobId: string, input: string) => {\n humanInputRef.current?.(jobId, input);\n },\n [humanInputRef]\n );\n\n const taskContextValue = useMemo(\n () => ({\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n activeToolCallJobId,\n setActiveToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n onSubmitFeedback: handleSubmitFeedback,\n setShowFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n }),\n [\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n activeToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n handleSubmitFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n ]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastToolCallJobId,\n setUserClosedAside,\n }),\n [lastToolCallJobId]\n );\n\n const detectScrolledUpRef = useRef(false);\n const manualScrolledRef = useRef(false);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [scrollable, setScrollable] = useState(false);\n\n useEffect(() => {\n const scrollContainer = scrollContainerRef.current;\n const contentContainer = scrollContainer?.firstElementChild;\n if (manualScrolledRef.current || !scrollContainer || !contentContainer) {\n return;\n }\n\n const handleScroll = () => {\n setScrollable(\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 24 <\n scrollContainer.scrollHeight\n );\n if (!detectScrolledUpRef.current) {\n return;\n }\n manualScrolledRef.current =\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 6 <\n scrollContainer.scrollHeight;\n };\n scrollContainer.addEventListener(\"scroll\", handleScroll);\n\n let timer: ReturnType<typeof setTimeout>;\n const observer = new ResizeObserver(() => {\n if (manualScrolledRef.current) {\n return;\n }\n detectScrolledUpRef.current = false;\n // Scroll to the bottom of the content container\n scrollContainer.scrollTo({\n top: contentContainer.scrollHeight,\n behavior: \"instant\",\n });\n clearTimeout(timer);\n timer = setTimeout(() => {\n detectScrolledUpRef.current = true;\n }, 100);\n });\n observer.observe(contentContainer);\n\n return () => {\n observer.disconnect();\n scrollContainer.removeEventListener(\"scroll\", handleScroll);\n };\n }, [taskAvailable]);\n\n const scrollToBottom = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n scrollContainer?.scrollTo({\n top: scrollContainer?.scrollHeight,\n behavior: \"instant\",\n });\n }, []);\n\n const activeToolCallJob = useMemo(() => {\n if (!activeToolCallJobId) {\n return null;\n }\n return jobs?.find((job) => job.id === activeToolCallJobId);\n }, [activeToolCallJobId, jobs]);\n\n return (\n <TaskContext.Provider value={taskContextValue}>\n <StreamContext.Provider value={streamContextValue}>\n <div className={styles.container}>\n <div className={styles.header}>\n <div className={styles.left} />\n <h1>{pageTitle}</h1>\n <div className={styles.right}>\n {showUiSwitch && (\n <WrappedIconButton\n icon={ICON_CANVAS}\n variant=\"mini\"\n style={{\n transform: \"rotate(90deg)\",\n }}\n onClick={onSwitchToCanvas}\n />\n )}\n <WrappedIconButton\n icon={ICON_SHARE}\n variant=\"mini\"\n onClick={onShare}\n />\n </div>\n </div>\n {taskAvailable ? (\n <>\n <div className={styles.main} ref={scrollContainerRef}>\n <div className={styles.narrow}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage content={msg.content} />\n ) : (\n <AssistantMessage\n jobs={msg.jobs}\n taskState={taskState}\n isLatest={index === list.length - 1}\n />\n )}\n </div>\n ))}\n {showFeedback &&\n (taskState === \"completed\" ||\n (taskState === \"failed\" && showFeedbackAfterFailed)) && (\n <NodeFeedback className={styles.feedback} />\n )}\n </div>\n </div>\n <div\n className={styles[\"scroll-down\"]}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </div>\n </>\n ) : (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n {replay || supports?.chat ? (\n <div className={styles.footer}>\n <div className={styles.narrow}>\n {replay ? (\n <ReplayToolbar\n taskDone={taskDone}\n skipToResults={skipToResults}\n watchAgain={watchAgain}\n />\n ) : (\n <ChatBox\n state={taskState}\n canChat={taskDone && !!inputRequiredJobId}\n inputRequiredJobId={inputRequiredJobId}\n />\n )}\n </div>\n </div>\n ) : null}\n </div>\n <div\n className={classNames(styles.aside, {\n [styles.expanded]: !!activeToolCallJob,\n })}\n >\n {activeToolCallJob && <Aside job={activeToolCallJob!} />}\n </div>\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n </StreamContext.Provider>\n </TaskContext.Provider>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n UNTITLED: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n avatar?: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIEmployeesComponent\n list={this.list}\n industries={this.industries}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n urlTemplate,\n withContainer,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const tabs = useMemo<Tab[]>(() => {\n return industries.map((industry) => ({\n id: industry,\n label: industry || t(K.UNTITLED),\n }));\n }, [industries]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeIndustry}\n onTabClick={(event) => setActiveIndustry(event.detail.id)}\n />\n <ul className=\"groups\">\n {groups.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"avatar\">\n {item.avatar ? (\n <img src={item.avatar} />\n ) : (\n <WrappedIcon lib=\"antd\" icon=\"user\" />\n )}\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n {node}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIAgentsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIAgentsComponent({\n list,\n urlTemplate,\n withContainer,\n}: AIAgentsProps) {\n const node = (\n <>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n {node}\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\n);\n","import React, { useEffect } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport \"@next-core/theme\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport styleText from \"./styles.shadow.css\";\n\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PageContainerProps {\n pageTitle?: string;\n breadcrumbs?: Breadcrumb[];\n size?: \"medium\" | \"small\";\n}\n\nexport interface Breadcrumb {\n text: string;\n url: string;\n}\n\n/**\n * 构件 `ai-portal.page-container`\n *\n * @slot - 内容\n * @slot toolbar - 工具栏\n */\nexport\n@defineElement(\"ai-portal.page-container\", {\n styleTexts: [styleText],\n})\nclass PageContainer extends ReactNextElement implements PageContainerProps {\n @property()\n accessor pageTitle: string | undefined;\n\n @property({ attribute: false })\n accessor breadcrumbs: Breadcrumb[] | undefined;\n\n @property({ render: false })\n accessor size: \"medium\" | \"small\" | undefined;\n\n render() {\n return (\n <PageContainerComponent\n pageTitle={this.pageTitle}\n breadcrumbs={this.breadcrumbs}\n />\n );\n }\n}\n\nfunction PageContainerComponent({\n breadcrumbs,\n pageTitle,\n}: PageContainerProps) {\n useEffect(() => {\n if (typeof pageTitle === \"string\") {\n getRuntime().applyPageTitle(pageTitle);\n }\n }, [pageTitle]);\n\n return (\n <div className=\"container\">\n {pageTitle || breadcrumbs?.length ? (\n <div className=\"header\">\n <nav>\n {breadcrumbs?.length ? (\n <ul className=\"breadcrumbs\">\n {breadcrumbs.map((item, index) => (\n <li key={index}>\n <WrappedLink url={item.url}>{item.text}</WrappedLink>\n </li>\n ))}\n </ul>\n ) : null}\n {pageTitle ? <h1>{pageTitle}</h1> : null}\n </nav>\n <slot name=\"toolbar\" />\n </div>\n ) : null}\n <slot />\n </div>\n );\n}\n","export const NS_LIBS_DATETIME = \"libs-datetime\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n FUTURE_AFTER = \"FUTURE_AFTER\",\n FORMAT_MEDIUM_DATETIME = \"FORMAT_MEDIUM_DATETIME\",\n FORMAT_MEDIUM_DATE = \"FORMAT_MEDIUM_DATE\",\n FORMAT_SHORT_DATETIME = \"FORMAT_SHORT_DATETIME\",\n FORMAT_SHORT_DATE = \"FORMAT_SHORT_DATE\",\n FORMAT_SHORT_DAY_DATETIME = \"FORMAT_SHORT_DAY_DATETIME\",\n FORMAT_SHORT_DAY_DATE = \"FORMAT_SHORT_DAY_DATE\",\n SECONDS = \"SECONDS\",\n MILL_SECONDS = \"MILL_SECONDS\",\n MINUTES = \"MINUTES\",\n HOURS = \"HOURS\",\n DAYS = \"DARS\",\n MONTHS = \"MONTHS\",\n}\n\nexport type Locale = { [key in K]: string };\n","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"Yesterday\",\n [K.TODAY]: \"Today\",\n [K.FUTURE_AFTER]: \"After {{time}}\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LLL\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMM D ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMM D\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMM D HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMM D\",\n [K.MONTHS]: \"months\",\n [K.HOURS]: \"hours\",\n [K.SECONDS]: \"seconds\",\n [K.MILL_SECONDS]: \"millseconds\",\n [K.DAYS]: \"days\",\n [K.MINUTES]: \"minutes\",\n};\n\nexport default locale;\n","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"昨天\",\n [K.TODAY]: \"今天\",\n [K.FUTURE_AFTER]: \"{{time}}后\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LL ah:mm\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMMD日 ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMMD日\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMMD日 HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMMD日\",\n [K.MONTHS]: \"个月\",\n [K.HOURS]: \"小时\",\n [K.SECONDS]: \"秒\",\n [K.MILL_SECONDS]: \"毫秒\",\n [K.DAYS]: \"天\",\n [K.MINUTES]: \"分钟\",\n};\n\nexport default locale;\n","import { initializeI18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME } from \"./constants.js\";\nimport en from \"./locales/en.js\";\nimport zh from \"./locales/zh.js\";\n\nexport function addResourceBundle(): void {\n initializeI18n(NS_LIBS_DATETIME, { en, zh });\n}\n","import moment from \"moment\";\nimport { i18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME, K } from \"./i18n/constants.js\";\nimport { addResourceBundle } from \"./i18n/index.js\";\n\naddResourceBundle();\n\nconst TIME_OFFSET = 0;\n\nexport enum HumanizeTimeFormat {\n full = \"full\",\n default = \"default\",\n relative = \"relative\",\n past = \"past\",\n future = \"future\",\n accurate = \"accurate\",\n auto = \"auto\",\n}\n\nexport const humanizeTime = (\n time: moment.MomentInput,\n format: HumanizeTimeFormat = HumanizeTimeFormat.auto,\n /** 默认为 \"datetime\" */\n type?: \"datetime\" | \"date\"\n): string | null => {\n if (\n time === undefined ||\n time === null ||\n time === -Infinity ||\n time === Infinity\n ) {\n return null;\n }\n const m = moment(time);\n const now = moment().add(TIME_OFFSET);\n const fFull = type === \"date\" ? \"LL\" : \"LL HH:mm\";\n const fMedium = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_MEDIUM_DATE : K.FORMAT_MEDIUM_DATETIME}`\n );\n const fShort = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DATE : K.FORMAT_SHORT_DATETIME}`\n );\n const fShort24 = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DAY_DATE : K.FORMAT_SHORT_DAY_DATETIME}`\n );\n const fDefault = type === \"date\" ? \"LL\" : \"LL HH:mm:ss\";\n const fHourMinute = \"HH:mm\";\n let text;\n\n /* 用于精确显示时间的参数\n * 今天与昨天,显示:今天(昨天)x:x的格式,如:今天12:21、昨天16:33\n * 昨天以前的时间,显示:x月x日x时:x分,如:11月23日11:22\n * 今年以前的时间,显示:x年x月x日x时:x分,如:2016年11月11日11:11\n */\n const getAccurateTime = () => {\n const diff = +m.diff(now, \"days\", true).toFixed(1);\n let _text = \"\";\n const retVal =\n m.year() < now.year()\n ? \"lastYear\"\n : diff < -2 || m.isBefore(now.clone().add(-1, \"day\"), \"day\")\n ? \"twoDaysBefore\"\n : m.isSame(now.clone().add(-1, \"day\"), \"day\")\n ? \"yesterday\"\n : m.isSame(now, \"day\")\n ? \"sameDay\"\n : diff < 2 && m.isSame(now.clone().add(1, \"day\"), \"day\")\n ? \"nextDay\"\n : diff < 7\n ? \"nextWeek\"\n : \"default\";\n switch (retVal) {\n case \"sameDay\":\n case \"yesterday\":\n _text = `${i18n.t(`${NS_LIBS_DATETIME}:${retVal === \"yesterday\" ? K.YESTERDAY : K.TODAY}`)}${\n type === \"date\" ? \"\" : ` ${m.format(fHourMinute)}`\n }`;\n break;\n case \"lastYear\":\n _text = m.format(fFull);\n break;\n case \"twoDaysBefore\":\n _text = m.format(fShort24);\n break;\n default:\n _text = m.format(fFull);\n }\n\n return _text;\n };\n\n switch (format) {\n case HumanizeTimeFormat.full:\n text = m.format(fFull);\n break;\n case HumanizeTimeFormat.default:\n text = m.format(fDefault);\n break;\n case HumanizeTimeFormat.relative: {\n const diff = +m - +now;\n text =\n diff <= 0\n ? moment.duration(diff).humanize(true)\n : i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(diff).humanize(),\n });\n break;\n }\n case HumanizeTimeFormat.past:\n text = moment.duration(Math.min(+m - +now, 0)).humanize(true);\n break;\n case HumanizeTimeFormat.future:\n text = i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(Math.max(+m - +now, 0)).humanize(),\n });\n break;\n case HumanizeTimeFormat.accurate:\n text = getAccurateTime();\n break;\n default:\n text = m.format(m.year() === now.year() ? fShort : fMedium);\n }\n return text;\n};\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n CHATS = \"CHATS\",\n GOALS = \"GOALS\",\n}\n\nconst en: Locale = {\n [K.CHATS]: \"Chat history\",\n [K.GOALS]: \"Project goals\",\n};\n\nconst zh: Locale = {\n [K.CHATS]: \"历史对话\",\n [K.GOALS]: \"项目目标\",\n};\n\nexport const NS = \"bricks/ai-portal/project-summary\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst TAB_ID_CHATS = \"chats\";\nconst TAB_ID_GOALS = \"goals\";\n\nconst TABS: Tab[] = [\n {\n id: TAB_ID_CHATS,\n label: t(K.CHATS),\n },\n {\n id: TAB_ID_GOALS,\n label: t(K.GOALS),\n },\n];\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ProjectSummaryProps {\n chatList?: Chat[];\n chatUrlTemplate?: string;\n}\n\nexport interface Chat {\n conversationId: string;\n title: string;\n startTime: number;\n}\n\n/**\n * 构件 `ai-portal.project-summary`\n */\nexport\n@defineElement(\"ai-portal.project-summary\", {\n styleTexts: [styleText],\n})\nclass ProjectSummary extends ReactNextElement implements ProjectSummaryProps {\n @property({ attribute: false })\n accessor chatList: Chat[] | undefined;\n\n @property()\n accessor chatUrlTemplate: string | undefined;\n\n render() {\n return (\n <ProjectSummaryComponent\n chatList={this.chatList}\n chatUrlTemplate={this.chatUrlTemplate}\n />\n );\n }\n}\n\nfunction ProjectSummaryComponent({\n chatList,\n chatUrlTemplate,\n}: ProjectSummaryProps) {\n const [activeTab, setActiveTab] = useState(TAB_ID_CHATS);\n return (\n <>\n <WrappedTabList\n tabs={TABS}\n activeTab={activeTab}\n onTabClick={(event) => setActiveTab(event.detail.id)}\n />\n {activeTab === TAB_ID_CHATS ? (\n chatList ? (\n <ul className=\"chats\">\n {chatList.map((item) => (\n <li key={item.conversationId} className=\"item\">\n <WrappedLink\n className=\"link\"\n url={parseTemplate(chatUrlTemplate, item)}\n >\n <div className=\"title\">{item.title}</div>\n <div className=\"time\">\n <WrappedIcon lib=\"antd\" icon=\"clock-circle\" />\n {humanizeTime(item.startTime, HumanizeTimeFormat.relative)}\n </div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )\n ) : null}\n </>\n );\n}\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface TabListProps {\n tabs?: Tab[];\n activeTab?: string;\n}\n\nexport interface Tab {\n id: string;\n label: string;\n}\n\nexport interface TabListEvents {\n \"tab.click\": CustomEvent<Tab>;\n}\n\nexport interface TabListMapping {\n onTabClick: \"tab.click\";\n}\n\n/**\n * 构件 `ai-portal.tab-list`\n *\n * @part tabs - The tab list container\n * @part tab - The individual tab\n */\nexport\n@defineElement(\"ai-portal.tab-list\", {\n styleTexts: [styleText],\n})\nclass TabList extends ReactNextElement implements TabListProps {\n @property({ attribute: false })\n accessor tabs: Tab[] | undefined;\n\n @property({ attribute: false })\n accessor activeTab: string | undefined;\n\n @event({ type: \"tab.click\" })\n accessor #tabClick!: EventEmitter<Tab>;\n\n #handleTabClick = (tab: Tab) => {\n this.activeTab = tab.id;\n this.#tabClick.emit(tab);\n };\n\n render() {\n return (\n <TabListComponent\n tabs={this.tabs}\n activeTab={this.activeTab}\n onTabClick={this.#handleTabClick}\n />\n );\n }\n}\n\ninterface TabListComponentProps extends TabListProps {\n onTabClick: (tab: Tab) => void;\n}\n\nfunction TabListComponent({\n tabs,\n activeTab,\n onTabClick,\n}: TabListComponentProps) {\n return (\n <ul className=\"tabs\" part=\"tabs\">\n {tabs?.map((tab) => (\n <li\n key={tab.id}\n part=\"tab\"\n className={classNames(\"tab\", { active: tab.id === activeTab })}\n >\n <a onClick={() => onTabClick(tab)}>{tab.label}</a>\n </li>\n ))}\n </ul>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.tabs{list-style:none;padding:0;margin:0;display:flex;font-size:16px}.tabs .tab + .tab{margin-left:32px}.tabs a{color:rgba(38,38,38,0.65);cursor:pointer}.tabs .active a{color:#262626;font-weight:500}.tabs .active a::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.item:hover .working,\n.item.active .working{display:none}.load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block;padding:3px 0}:host([hidden]){display:none}img{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/quote@2x.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.tips{color:rgba(0,0,0,0.45);margin-bottom:27px}.cases{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:24px;margin-top:36px}.link{display:block}.link::part(link){display:flex;gap:0;flex-direction:column;height:218px}.title{width:100%;padding:10px 4px 0;color:#262626;font-weight:500}.title span{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link:hover .title{color:var(--elevo-color-brand)}.thumbnail{width:100%;height:139px;padding:22px 29px 0;border-radius:12px;overflow:hidden;background-size:cover;background-position:center;background-repeat:no-repeat}.quote{display:block;width:14px;height:12px;margin-bottom:8px;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center;background-size:contain}.text{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:22px;color:rgba(24,33,47,0.8);height:66px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:12px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}:host([variant=\"mini-light\"]) button{color:#8c8c8c;width:20px;height:20px;font-size:14px;border-radius:4px}:host([variant=\"bordered\"]) button{background:#ffffff;border-radius:8px;border:1px solid rgba(0,0,0,0.1);color:#595959;width:32px;height:32px;font-size:18px}:host([variant=\"bordered\"]) button:not(:disabled):hover{background:rgba(0,0,0,0.04)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:17px 54px 48px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}:host([size=\"small\"]) .container{max-width:1000px}.header{margin-bottom:30px;display:flex;justify-content:space-between;align-items:center}nav{font-weight:500;font-size:20px;line-height:28px;display:flex;min-width:0}h1{margin:0;font-size:inherit;line-height:inherit}.breadcrumbs{list-style:none;padding:0;margin:0;color:#bfbfbf}.breadcrumbs eo-link::part(link){color:inherit}.breadcrumbs eo-link::part(link):hover{color:#595959}.breadcrumbs li::after{content:\"/\";margin:0 8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.chats{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;margin-top:2em}.chats .link{display:block}.chats .link::part(link){background:#fff;border-radius:12px;border:1px solid rgba(0,0,0,0.1);overflow:hidden;display:block;padding:16px 16px 12px}.chats .link::part(link):hover{box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1)}.chats .title{height:40px;line-height:20px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#262626}.chats .time{margin-top:20px;font-size:12px;color:#8c8c8c;display:flex;align-items:center}.chats .time eo-icon{margin-right:4px}.loading{display:flex;align-items:center;justify-content:center;margin-top:2em;font-size:16px;color:#8c8c8c}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;background-color:#fff;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px;margin-bottom:17px}.list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto;margin-bottom:17px}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6;display:flex;align-items:center;justify-content:center;font-size:24px}.avatar img{width:100%;height:100%}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedLegacyCruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","ForwardedCruiseCanvasComponent","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_CruiseCanvas_brand","WeakSet","_onShare","_Q","_onTerminate","_R","_onSubmitFeedback","_S","_onFeedbackOnView","_T","_onSwitchToChat","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackAfterFailed","_init_extra_showFeedbackAfterFailed","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","taskId","task","jobs","replay","replayDelay","supports","showHiddenJobs","showFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","Component","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","_ChatBox","_ChatBox_brand","_handleMessageSubmit","ChatBox","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","disabled","placeholder","autoFocus","ChatBoxComponent","onSubmit","containerRef","useRef","textareaRef","setValue","useState","valueRef","handleSubmit","useCallback","currentTarget","handleChange","target","handleSubmitClick","useEffect","Promise","resolve","then","_textareaRef$current","focus","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","onClick","lib","prefix","icon","_ChatBox2","_set_messageSubmit","styleTexts","styleText","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","WrappedLink","WrappedMiniActions","onActionClick","onVisibleChange","_ChatHistory","_ChatHistory_brand","_handleActionClick","_handleLoadMore","ChatHistory","_init_list","_init_extra_list","_init_actions","_init_extra_actions","_init_nextToken","_init_extra_nextToken","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_loadMore","_init_extra_loadMore","nextToken","_get_loadMore","list","actions","ChatHistoryComponent","root","onLoadMore","groups","useMemo","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","item","groupKey","startTime","format","group","get","set","title","items","values","actionsVisible","setActionsVisible","nextRef","next","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","map","key","classNames","active","url","action","DONE_STATES","includes","state","spinning","theme","_ChatHistory2","_set_actionClick","_set_loadMore","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","label","size","lineColor","showArea","min","max","xField","yField","data","StatWithMiniChartComponent","chartProps","_extends","lineWidth","width","height","_StatWithMiniChart2","_ElevoLogo","ElevoLogo","ElevoLogoComponent","src","logoImage","alt","_ElevoLogo2","SIDEBAR_ICON","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleLegacyActionClick","_handleProjectActionClick","_handleAddProject","ElevoSidebar","_init_legacy","_init_extra_legacy","_init_username","_init_extra_username","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_newChatLinkWhenCollapsed","_init_extra_newChatLinkWhenCollapsed","_init_historyActiveId","_init_extra_historyActiveId","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_projectActiveId","_init_extra_projectActiveId","_init_projectUrlTemplate","_init_extra_projectUrlTemplate","_init_projectActions","_init_extra_projectActions","_init_links","_init_extra_links","_init_logout","_init_extra_logout","_get_logout","_init_projectActionClick","_init_extra_projectActionClick","_get_projectActionClick","_init_addProject","_init_extra_addProject","_get_addProject","legacy","username","userInstanceId","behavior","logoUrl","newChatUrl","newChatLinkWhenCollapsed","historyActiveId","historyUrlTemplate","historyActions","projectActiveId","projectUrlTemplate","projectActions","links","pullHistory","delay","setTimeout","pull","close","removeProject","projectId","addProject","project","_classPrivateFieldGet7","moveConversation","_classPrivateFieldGet8","_classPrivateFieldGet9","onLogout","onLegacyActionClick","onProjectActionClick","onAddProject","_ref2","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","text","LOGOUT","SWITCH_LANGUAGE","historyRef","useImperativeHandle","_historyRef$current","_historyRef$current2","_historyRef$current2$","_historyRef$current3","_historyRef$current3$","_historyRef$current4","_historyRef$current4$","WrappedIconButton","variant","NEW_CHAT","length","link","index","LegacyChatHistory","activeId","urlTemplate","onHistoryClick","WrappedDropdownActions","async","changeLanguage","language","split","getHistory","reload","WrappedEasyopsAvatar","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","_set_projectActionClick","_set_addProject","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_variant","_init_extra_variant","tooltip","IconButtonComponent","btn","content","_IconButton2","ALL","EXPLORE_EXCELLENT_CASES","WrappedTabList","onTabClick","_ShowCases","ShowCases","_init_taskUrlTemplate","_init_extra_taskUrlTemplate","taskUrlTemplate","ShowCasesComponent","Set","scenario","filter","activeGroup","setActiveGroup","filteredList","tabs","activeTab","parseTemplate","style","backgroundImage","thumbUrl","getBasePath","bg","join","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","servers","_McpTools","McpTools","_init_withContainer","_init_extra_withContainer","withContainer","McpToolsComponent","platformMap","forEach","groupName","server","replaceAll","name","platform","find","_name","platformName","orderedNames","sort","_ref3","_ref4","nameA","nameB","indexA","indexOf","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","node","_ref6","_item$icon","fallback","description","_McpTools2","ICON_SHARE","ChatStreamComponent","LegacyChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_task$title","propShowFeedback","error","humanInputRef","resumedRef","skipToResults","watchAgain","useTaskDetail","pageTitle","taskState","taskDone","messages","inputRequiredJobId","lastToolCallJobId","useChatStream","views","flatMap","job","generatedView","view","submittingFeedback","setSubmittingFeedback","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","_resumedRef$current","prev","newSet","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeToolCallJobId","setActiveToolCallJobId","userClosedAside","setUserClosedAside","delayRef","taskAvailable","timer","clearTimeout","getRuntime","applyPageTitle","handleHttpError","humanInput","jobId","input","_humanInputRef$curren","taskContextValue","streamContextValue","detectScrolledUpRef","manualScrolledRef","scrollContainerRef","scrollable","setScrollable","scrollContainer","contentContainer","firstElementChild","handleScroll","scrollTop","clientHeight","scrollHeight","addEventListener","ResizeObserver","scrollTo","top","removeEventListener","scrollToBottom","activeToolCallJob","TaskContext","Provider","StreamContext","styles","container","header","left","right","ICON_CANVAS","transform","main","narrow","msg","message","role","UserMessage","AssistantMessage","isLatest","NodeFeedback","feedback","hidden","chat","footer","ReplayToolbar","canChat","aside","expanded","Aside","ExpandedView","_ChatStream2","AI_EMPLOYEES","UNTITLED","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","_init_urlTemplate","_init_extra_urlTemplate","industries","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","clickable","avatar","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","store","customElements","define","createProviderClass","_PageContainer","PageContainer","_init_pageTitle","_init_extra_pageTitle","_init_breadcrumbs","_init_extra_breadcrumbs","breadcrumbs","PageContainerComponent","_PageContainer2","NS_LIBS_DATETIME","FUTURE_AFTER","FORMAT_MEDIUM_DATETIME","FORMAT_MEDIUM_DATE","FORMAT_SHORT_DATETIME","FORMAT_SHORT_DATE","FORMAT_SHORT_DAY_DATETIME","FORMAT_SHORT_DAY_DATE","MONTHS","HOURS","SECONDS","MILL_SECONDS","DAYS","MINUTES","HumanizeTimeFormat","CHATS","GOALS","TAB_ID_CHATS","TABS","_ProjectSummary","ProjectSummary","_init_chatList","_init_extra_chatList","_init_chatUrlTemplate","_init_extra_chatUrlTemplate","chatList","chatUrlTemplate","ProjectSummaryComponent","setActiveTab","time","undefined","auto","Infinity","m","fFull","fMedium","fShort","fShort24","fDefault","full","default","relative","diff","humanize","past","Math","future","accurate","getAccurateTime","toFixed","_text","retVal","year","isBefore","isSame","humanizeTime","_ProjectSummary2","_TabList","_TabList_brand","_handleTabClick","TabList","_init_tabs","_init_extra_tabs","_init_activeTab","_init_extra_activeTab","_init_tabClick","_init_extra_tabClick","tab","_get_tabClick","TabListComponent","part","_TabList2","_set_tabClick","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[366],{38208:(e,t,a)=>{a.r(t),a.d(t,{ChatStream:()=>Te});var s,i=a(74635),n=a(70918),r=a(26902),l=a(5536),o=a(86121),c=a(70829),h=a(62740),d=a(18769),u=a.n(d),m=a(7921),k=a(11280),w=(a(65168),a(87117)),b=a(29475),A=a(99126),p=a(53373),v=a.n(p),f=a(92914),E=a(7863),F=a(80413),S=a(22025),y=a(44394),g=a(13183),M=a(30578),T=a(31918),W=a(92449),V=a(97907),I=a(85011),C=a(65023),D=a(17911),N=a(95491),R=a(11303);let O,B,x,H,J,_,j,U,P,q,L,z,G,Q,K,X,Y,Z,$,ee,te,ae,se,ie,ne,re,le,oe,ce,he,de,ue,me,ke,we,be,Ae,pe,ve,fe;(0,w.initializeI18n)(f.NS,f.I);const Ee={lib:"easyops",icon:"share"},{defineElement:Fe,property:Se,event:ye,method:ge}=(0,m.createDecorators)(),Me=(0,d.forwardRef)(Xe);let Te;var We=new WeakMap,Ve=new WeakMap,Ie=new WeakMap,Ce=new WeakMap,De=new WeakMap,Ne=new WeakMap,Re=new WeakMap,Oe=new WeakMap,Be=new WeakMap,xe=new WeakMap,He=new WeakSet,Je=new WeakMap,_e=new WeakMap,je=new WeakMap,Ue=new WeakMap,Pe=new WeakMap,qe=new WeakMap,Le=new WeakMap,ze=new WeakMap,Ge=new WeakMap,Qe=new WeakMap;class Ke extends k.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,He),(0,n.A)(this,We,(O(this),x(this))),(0,n.A)(this,Ve,(H(this),J(this))),(0,n.A)(this,Ie,(_(this),j(this))),(0,n.A)(this,Ce,(U(this),P(this))),(0,n.A)(this,De,(q(this),L(this))),(0,n.A)(this,Ne,(z(this),G(this))),(0,n.A)(this,Re,(Q(this),K(this))),(0,n.A)(this,Oe,(X(this),Y(this))),(0,n.A)(this,Be,(Z(this),$(this))),(0,n.A)(this,xe,(ee(this),te(this))),(0,n.A)(this,Je,(ie(this),()=>{(0,l.A)(He,this,ae).emit()})),(0,n.A)(this,_e,ne(this)),(0,n.A)(this,je,(oe(this),()=>{(0,l.A)(He,this,re).emit()})),(0,n.A)(this,Ue,ce(this)),(0,n.A)(this,Pe,(ue(this),e=>{(0,l.A)(He,this,he).emit(e)})),(0,n.A)(this,qe,me(this)),(0,n.A)(this,Le,(be(this),e=>{(0,l.A)(He,this,ke).emit(e)})),(0,n.A)(this,ze,Ae(this)),(0,n.A)(this,Ge,(fe(this),()=>{(0,l.A)(He,this,pe).emit("canvas")})),(0,n.A)(this,Qe,(0,d.createRef)())}get taskId(){return(0,c.A)(We,this)}set taskId(e){(0,o.A)(We,this,e)}get replay(){return(0,c.A)(Ve,this)}set replay(e){(0,o.A)(Ve,this,e)}get replayDelay(){return(0,c.A)(Ie,this)}set replayDelay(e){(0,o.A)(Ie,this,e)}get supports(){return(0,c.A)(Ce,this)}set supports(e){(0,o.A)(Ce,this,e)}get showFeedback(){return(0,c.A)(De,this)}set showFeedback(e){(0,o.A)(De,this,e)}get showFeedbackAfterFailed(){return(0,c.A)(Ne,this)}set showFeedbackAfterFailed(e){(0,o.A)(Ne,this,e)}get showFeedbackOnView(){return(0,c.A)(Re,this)}set showFeedbackOnView(e){(0,o.A)(Re,this,e)}get showUiSwitch(){return(0,c.A)(Oe,this)}set showUiSwitch(e){(0,o.A)(Oe,this,e)}get hideMermaid(){return(0,c.A)(Be,this)}set hideMermaid(e){(0,o.A)(Be,this,e)}resumed(){var e;null===(e=(0,c.A)(Qe,this).current)||void 0===e||e.resumed()}feedbackSubmitDone(){var e;null===(e=(0,c.A)(Qe,this).current)||void 0===e||e.feedbackSubmitDone()}feedbackSubmitFailed(){var e;null===(e=(0,c.A)(Qe,this).current)||void 0===e||e.feedbackSubmitFailed()}feedbackOnViewDone(e){var t;null===(t=(0,c.A)(Qe,this).current)||void 0===t||t.feedbackOnViewDone(e)}render(){return u().createElement(Me,{taskId:this.taskId,replay:this.replay,replayDelay:this.replayDelay,supports:this.supports,showFeedback:this.showFeedback,showFeedbackAfterFailed:this.showFeedbackAfterFailed,showFeedbackOnView:this.showFeedbackOnView,showUiSwitch:this.showUiSwitch,onShare:(0,c.A)(Je,this),onTerminate:(0,c.A)(je,this),onSubmitFeedback:(0,c.A)(Pe,this),onSwitchToCanvas:(0,c.A)(Ge,this),onFeedbackOnView:(0,c.A)(Le,this)})}}function Xe(e,t){var a;let{taskId:s,replay:i,replayDelay:n,supports:r,showFeedback:l,showFeedbackAfterFailed:o,showFeedbackOnView:c,showUiSwitch:h,onShare:m,onTerminate:k,onSubmitFeedback:w,onSwitchToCanvas:p,onFeedbackOnView:f}=e;const{task:O,jobs:B,error:x,humanInputRef:H,resumedRef:J,skipToResults:_,watchAgain:j}=(0,E.S)(s,i,n),U=null!==(a=null==O?void 0:O.title)&&void 0!==a?a:"",P=null==O?void 0:O.state,q=V.QB.includes(P),{messages:L,inputRequiredJobId:z,lastToolCallJobId:G}=(0,F.e)(O,B),Q=(0,d.useMemo)((()=>null==B?void 0:B.flatMap((e=>e.generatedView?{id:e.id,view:e.generatedView}:[]))),[B]),[K,X]=(0,d.useState)(!1),[Y,Z]=(0,d.useState)(!1),[$,ee]=(0,d.useState)(!!l);(0,d.useEffect)((()=>{ee(!!l)}),[l]);const[te,ae]=(0,d.useState)(),se=(0,d.useCallback)((e=>{X(!0),w(e)}),[w]);(0,d.useImperativeHandle)(t,(()=>({resumed:()=>{var e;return null===(e=J.current)||void 0===e?void 0:e.call(J)},feedbackSubmitDone:()=>{Z(!0),setTimeout((()=>{ee(!1)}),3e3)},feedbackSubmitFailed:()=>{X(!1)},feedbackOnViewDone:e=>{ae((t=>{const a=new Set(t);return a.add(e),a}))}})),[J]);const[ie,ne]=(0,d.useState)(null),[re,le]=(0,d.useState)(null),[oe,ce]=(0,d.useState)(!1),he=(0,d.useRef)(!1),de=!!O;(0,d.useEffect)((()=>{if(de){const e=setTimeout((()=>{he.current=!0}),1e3);return()=>{clearTimeout(e)}}}),[de]),(0,d.useEffect)((()=>{he.current&&G&&!oe&&le(G)}),[G,oe]),(0,d.useEffect)((()=>{(0,b.getRuntime)().applyPageTitle(U)}),[U]),(0,d.useEffect)((()=>{x&&(0,b.handleHttpError)(x)}),[x]);const ue=(0,d.useCallback)(((e,t)=>{var a;null===(a=H.current)||void 0===a||a.call(H,e,t)}),[H]),me=(0,d.useMemo)((()=>({humanInput:ue,onShare:m,onTerminate:k,supports:r,activeExpandedViewJobId:ie,setActiveExpandedViewJobId:ne,activeToolCallJobId:re,setActiveToolCallJobId:le,submittingFeedback:K,submittedFeedback:Y,onSubmitFeedback:se,setShowFeedback:ee,showFeedbackOnView:c,onFeedbackOnView:f,feedbackDoneViews:te})),[ue,m,k,r,ie,re,K,Y,se,c,f,te]),ke=(0,d.useMemo)((()=>({lastToolCallJobId:G,setUserClosedAside:ce})),[G]),we=(0,d.useRef)(!1),be=(0,d.useRef)(!1),Ae=(0,d.useRef)(null),[pe,ve]=(0,d.useState)(!1);(0,d.useEffect)((()=>{const e=Ae.current,t=null==e?void 0:e.firstElementChild;if(be.current||!e||!t)return;const a=()=>{ve(e.scrollTop+e.clientHeight+24<e.scrollHeight),we.current&&(be.current=e.scrollTop+e.clientHeight+6<e.scrollHeight)};let s;e.addEventListener("scroll",a);const i=new A.A((()=>{be.current||(we.current=!1,e.scrollTo({top:t.scrollHeight,behavior:"instant"}),clearTimeout(s),s=setTimeout((()=>{we.current=!0}),100))}));return i.observe(t),()=>{i.disconnect(),e.removeEventListener("scroll",a)}}),[de]);const fe=(0,d.useCallback)((()=>{const e=Ae.current;null==e||e.scrollTo({top:null==e?void 0:e.scrollHeight,behavior:"instant"})}),[]),Fe=(0,d.useMemo)((()=>re?null==B?void 0:B.find((e=>e.id===re)):null),[re,B]);return u().createElement(T.j.Provider,{value:me},u().createElement(N.W.Provider,{value:ke},u().createElement("div",{className:S.A.container},u().createElement("div",{className:S.A.header},u().createElement("div",{className:S.A.left}),u().createElement("h1",null,U),u().createElement("div",{className:S.A.right},h&&u().createElement(y.Py,{icon:V.Rq,variant:"mini",style:{transform:"rotate(90deg)"},onClick:p}),u().createElement(y.Py,{icon:Ee,variant:"mini",onClick:m}))),de?u().createElement(u().Fragment,null,u().createElement("div",{className:S.A.main,ref:Ae},u().createElement("div",{className:S.A.narrow},L.map(((e,t,a)=>u().createElement("div",{className:S.A.message,key:t},"user"===e.role?u().createElement(g.R,{content:e.content}):u().createElement(M.G,{jobs:e.jobs,taskState:P,isLatest:t===a.length-1})))),$&&("completed"===P||"failed"===P&&o)&&u().createElement(R.k,{className:S.A.feedback}))),u().createElement("div",{className:S.A["scroll-down"],hidden:!pe,onClick:fe},u().createElement(y.Bj,{lib:"antd",icon:"down"}))):u().createElement("div",{className:S.A["loading-icon"]},u().createElement(y.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})),i||null!=r&&r.chat?u().createElement("div",{className:S.A.footer},u().createElement("div",{className:S.A.narrow},i?u().createElement(C.b,{taskDone:q,skipToResults:_,watchAgain:j}):u().createElement(W.s,{state:P,canChat:q&&!!z,inputRequiredJobId:z}))):null),u().createElement("div",{className:v()(S.A.aside,{[S.A.expanded]:!!re})},re&&u().createElement(D.n,{job:Fe})),ie&&u().createElement(I.f,{views:Q})))}s=Ke,({e:[x,H,J,_,j,U,P,q,L,z,G,Q,K,X,Y,Z,$,ee,te,ae,se,ie,ne,re,le,oe,ce,he,de,ue,me,ke,we,be,Ae,pe,ve,fe,O],c:[Te,B]}=(0,h.A)(s,[Fe("ai-portal.chat-stream",{shadowOptions:!1})],[[Se(),1,"taskId"],[Se({type:Boolean}),1,"replay"],[Se({type:Number}),1,"replayDelay"],[Se({attribute:!1}),1,"supports"],[Se({type:Boolean}),1,"showFeedback"],[Se({type:Boolean}),1,"showFeedbackAfterFailed"],[Se({type:Boolean}),1,"showFeedbackOnView"],[Se({type:Boolean}),1,"showUiSwitch"],[Se({type:Boolean,render:!1}),1,"hideMermaid"],[ye({type:"share"}),1,"shareEvent",e=>(0,c.A)(xe,e),(e,t)=>(0,o.A)(xe,e,t)],[ye({type:"terminate"}),1,"terminateEvent",e=>(0,c.A)(_e,e),(e,t)=>(0,o.A)(_e,e,t)],[ye({type:"feedback.submit"}),1,"feedbackSubmitEvent",e=>(0,c.A)(Ue,e),(e,t)=>(0,o.A)(Ue,e,t)],[ye({type:"feedback.on.view"}),1,"feedbackOnViewEvent",e=>(0,c.A)(qe,e),(e,t)=>(0,o.A)(qe,e,t)],[ye({type:"ui.switch"}),1,"switch",e=>(0,c.A)(ze,e),(e,t)=>(0,o.A)(ze,e,t)],[ge(),2,"resumed"],[ge(),2,"feedbackSubmitDone"],[ge(),2,"feedbackSubmitFailed"],[ge(),2,"feedbackOnViewDone"]],0,(e=>Qe.has((0,r.A)(e))),k.ReactNextElement)),B()}}]);
2
- //# sourceMappingURL=chat-stream.d8e6ac51.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[366],{38208:(e,t,a)=>{a.r(t),a.d(t,{ChatStream:()=>Te});var s,i=a(74635),n=a(70918),r=a(26902),l=a(5536),o=a(86121),c=a(70829),h=a(62740),d=a(18769),u=a.n(d),m=a(7921),k=a(11280),w=(a(65168),a(87117)),b=a(29475),A=a(99126),p=a(53373),v=a.n(p),f=a(92914),E=a(7863),F=a(80413),S=a(22025),y=a(44394),g=a(13183),M=a(30578),T=a(31918),W=a(92449),V=a(97907),I=a(85011),C=a(65023),D=a(17911),N=a(95491),R=a(11303);let O,B,x,H,J,_,j,U,P,q,L,z,G,Q,K,X,Y,Z,$,ee,te,ae,se,ie,ne,re,le,oe,ce,he,de,ue,me,ke,we,be,Ae,pe,ve,fe;(0,w.initializeI18n)(f.NS,f.I);const Ee={lib:"easyops",icon:"share"},{defineElement:Fe,property:Se,event:ye,method:ge}=(0,m.createDecorators)(),Me=(0,d.forwardRef)(Xe);let Te;var We=new WeakMap,Ve=new WeakMap,Ie=new WeakMap,Ce=new WeakMap,De=new WeakMap,Ne=new WeakMap,Re=new WeakMap,Oe=new WeakMap,Be=new WeakMap,xe=new WeakMap,He=new WeakSet,Je=new WeakMap,_e=new WeakMap,je=new WeakMap,Ue=new WeakMap,Pe=new WeakMap,qe=new WeakMap,Le=new WeakMap,ze=new WeakMap,Ge=new WeakMap,Qe=new WeakMap;class Ke extends k.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,He),(0,n.A)(this,We,(O(this),x(this))),(0,n.A)(this,Ve,(H(this),J(this))),(0,n.A)(this,Ie,(_(this),j(this))),(0,n.A)(this,Ce,(U(this),P(this))),(0,n.A)(this,De,(q(this),L(this))),(0,n.A)(this,Ne,(z(this),G(this))),(0,n.A)(this,Re,(Q(this),K(this))),(0,n.A)(this,Oe,(X(this),Y(this))),(0,n.A)(this,Be,(Z(this),$(this))),(0,n.A)(this,xe,(ee(this),te(this))),(0,n.A)(this,Je,(ie(this),()=>{(0,l.A)(He,this,ae).emit()})),(0,n.A)(this,_e,ne(this)),(0,n.A)(this,je,(oe(this),()=>{(0,l.A)(He,this,re).emit()})),(0,n.A)(this,Ue,ce(this)),(0,n.A)(this,Pe,(ue(this),e=>{(0,l.A)(He,this,he).emit(e)})),(0,n.A)(this,qe,me(this)),(0,n.A)(this,Le,(be(this),e=>{(0,l.A)(He,this,ke).emit(e)})),(0,n.A)(this,ze,Ae(this)),(0,n.A)(this,Ge,(fe(this),()=>{(0,l.A)(He,this,pe).emit("canvas")})),(0,n.A)(this,Qe,(0,d.createRef)())}get taskId(){return(0,c.A)(We,this)}set taskId(e){(0,o.A)(We,this,e)}get replay(){return(0,c.A)(Ve,this)}set replay(e){(0,o.A)(Ve,this,e)}get replayDelay(){return(0,c.A)(Ie,this)}set replayDelay(e){(0,o.A)(Ie,this,e)}get supports(){return(0,c.A)(Ce,this)}set supports(e){(0,o.A)(Ce,this,e)}get showFeedback(){return(0,c.A)(De,this)}set showFeedback(e){(0,o.A)(De,this,e)}get showFeedbackAfterFailed(){return(0,c.A)(Ne,this)}set showFeedbackAfterFailed(e){(0,o.A)(Ne,this,e)}get showFeedbackOnView(){return(0,c.A)(Re,this)}set showFeedbackOnView(e){(0,o.A)(Re,this,e)}get showUiSwitch(){return(0,c.A)(Oe,this)}set showUiSwitch(e){(0,o.A)(Oe,this,e)}get hideMermaid(){return(0,c.A)(Be,this)}set hideMermaid(e){(0,o.A)(Be,this,e)}resumed(){var e;null===(e=(0,c.A)(Qe,this).current)||void 0===e||e.resumed()}feedbackSubmitDone(){var e;null===(e=(0,c.A)(Qe,this).current)||void 0===e||e.feedbackSubmitDone()}feedbackSubmitFailed(){var e;null===(e=(0,c.A)(Qe,this).current)||void 0===e||e.feedbackSubmitFailed()}feedbackOnViewDone(e){var t;null===(t=(0,c.A)(Qe,this).current)||void 0===t||t.feedbackOnViewDone(e)}render(){return u().createElement(Me,{taskId:this.taskId,replay:this.replay,replayDelay:this.replayDelay,supports:this.supports,showFeedback:this.showFeedback,showFeedbackAfterFailed:this.showFeedbackAfterFailed,showFeedbackOnView:this.showFeedbackOnView,showUiSwitch:this.showUiSwitch,onShare:(0,c.A)(Je,this),onTerminate:(0,c.A)(je,this),onSubmitFeedback:(0,c.A)(Pe,this),onSwitchToCanvas:(0,c.A)(Ge,this),onFeedbackOnView:(0,c.A)(Le,this)})}}function Xe(e,t){var a;let{taskId:s,replay:i,replayDelay:n,supports:r,showFeedback:l,showFeedbackAfterFailed:o,showFeedbackOnView:c,showUiSwitch:h,onShare:m,onTerminate:k,onSubmitFeedback:w,onSwitchToCanvas:p,onFeedbackOnView:f}=e;const{task:O,jobs:B,error:x,humanInputRef:H,resumedRef:J,skipToResults:_,watchAgain:j}=(0,E.S)(s,i,n),U=null!==(a=null==O?void 0:O.title)&&void 0!==a?a:"",P=null==O?void 0:O.state,q=V.QB.includes(P),{messages:L,inputRequiredJobId:z,lastToolCallJobId:G}=(0,F.e)(O,B),Q=(0,d.useMemo)((()=>null==B?void 0:B.flatMap((e=>e.generatedView?{id:e.id,view:e.generatedView}:[]))),[B]),[K,X]=(0,d.useState)(!1),[Y,Z]=(0,d.useState)(!1),[$,ee]=(0,d.useState)(!!l);(0,d.useEffect)((()=>{ee(!!l)}),[l]);const[te,ae]=(0,d.useState)(),se=(0,d.useCallback)((e=>{X(!0),w(e)}),[w]);(0,d.useImperativeHandle)(t,(()=>({resumed:()=>{var e;return null===(e=J.current)||void 0===e?void 0:e.call(J)},feedbackSubmitDone:()=>{Z(!0),setTimeout((()=>{ee(!1)}),3e3)},feedbackSubmitFailed:()=>{X(!1)},feedbackOnViewDone:e=>{ae((t=>{const a=new Set(t);return a.add(e),a}))}})),[J]);const[ie,ne]=(0,d.useState)(null),[re,le]=(0,d.useState)(null),[oe,ce]=(0,d.useState)(!1),he=(0,d.useRef)(!1),de=!!O;(0,d.useEffect)((()=>{if(de){const e=setTimeout((()=>{he.current=!0}),1e3);return()=>{clearTimeout(e)}}}),[de]),(0,d.useEffect)((()=>{he.current&&G&&!oe&&le(G)}),[G,oe]),(0,d.useEffect)((()=>{(0,b.getRuntime)().applyPageTitle(U)}),[U]),(0,d.useEffect)((()=>{x&&(0,b.handleHttpError)(x)}),[x]);const ue=(0,d.useCallback)(((e,t)=>{var a;null===(a=H.current)||void 0===a||a.call(H,e,t)}),[H]),me=(0,d.useMemo)((()=>({humanInput:ue,onShare:m,onTerminate:k,supports:r,activeExpandedViewJobId:ie,setActiveExpandedViewJobId:ne,activeToolCallJobId:re,setActiveToolCallJobId:le,submittingFeedback:K,submittedFeedback:Y,onSubmitFeedback:se,setShowFeedback:ee,showFeedbackOnView:c,onFeedbackOnView:f,feedbackDoneViews:te})),[ue,m,k,r,ie,re,K,Y,se,c,f,te]),ke=(0,d.useMemo)((()=>({lastToolCallJobId:G,setUserClosedAside:ce})),[G]),we=(0,d.useRef)(!1),be=(0,d.useRef)(!1),Ae=(0,d.useRef)(null),[pe,ve]=(0,d.useState)(!1);(0,d.useEffect)((()=>{const e=Ae.current,t=null==e?void 0:e.firstElementChild;if(be.current||!e||!t)return;const a=()=>{ve(e.scrollTop+e.clientHeight+24<e.scrollHeight),we.current&&(be.current=e.scrollTop+e.clientHeight+6<e.scrollHeight)};let s;e.addEventListener("scroll",a);const i=new A.A((()=>{be.current||(we.current=!1,e.scrollTo({top:t.scrollHeight,behavior:"instant"}),clearTimeout(s),s=setTimeout((()=>{we.current=!0}),100))}));return i.observe(t),()=>{i.disconnect(),e.removeEventListener("scroll",a)}}),[de]);const fe=(0,d.useCallback)((()=>{const e=Ae.current;null==e||e.scrollTo({top:null==e?void 0:e.scrollHeight,behavior:"instant"})}),[]),Fe=(0,d.useMemo)((()=>re?null==B?void 0:B.find((e=>e.id===re)):null),[re,B]);return u().createElement(T.j.Provider,{value:me},u().createElement(N.W.Provider,{value:ke},u().createElement("div",{className:S.A.container},u().createElement("div",{className:S.A.header},u().createElement("div",{className:S.A.left}),u().createElement("h1",null,U),u().createElement("div",{className:S.A.right},h&&u().createElement(y.Py,{icon:V.Rq,variant:"mini",style:{transform:"rotate(90deg)"},onClick:p}),u().createElement(y.Py,{icon:Ee,variant:"mini",onClick:m}))),de?u().createElement(u().Fragment,null,u().createElement("div",{className:S.A.main,ref:Ae},u().createElement("div",{className:S.A.narrow},L.map(((e,t,a)=>u().createElement("div",{className:S.A.message,key:t},"user"===e.role?u().createElement(g.R,{content:e.content}):u().createElement(M.G,{jobs:e.jobs,taskState:P,isLatest:t===a.length-1})))),$&&("completed"===P||"failed"===P&&o)&&u().createElement(R.k,{className:S.A.feedback}))),u().createElement("div",{className:S.A["scroll-down"],hidden:!pe,onClick:fe},u().createElement(y.Bj,{lib:"antd",icon:"down"}))):u().createElement("div",{className:S.A["loading-icon"]},u().createElement(y.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})),i||null!=r&&r.chat?u().createElement("div",{className:S.A.footer},u().createElement("div",{className:S.A.narrow},i?u().createElement(C.b,{taskDone:q,skipToResults:_,watchAgain:j}):u().createElement(W.s,{state:P,canChat:q&&!!z,inputRequiredJobId:z}))):null),u().createElement("div",{className:v()(S.A.aside,{[S.A.expanded]:!!Fe})},Fe&&u().createElement(D.n,{job:Fe})),ie&&u().createElement(I.f,{views:Q})))}s=Ke,({e:[x,H,J,_,j,U,P,q,L,z,G,Q,K,X,Y,Z,$,ee,te,ae,se,ie,ne,re,le,oe,ce,he,de,ue,me,ke,we,be,Ae,pe,ve,fe,O],c:[Te,B]}=(0,h.A)(s,[Fe("ai-portal.chat-stream",{shadowOptions:!1})],[[Se(),1,"taskId"],[Se({type:Boolean}),1,"replay"],[Se({type:Number}),1,"replayDelay"],[Se({attribute:!1}),1,"supports"],[Se({type:Boolean}),1,"showFeedback"],[Se({type:Boolean}),1,"showFeedbackAfterFailed"],[Se({type:Boolean}),1,"showFeedbackOnView"],[Se({type:Boolean}),1,"showUiSwitch"],[Se({type:Boolean,render:!1}),1,"hideMermaid"],[ye({type:"share"}),1,"shareEvent",e=>(0,c.A)(xe,e),(e,t)=>(0,o.A)(xe,e,t)],[ye({type:"terminate"}),1,"terminateEvent",e=>(0,c.A)(_e,e),(e,t)=>(0,o.A)(_e,e,t)],[ye({type:"feedback.submit"}),1,"feedbackSubmitEvent",e=>(0,c.A)(Ue,e),(e,t)=>(0,o.A)(Ue,e,t)],[ye({type:"feedback.on.view"}),1,"feedbackOnViewEvent",e=>(0,c.A)(qe,e),(e,t)=>(0,o.A)(qe,e,t)],[ye({type:"ui.switch"}),1,"switch",e=>(0,c.A)(ze,e),(e,t)=>(0,o.A)(ze,e,t)],[ge(),2,"resumed"],[ge(),2,"feedbackSubmitDone"],[ge(),2,"feedbackSubmitFailed"],[ge(),2,"feedbackOnViewDone"]],0,(e=>Qe.has((0,r.A)(e))),k.ReactNextElement)),B()}}]);
2
+ //# sourceMappingURL=chat-stream.b0e94ebe.js.map