@next-bricks/ai-portal 0.59.2 → 0.59.3
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.
- package/dist/bricks.json +22 -22
- package/dist/chunks/2232.02cd2bbc.js +2 -0
- package/dist/chunks/2232.02cd2bbc.js.map +1 -0
- package/dist/chunks/{2621.0d56009c.js → 2621.9485ac01.js} +2 -2
- package/dist/chunks/2621.9485ac01.js.map +1 -0
- package/dist/chunks/{5712.a63bddd8.js → 5712.c566ad78.js} +2 -2
- package/dist/chunks/{5712.a63bddd8.js.map → 5712.c566ad78.js.map} +1 -1
- package/dist/chunks/{9496.633e2efa.js → 9496.1d7ebb7f.js} +2 -2
- package/dist/chunks/9496.1d7ebb7f.js.map +1 -0
- package/dist/chunks/chat-box.991e397f.js +3 -0
- package/dist/chunks/chat-box.991e397f.js.LICENSE.txt +1 -0
- package/dist/chunks/chat-box.991e397f.js.map +1 -0
- package/dist/chunks/{main.9309c699.js → main.7a2dc87b.js} +2 -2
- package/dist/chunks/{main.9309c699.js.map → main.7a2dc87b.js.map} +1 -1
- package/dist/chunks/set-chat-command.367b9c88.js.map +1 -1
- package/dist/examples.json +15 -15
- package/dist/{index.457a283c.js → index.9f3c3997.js} +2 -2
- package/dist/{index.457a283c.js.map → index.9f3c3997.js.map} +1 -1
- package/dist/manifest.json +173 -179
- package/dist/types.json +232 -252
- package/dist-types/chat-box/index.d.ts +0 -1
- package/dist-types/data-providers/set-chat-command.d.ts +1 -1
- package/dist-types/shared/ReadableCommand/ReadableCommand.d.ts +1 -0
- package/dist-types/shared/interfaces.d.ts +1 -0
- package/package.json +2 -2
- package/dist/chunks/2232.b162e41f.js +0 -2
- package/dist/chunks/2232.b162e41f.js.map +0 -1
- package/dist/chunks/2621.0d56009c.js.map +0 -1
- package/dist/chunks/9496.633e2efa.js.map +0 -1
- package/dist/chunks/chat-box.5ba0e969.js +0 -2
- package/dist/chunks/chat-box.5ba0e969.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/chat-box.5ba0e969.js","mappings":"2IA4DAA,EAAOC,QAjBP,SAAgBC,GACd,GAAwB,oBAAbC,SACT,MAAO,CACLC,OAAQ,WAAmB,EAC3BC,OAAQ,WAAmB,GAG/B,IAAIC,EAAeJ,EAAQK,mBAAmBL,GAC9C,MAAO,CACLE,OAAQ,SAAgBI,IAjD5B,SAAeF,EAAcJ,EAASM,GACpC,IAAIC,EAAM,GACND,EAAIE,WACND,GAAO,cAAcE,OAAOH,EAAIE,SAAU,QAExCF,EAAII,QACNH,GAAO,UAAUE,OAAOH,EAAII,MAAO,OAErC,IAAIC,OAAiC,IAAdL,EAAIM,MACvBD,IACFJ,GAAO,SAASE,OAAOH,EAAIM,MAAMC,OAAS,EAAI,IAAIJ,OAAOH,EAAIM,OAAS,GAAI,OAE5EL,GAAOD,EAAIC,IACPI,IACFJ,GAAO,KAELD,EAAII,QACNH,GAAO,KAELD,EAAIE,WACND,GAAO,KAET,IAAIO,EAAYR,EAAIQ,UAChBA,GAA6B,oBAATC,OACtBR,GAAO,uDAAuDE,OAAOM,KAAKC,SAASC,mBAAmBC,KAAKC,UAAUL,MAAe,QAKtId,EAAQoB,kBAAkBb,EAAKH,EAAcJ,EAAQA,QACvD,CAoBMqB,CAAMjB,EAAcJ,EAASM,EAC/B,EACAH,OAAQ,YArBZ,SAA4BC,GAE1B,GAAgC,OAA5BA,EAAakB,WACf,OAAO,EAETlB,EAAakB,WAAWC,YAAYnB,EACtC,CAgBMoB,CAAmBpB,EACrB,EAEJ,C,2ECzDO,IAAKqB,EAAC,SAADA,GAAC,OAADA,EAAC,6BAADA,EAAC,4BAADA,EAAC,4BAADA,EAAC,4CAADA,CAAC,MAOb,MAAMC,EAAa,CACjB,CAACD,EAAEE,eAAgB,eACnB,CAACF,EAAEG,cAAe,eAClB,CAACH,EAAEI,cAAe,gCAClB,CAACJ,EAAEK,sBACD,0DAGEC,EAAa,CACjB,CAACN,EAAEE,eAAgB,SACnB,CAACF,EAAEG,cAAe,OAClB,CAACH,EAAEI,cAAe,mBAClB,CAACJ,EAAEK,sBAAuB,8BAGfE,EAAK,4BAELC,EAAU,CAAEP,KAAIK,MAEhBG,EAAIC,EAAAA,KAAKC,UAAU,KAAMJ,E,4DCf/B,MAAMK,GAAcC,EAAAA,EAAAA,WAAyC,WACvDC,GAAiBD,EAAAA,EAAAA,WAK5B,aAAc,CACdE,cAAe,eACfC,cAAe,gBACfC,gBAAiB,qBAEcJ,EAAAA,EAAAA,WAC/B,wB,YCvBFxC,EAAOC,QAAU,SAAU4C,EAAK3C,GAI9B,OAHKA,IACHA,EAAU,CAAC,GAER2C,GAGLA,EAAMC,OAAOD,EAAIE,WAAaF,EAAIG,QAAUH,GAGxC,eAAeI,KAAKJ,KACtBA,EAAMA,EAAIK,MAAM,GAAI,IAElBhD,EAAQiD,OACVN,GAAO3C,EAAQiD,MAKb,oBAAoBF,KAAKJ,IAAQ3C,EAAQkD,WACpC,IAAKzC,OAAOkC,EAAIQ,QAAQ,KAAM,OAAOA,QAAQ,MAAO,OAAQ,KAE9DR,GAjBEA,CAkBX,C,kDCxBe,SAASS,EAAgB9C,EAAK+C,EAAKC,GAYhD,OAXAD,GAAM,OAAcA,MACT/C,EACTiD,OAAOC,eAAelD,EAAK+C,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZrD,EAAI+C,GAAOC,EAENhD,CACT,C,kBCLAR,EAAOC,QANP,SAAwCK,GACtC,IAAIwD,EAAmD,KACnDA,GACFxD,EAAayD,aAAa,QAASD,EAEvC,C,mGCJIE,EAAgC,IAAIC,IAAI,cACxCC,EAA0B,IAA4B,KACtDC,EAAqC,IAAgCH,GAEzEE,EAAwBE,KAAK,CAACpE,EAAOqE,GAAI,+GAA+GF,k5CAC4pB,KAEpzB,QAAeD,EAAwBI,U,wSCHjCC,EAAa,IAAIC,IAAoB,CACzC,CAAC,KAAM,iBACP,CAAC,MAAO,mBACR,CAAC,MAAO,sBACR,CACE,OACA,2EAEF,CAAC,MAAO,cACR,CAAC,MAAO,YACR,CAAC,MAAO,4BACR,CAAC,OAAQ,qEACT,CAAC,MAAO,iCACR,CACE,OACA,6EAEF,CAAC,MAAO,cACR,CAAC,OAAQ,cACT,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,OAAQ,cACT,CAAC,MAAO,mBAGH,SAASC,EAAeC,GAC7B,MAAOlB,EAAOmB,GAAQC,EAAAA,MAAMC,WAAWH,EAAM,QAAS,GAChDI,GAAUtB,EAChB,MAAO,GAAGsB,EAAS,IAAMC,KAAKC,MAAMF,GAAUA,KAAUH,GAC1D,CAEO,SAASM,EACdC,EACAC,GAEA,MAAMC,EAAOF,GAAYG,EAAsBF,GAE/C,GAAIC,EAAKE,WAAW,UAClB,MAAO,CAAC,QAASC,GAGnB,OAAQH,GACN,IAAK,gBACL,IAAK,kBACH,MAAO,CAAC,WAAYI,GACtB,IAAK,kBACH,MAAO,CAAC,MAAOC,GACjB,IAAK,qBACL,IAAK,0EACH,MAAO,CAAC,OAAQC,GAClB,IAAK,2BACL,IAAK,oEACH,MAAO,CAAC,QAASC,GACnB,IAAK,gCACL,IAAK,4EACH,MAAO,CAAC,aAAcC,GAG1B,OAAIR,EAAKE,WAAW,SACX,CAAC,OAAQE,GAGX,CAAC,OAAQD,EAClB,CAEO,SAASF,EAAsBF,GAAsC,IAAAU,EAC1E,IAAIC,EAAM,GACV,MAAMC,EAAUZ,aAAQ,EAARA,EAAUa,MAAM,cAIhC,OAHID,IACFD,EAAMC,EAAQ,GAAGE,eAEO,QAA1BJ,EAAOtB,EAAW2B,IAAIJ,UAAI,IAAAD,EAAAA,EAAI,SAChC,C,YC/EA,IAAIM,EAAc,GAClB,SAASC,EAAqBC,GAE5B,IADA,IAAIC,GAAU,EACLC,EAAI,EAAGA,EAAIJ,EAAYpF,OAAQwF,IACtC,GAAIJ,EAAYI,GAAGF,aAAeA,EAAY,CAC5CC,EAASC,EACT,KACF,CAEF,OAAOD,CACT,CACA,SAASE,EAAaC,EAAMvG,GAG1B,IAFA,IAAIwG,EAAa,CAAC,EACdC,EAAc,GACTJ,EAAI,EAAGA,EAAIE,EAAK1F,OAAQwF,IAAK,CACpC,IAAIK,EAAOH,EAAKF,GACZlC,EAAKnE,EAAQ2G,KAAOD,EAAK,GAAK1G,EAAQ2G,KAAOD,EAAK,GAClDE,EAAQJ,EAAWrC,IAAO,EAC1BgC,EAAa,GAAG1F,OAAO0D,EAAI,KAAK1D,OAAOmG,GAC3CJ,EAAWrC,GAAMyC,EAAQ,EACzB,IAAIC,EAAoBX,EAAqBC,GACzC7F,EAAM,CACRC,IAAKmG,EAAK,GACVhG,MAAOgG,EAAK,GACZ5F,UAAW4F,EAAK,GAChBlG,SAAUkG,EAAK,GACf9F,MAAO8F,EAAK,IAEd,IAA2B,IAAvBG,EACFZ,EAAYY,GAAmBC,aAC/Bb,EAAYY,GAAmBE,QAAQzG,OAClC,CACL,IAAIyG,EAAUC,EAAgB1G,EAAKN,GACnCA,EAAQiH,QAAUZ,EAClBJ,EAAYiB,OAAOb,EAAG,EAAG,CACvBF,WAAYA,EACZY,QAASA,EACTD,WAAY,GAEhB,CACAL,EAAYvC,KAAKiC,EACnB,CACA,OAAOM,CACT,CACA,SAASO,EAAgB1G,EAAKN,GAC5B,IAAImH,EAAMnH,EAAQoH,OAAOpH,GAYzB,OAXAmH,EAAIjH,OAAOI,GACG,SAAiB+G,GAC7B,GAAIA,EAAQ,CACV,GAAIA,EAAO9G,MAAQD,EAAIC,KAAO8G,EAAO3G,QAAUJ,EAAII,OAAS2G,EAAOvG,YAAcR,EAAIQ,WAAauG,EAAO7G,WAAaF,EAAIE,UAAY6G,EAAOzG,QAAUN,EAAIM,MACzJ,OAEFuG,EAAIjH,OAAOI,EAAM+G,EACnB,MACEF,EAAIhH,QAER,CAEF,CACAL,EAAOC,QAAU,SAAUwG,EAAMvG,GAG/B,IAAIsH,EAAkBhB,EADtBC,EAAOA,GAAQ,GADfvG,EAAUA,GAAW,CAAC,GAGtB,OAAO,SAAgBuH,GACrBA,EAAUA,GAAW,GACrB,IAAK,IAAIlB,EAAI,EAAGA,EAAIiB,EAAgBzG,OAAQwF,IAAK,CAC/C,IACImB,EAAQtB,EADKoB,EAAgBjB,IAEjCJ,EAAYuB,GAAOV,YACrB,CAEA,IADA,IAAIW,EAAqBnB,EAAaiB,EAASvH,GACtC0H,EAAK,EAAGA,EAAKJ,EAAgBzG,OAAQ6G,IAAM,CAClD,IACIC,EAASzB,EADKoB,EAAgBI,IAEK,IAAnCzB,EAAY0B,GAAQb,aACtBb,EAAY0B,GAAQZ,UACpBd,EAAYiB,OAAOS,EAAQ,GAE/B,CACAL,EAAkBG,CACpB,CACF,C,YCtEA3H,EAAOC,QAVP,SAA2BQ,EAAKH,GAC9B,GAAIA,EAAawH,WACfxH,EAAawH,WAAWC,QAAUtH,MAC7B,CACL,KAAOH,EAAa0H,YAClB1H,EAAamB,YAAYnB,EAAa0H,YAExC1H,EAAa2H,YAAY9H,SAAS+H,eAAezH,GACnD,CACF,C,kDCVA,IAAI0H,EAEG,SAASC,EACdC,EACAX,GAEKS,IACHA,EAAgBhI,SAASmI,cAAc,OACvCH,EAAcpE,aAAa,YAAa,MACxCoE,EAAcpE,aAAa,cAAe,QAC1C5D,SAASoI,KAAKN,YAAYE,IAG5BA,EAAcpE,aAAa,SAASyE,EAAAA,EAAAA,GAAiBH,IACrDF,EAAcM,YAAcJ,EAAS7E,MAAMN,MAAM,EAAGwE,GAEpD,MAAMgB,EAAOvI,SAASmI,cAAc,QACpCI,EAAKD,YAAc,IACnBN,EAAcF,YAAYS,GAE1B,MAAMC,EAAOD,EAAKE,wBAElB,OADAF,EAAKrI,SACE,CACLwI,IAAKF,EAAKE,IACVC,KAAMH,EAAKG,KAEf,C,kDC1BA,IAAIX,EAEG,SAASY,EACdV,EACAW,EACAC,GAEKd,IACHA,EAAgBhI,SAASmI,cAAc,OACvCH,EAAcpE,aAAa,YAAa,MACxCoE,EAAcpE,aAAa,cAAe,QAC1C5D,SAASoI,KAAKN,YAAYE,IAE5BA,EAAcpE,aAAa,SAASyE,EAAAA,EAAAA,GAAiBH,IAErDF,EAAcM,YAAcO,EAE5B,MAAMN,EAAOvI,SAASmI,cAAc,QACpCI,EAAKD,YAAcQ,EACnBd,EAAcF,YAAYS,GAE1B,MAAMQ,EAAWR,EAAKE,wBAGtB,GAFAF,EAAKrI,SAED4I,EAAelI,QAAU,EAC3B,MAAO,CAACmI,GAGV,MAAMC,EAAcF,EAAe,GAC7BG,EAAcjJ,SAASmI,cAAc,QAC3Cc,EAAYX,YAAcU,EAC1BhB,EAAcF,YAAYmB,GAC1B,MAAMC,EAAcD,EAAYR,wBAChCQ,EAAY/I,SAEZ8H,EAAcM,YAAc,GAAGO,IAASC,EAAe/F,MAAM,GAAI,KACjE,MAAMoG,EAAeL,EAAeA,EAAelI,OAAS,GACtDwI,EAAepJ,SAASmI,cAAc,QAC5CiB,EAAad,YAAca,EAC3BnB,EAAcF,YAAYsB,GAC1B,MAAMC,EAAeD,EAAaX,wBAGlC,GAFAW,EAAalJ,SAETgJ,EAAYR,MAAQW,EAAaX,IACnC,MAAO,CAACK,GAGV,MAAMO,EAAmB,GAGzBA,EAAMrF,KACJ,IAAIsF,QACFL,EAAYP,KACZO,EAAYR,IACZK,EAASS,MAAQN,EAAYP,KAC7BO,EAAYO,OAASP,EAAYR,MAKrC,MAAMgB,EAASL,EAAaX,IAAMQ,EAAYO,OAiB9C,OAhBIC,GAAU,IACZJ,EAAMrF,KACJ,IAAIsF,QAAQR,EAASJ,KAAMO,EAAYO,OAAQV,EAASY,MAAOD,IAKnEJ,EAAMrF,KACJ,IAAIsF,QACFR,EAASJ,KACTU,EAAaX,IACbW,EAAaG,MAAQT,EAASJ,KAC9BU,EAAaI,OAASJ,EAAaX,MAIhCY,CACT,C,YC9EA,IAAIM,EAAO,CAAC,EA+BZ/J,EAAOC,QAPP,SAA0B+J,EAAQC,GAChC,IAAIC,EAtBN,SAAmBA,GACjB,QAA4B,IAAjBH,EAAKG,GAAyB,CACvC,IAAIC,EAAchK,SAASiK,cAAcF,GAGzC,GAAIG,OAAOC,mBAAqBH,aAAuBE,OAAOC,kBAC5D,IAGEH,EAAcA,EAAYI,gBAAgBC,IAC5C,CAAE,MAAOC,GAEPN,EAAc,IAChB,CAEFJ,EAAKG,GAAUC,CACjB,CACA,OAAOJ,EAAKG,EACd,CAIeQ,CAAUV,GACvB,IAAKE,EACH,MAAM,IAAIS,MAAM,2GAElBT,EAAOjC,YAAYgC,EACrB,C,kBChCe,SAASW,IAYtB,OAXAA,EAAWnH,OAAOoH,OAASpH,OAAOoH,OAAOC,OAAS,SAAUZ,GAC1D,IAAK,IAAI3D,EAAI,EAAGA,EAAIwE,UAAUhK,OAAQwF,IAAK,CACzC,IAAIyE,EAASD,UAAUxE,GACvB,IAAK,IAAIhD,KAAOyH,EACVvH,OAAOwH,UAAUC,eAAeC,KAAKH,EAAQzH,KAC/C2G,EAAO3G,GAAOyH,EAAOzH,GAG3B,CACA,OAAO2G,CACT,EACOU,EAASrJ,MAAM6J,KAAML,UAC9B,C,4BCJA/K,EAAOC,QANP,SAA4BC,GAC1B,IAAImL,EAAUlL,SAASmI,cAAc,SAGrC,OAFApI,EAAQoL,cAAcD,EAASnL,EAAQqL,YACvCrL,EAAQ8J,OAAOqB,EAASnL,EAAQA,SACzBmL,CACT,C,2FCAA,IAAIG,EAAkC,KAE/B,SAASC,EAAeC,GAC7BF,EAAcE,CAChB,CAEO,SAASC,IACd,OAAOH,CACT,CAEAI,eAAeC,OACb,8BACAC,EAAAA,EAAAA,qBAAoBL,G,gbCuBtBM,EAAAA,EAAAA,gBAAe7J,EAAAA,GAAIC,EAAAA,GAEnB,MAEM,cAAE6J,GAAa,SAAEC,GAAQ,MAAEC,GAAK,OAAEC,KAAWC,EAAAA,EAAAA,oBAEtCC,IAAmBC,EAAAA,EAAAA,YAAWC,IAAwB,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,IAAAC,QAAAC,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAyCnE,MAAAc,WAMsBC,EAAAA,iBAAyCC,WAAAA,GAAA,SAAA3C,YAAA4C,EAAAA,EAAAA,GAAA,KAAAV,KAAA3J,EAAAA,EAAAA,GAAA,YAAAsK,EAAA,OACvDC,EAAAA,EAAAA,gBAAuBC,EAAAA,EAAAA,GAAA,KAAArB,GAAAsB,EAAA,QAAAD,EAAAA,EAAAA,GAAA,KAAAnB,IAAAqB,EAAA,MAAAC,EAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAAlB,IAAAsB,EAAA,MAAAC,EAAA,SAAAL,EAAAA,EAAAA,GAAA,KAAAjB,IAAAuB,EAAA,MAAAC,EAAA,SAAAP,EAAAA,EAAAA,GAAA,KAAAhB,IAAAwB,EAAA,MAAAC,EAAA,SAAAT,EAAAA,EAAAA,GAAA,KAAAf,IAAAyB,EAAA,MAAAC,EAAA,SAoB7BX,EAAAA,EAAAA,GAAA,KAAAd,IAAA0B,EAAA,MAAAC,EAAA,SAMAb,EAAAA,EAAAA,GAAA,KAAAX,IAAoByB,EAAA,MAAIpL,KACtBqL,EAAAA,EAAAA,GAAA5B,GAAA7B,KAAK0D,GAAeC,KAAKvL,EAAM,KAC/BsK,EAAAA,EAAAA,GAAA,KAAAV,GAAA4B,EAAA,QAKFlB,EAAAA,EAAAA,GAAA,KAAAT,IAAiB4B,EAAA,MAAIC,KACnBL,EAAAA,EAAAA,GAAA5B,GAAA7B,KAAK+D,GAAYJ,KAAKG,EAAQ,KAC9BpB,EAAAA,EAAAA,GAAA,KAAAR,GAAA8B,EAAA,QAKFtB,EAAAA,EAAAA,GAAA,KAAAP,IAAoB8B,GAAA,MAAI3D,KACtBmD,EAAAA,EAAAA,GAAA5B,GAAA7B,KAAKkE,GAAeP,KAAKrD,EAAQ,GACjC,aAvCO6D,GAAQ,OAAAC,EAAAA,EAAAA,GAAA/C,GAAA,kBAAR8C,CAAQE,IAAAC,EAAAA,EAAAA,GAAAjD,GAAA,KAAAgD,EAAA,gBAGRE,GAAW,OAAAH,EAAAA,EAAAA,GAAA7C,GAAA,qBAAXgD,CAAWF,IAAAC,EAAAA,EAAAA,GAAA/C,GAAA,KAAA8C,EAAA,cAGXG,GAAS,OAAAJ,EAAAA,EAAAA,GAAA5C,GAAA,mBAATgD,CAASH,IAAAC,EAAAA,EAAAA,GAAA9C,GAAA,KAAA6C,EAAA,gBAGTI,GAAW,OAAAL,EAAAA,EAAAA,GAAA3C,GAAA,qBAAXgD,CAAWJ,IAAAC,EAAAA,EAAAA,GAAA7C,GAAA,KAAA4C,EAAA,aAGXK,GAAQ,OAAAN,EAAAA,EAAAA,GAAA1C,GAAA,kBAARgD,CAAQL,IAAAC,EAAAA,EAAAA,GAAA5C,GAAA,KAAA2C,EAAA,kBAGRM,GAAa,OAAAP,EAAAA,EAAAA,GAAAzC,GAAA,uBAAbgD,CAAaN,IAAAC,EAAAA,EAAAA,GAAA3C,GAAA,KAAA0C,EAAA,CA2BtBO,QAAAA,CAASxM,GAAe,IAAAyM,EACN,QAAhBA,EAAA7E,KAAK8E,IAAIC,eAAO,IAAAF,GAAhBA,EAAkBD,SAASxM,EAC7B,CAGA4M,QAAAA,GAAW,IAAAC,EACT,OAAuB,QAAvBA,EAAOjF,KAAK8E,IAAIC,eAAO,IAAAE,OAAA,EAAhBA,EAAkBD,UAC3B,CAGAE,YAAAA,GAAe,IAAAC,EACb,OAAuB,QAAvBA,EAAOnF,KAAK8E,IAAIC,eAAO,IAAAI,OAAA,EAAhBA,EAAkBD,cAC3B,CAEAE,MAAAA,GACE,OACEC,IAAAA,cAACpE,GAAgB,CACfkD,SAAUnE,KAAKmE,SACfI,YAAavE,KAAKuE,YAClBC,UAAWxE,KAAKwE,UAChBC,YAAazE,KAAKyE,YAClBC,SAAU1E,KAAK0E,SACfC,cAAe3E,KAAK2E,cACpBW,iBAAiBlB,EAAAA,EAAAA,GAAKrC,GAAL/B,MACjBuF,cAAcnB,EAAAA,EAAAA,GAAKnC,GAALjC,MACdwF,iBAAiBpB,EAAAA,EAAAA,GAAKjC,GAALnC,MACjByF,KAAMzF,KACN8E,IAAK9E,KAAK8E,KAGhB,EAoBF,SAAS3D,GAAsBuE,EAa7BZ,GACA,IAbA,KACEW,EAAI,SACJtB,EAAQ,YACRI,EAAW,UACXC,EAAS,YACTC,EACAC,SAAUiB,EAAY,cACtBhB,EAAa,gBACbW,EAAe,aACfC,EAAY,gBACZC,GACsBE,EAGxB,MAAME,GAAeC,EAAAA,EAAAA,QAAuB,MACtCC,GAAcD,EAAAA,EAAAA,QAA8B,OAC3CzN,EAAOwM,IAAYmB,EAAAA,EAAAA,UAAS,IAC7BC,GAAWH,EAAAA,EAAAA,QAAO,KACjBI,EAAgBC,IAAqBH,EAAAA,EAAAA,UAC1C,OAEKI,EAAgBC,IAAqBL,EAAAA,EAAAA,UAE1C,OACKM,EAAeC,IAAoBP,EAAAA,EAAAA,UAAS,KAC5CQ,EAAmBC,IAAwBT,EAAAA,EAAAA,UAAS,IACpDU,EAAeC,IAAoBX,EAAAA,EAAAA,UAAS,MAC5CrB,EAAUiC,IAAeZ,EAAAA,EAAAA,UAAgCJ,IACzDrF,EAASsG,IAAcb,EAAAA,EAAAA,UAAgC,OACvDc,EAAWC,IAAgBf,EAAAA,EAAAA,UAAwB,OACnDgB,EAAgBC,IAAqBjB,EAAAA,EAAAA,UAC1C,OAEKkB,EAAgBC,IAAqBnB,EAAAA,EAAAA,UAE1C,OACKoB,EAAaC,IAAkBrB,EAAAA,EAAAA,UAAS,IACzCsB,GAAexB,EAAAA,EAAAA,QAA8C,OAEnEyB,EAAAA,EAAAA,YAAU,KACRX,EAAYhB,EAAa,GACxB,CAACA,IAEJ,MAAM4B,EAAgB5C,aAAa,EAAbA,EAAe6C,QAC/BC,GAAe9C,aAAa,EAAbA,EAAe+C,QAC9B,MACJC,GAAK,WACLC,GAAU,YACVC,GAAW,WACXC,GAAU,SACVC,GAAQ,aACRC,GAAY,UACZC,GAAS,SACTC,GAAQ,MACRC,KACEC,EAAAA,EAAAA,GAAkBzD,IAEtB2C,EAAAA,EAAAA,YAAU,KACHC,GACHK,IACF,GACC,CAACL,EAAeK,MAEnBN,EAAAA,EAAAA,YAAU,KACR,MAAMe,EAAQpJ,OAAOqJ,mBACjBD,UACKpJ,OAAOqJ,mBAEc,iBAAnBD,aAAK,EAALA,EAAOE,WAChBvC,EAASjB,QAAUsD,EAAME,QACzB3D,EAASyD,EAAME,SACjB,GACC,KAEHC,EAAAA,EAAAA,qBAAoB1D,GAAK,KAAM,CAC7BF,SAAWxM,IACT4N,EAASjB,QAAU3M,EACnBwM,EAASxM,EAAM,EAEjB4M,SAAUA,IACDgB,EAASjB,QAElBG,aAAcA,KAAM,IAAAuD,EACC,QAAnBA,EAAA3C,EAAYf,eAAO,IAAA0D,GAAnBA,EAAqBC,OAAO,MAIhC,MAAMC,IACHvQ,IACA4P,MACE3B,GAAiBjO,EAAMzC,QAAU0Q,EAAc1Q,UAC/CwR,GAAe/O,EAAMzC,QAAUwR,EAAYxR,OAE1CiT,IAAWC,EAAAA,EAAAA,cACdzQ,IACC,GAAIuQ,GACF,OAEF,MAAMJ,EAAUnQ,EAAMN,MAAMqP,EAAYxR,QAAU0Q,EAAc1Q,QAChE2P,EAAgBiD,GAChBhD,EAAa,CACXgD,UACAZ,MAAOM,GACPa,IAAKxI,EACLyI,aAAclC,GACd,GAEJ,CACE8B,GACAxB,EAAYxR,OACZ0Q,EAAc1Q,OACd2K,EACA2H,GACApB,EACAtB,EACAD,IAIE0D,IAAeH,EAAAA,EAAAA,cAClBxJ,IACKA,EAAE4J,cAAc7Q,OAClBwQ,GAASvJ,EAAE4J,cAAc7Q,MAC3B,GAEF,CAACwQ,KAGGM,IAAyBL,EAAAA,EAAAA,cAC7B,CAAC5L,EAA+BkM,KAC9B,MAAM,MAAE/Q,EAAK,eAAEgR,EAAc,aAAEC,GAAiBpM,EAChD,GACqB,OAAnBmM,GACAA,IAAmBC,GADnBD,MAEAD,GAAAA,EAAWxT,OACX,CACA,MAAM2T,EAAkBlR,EAAMN,MAAM,EAAGsR,GACvC,GAAIE,EAAgBpP,WAAW,KAAM,CACnC,MAAMqP,EAAcD,EAAgBxR,MAAM,GAAG+C,cACvC2O,EAAmBL,EACtBM,QACEC,GACCA,EAASC,WAAW9O,cAAc+O,SAASL,IAC3CG,EAASG,KAAKhP,cAAc+O,SAASL,KAExCzR,MAAM,EArSQ,IAsSjB,GAAI0R,EAAiB7T,OAAS,EAAG,CAC/B,MAAMmU,GAAW9M,EAAAA,EAAAA,GACfC,EACAmM,GAEIW,EAAe9M,EAASO,wBAgB9B,OAfA0I,EAAkB,CAChBrH,MAAO,CACLnB,KAAMoM,EAASpM,KAAO,GAAKqM,EAAarM,KACxCD,IAAKqM,EAASrM,IAAM,GAAKsM,EAAatM,IACtCqM,SAAU,WACVE,OAAQ,GAEVC,MAAO,CAAEC,MAAO,EAAGC,IAAKf,GACxBgB,QAASZ,EAAiBa,KAAKX,IAAQ,CACrCvR,IAAKuR,EAASC,WACdW,KAAMZ,EAASG,KACfU,KAAMb,QAGVlD,EAAqB,IACd,CACT,CACF,CACF,CACAN,EAAkB,KAAK,GAEzB,IAGIsE,IAAyB3B,EAAAA,EAAAA,cAC7B,CACE5L,EACAwN,EACA7M,KAEA,MAAM,MAAExF,EAAK,eAAEgR,EAAc,aAAEC,GAAiBpM,EAChD,GACqB,OAAnBmM,GACAA,IAAmBC,GADnBD,MAEAqB,GAAAA,EAAa9U,OACb,CACA,MAAM2T,EAAkBlR,EAAMN,MAAM,EAAGsR,GACvC,GAAIE,EAAgBpP,WAAW0D,GAAS,CACtC,MAAM8M,EAAapB,EAAgBxR,MAAM8F,EAAOjI,QAAQkF,cAClD8P,EAAkBF,EACrBhB,QACEnJ,IAAO,IAAAsK,EAAA,OACNtK,EAAQuK,MAAMhQ,cAAc+O,SAASc,KACnB,QAD8BE,EAChDtK,EAAQwK,kBAAU,IAAAF,OAAA,EAAlBA,EAAoB/P,cAAc+O,SAASc,GAAW,IAEzD5S,MAAM,EAzVQ,IA0VjB,GAAI6S,EAAgBhV,OAAS,EAAG,CAC9B,MAAMoV,EAAUC,GACdL,EACA1N,EACAmM,GAIF,OAFApC,EAAkB+D,GAClBvE,EAAqB,IACd,CACT,CACF,CACF,CACAQ,EAAkB,KAAK,GAEzB,IAIIiE,IAAwBpF,EAAAA,EAAAA,SAAO,IACrCyB,EAAAA,EAAAA,YAAU,KAAM,IAAA4D,EAAAC,EACd,MAAMlO,EAA8B,QAAtBiO,EAAGpF,EAAYf,eAAO,IAAAmG,OAAA,EAAnBA,EAAqBjL,SAEpCgL,GAAsBlG,SACrBN,GACAxH,GACDlI,SAASqW,gBAAkB3F,IACZ,QAAf0F,EAAA1F,EAAK4F,kBAAU,IAAAF,OAAA,EAAfA,EAAiBC,iBAAkBnO,IAIrCgO,GAAsBlG,SAAU,EAChCmE,GAAuBjM,EAAUwH,GAAY,GAC5C,CAACA,EAAagB,EAAMyD,KAEvB,MAAMoC,IAAyBzF,EAAAA,EAAAA,SAAO,IACtCyB,EAAAA,EAAAA,YAAU,KAAM,IAAAiE,EAAAC,EACd,MAAMvO,EAA8B,QAAtBsO,EAAGzF,EAAYf,eAAO,IAAAwG,OAAA,EAAnBA,EAAqBtL,SAEpCqL,GAAuBvG,SACtBY,GACA1I,GACDlI,SAASqW,gBAAkB3F,IACZ,QAAf+F,EAAA/F,EAAK4F,kBAAU,IAAAG,OAAA,EAAfA,EAAiBJ,iBAAkBnO,IAIrCqO,GAAuBvG,SAAU,EACjCyF,GAAuBvN,EAAU0I,EAAc,KAAI,GAClD,CAACA,EAAcF,EAAM+E,KAExB,MAAMiB,IAAe5C,EAAAA,EAAAA,cAClBxJ,IACC,MAAM,MAAEjH,GAAUiH,EAAEP,OACpBkH,EAASjB,QAAU3M,EACnBwM,EAASxM,GAEL8Q,GAAuB7J,EAAEP,OAAQ2F,IAGrC+F,GAAuBnL,EAAEP,OAAQ4F,EAAU+B,EAAc,GAE3D,CACEhC,EACAgC,EACA/B,EACA8F,GACAtB,MAIJ5B,EAAAA,EAAAA,YAAU,KACJjB,IAAkBjO,EAAM8B,WAAWmM,KACrCC,EAAiB,IACjBQ,EAAa,MACf,GACC,CAACT,EAAejO,KAEnBkP,EAAAA,EAAAA,YAAU,OAELlP,EAAM8B,WAAWuM,IACjBU,IAAgB/O,EAAM8B,WAAWiN,MAElCC,EAAe,IACfR,EAAW,MACXpB,EAAgB,MAChBmB,EAAYhB,GACZe,EAAiB,KACjBM,EAAkB,MACpB,GACC,CAACP,EAAeU,EAAa3B,EAAiBpN,EAAOuN,IAExD,MAAM+F,IAAoB7C,EAAAA,EAAAA,cAAY,KACpCD,GAAS5C,EAASjB,QAAQ,GACzB,CAAC6D,MAEJtB,EAAAA,EAAAA,YACE,KACM9C,GACFmH,QAAQC,UAAUC,MAAK,KAAM,IAAAC,EACR,QAAnBA,EAAAhG,EAAYf,eAAO,IAAA+G,GAAnBA,EAAqBpD,OAAO,GAEhC,GAIF,KAGFpB,EAAAA,EAAAA,YAAU,KAAM,IAAAyE,EACd,MAAM9L,EAA6B,QAAtB8L,EAAGjG,EAAYf,eAAO,IAAAgH,OAAA,EAAnBA,EAAqB9L,QACrC,IAAKoG,IAAkBpG,EAErB,YADAmG,EAAkB,MAGpB,MAAM/H,GAAQV,EAAAA,EAAAA,GACZsC,EACA,GAEAoG,EAAcvO,MAAM,GAAI,IAE1BsO,EACE/H,EAAMgM,KAAK9M,IAAI,CACbG,KAAMH,EAAKG,KAAO,EAClBD,IAAKF,EAAKE,IAAM,EAChBiB,MAAOnB,EAAKmB,MAAQ,EACpBD,OAAQlB,EAAKkB,OAAS,MAEzB,GACA,CAAC4H,EAAe0B,MAEnBT,EAAAA,EAAAA,YAAU,KAAM,IAAA0E,EACd,MAAM/L,EAA6B,QAAtB+L,EAAGlG,EAAYf,eAAO,IAAAiH,OAAA,EAAnBA,EAAqB/L,QACrC,IAAKkH,IAAgBlH,EAEnB,YADAiH,EAAkB,MAGpB,MAAM7I,GAAQV,EAAAA,EAAAA,GACZsC,EACA,GAEAkH,EAAYrP,MAAM,GAAI,IAExBoP,EACE7I,EAAMgM,KAAK9M,IAAI,CACbG,KAAMH,EAAKG,KAAO,EAClBD,IAAKF,EAAKE,IAAM,EAChBiB,MAAOnB,EAAKmB,MAAQ,EACpBD,OAAQlB,EAAKkB,OAAS,MAEzB,GACA,CAAC0I,EAAaY,KAEjB,MAAM3H,IAAc6L,EAAAA,EAAAA,UAAQ,KAC1B,MAAM3L,GAAUC,EAAAA,EAAAA,kBAIhB,OAHID,IACFD,EAAAA,EAAAA,gBAAe,MAEVC,CAAO,GACb,KAEHgH,EAAAA,EAAAA,YAAU,KACJlH,KACFwG,EAAWxG,GAAY0D,SACvB0B,EAAgBpF,GAAY0D,SAC9B,GACC,CAAC1D,GAAaoF,KAEjB8B,EAAAA,EAAAA,YAAU,KAAM,IAAA4E,EACd,MAAMjM,EAA6B,QAAtBiM,EAAGpG,EAAYf,eAAO,IAAAmH,OAAA,EAAnBA,EAAqBjM,QACrC,GAAIG,IAAeH,EAAS,CAC1B,MAAMkM,EAAa,IAAI/L,GAAYE,WAC7BjC,GAAQV,EAAAA,EAAAA,GACZsC,EACA,GAEAkM,EAAWrU,MAAM,GAAI,IAEvBoP,EACE7I,EAAMgM,KAAK9M,IAAI,CACbG,KAAMH,EAAKG,KAAO,EAClBD,IAAKF,EAAKE,IAAM,EAChBiB,MAAOnB,EAAKmB,MAAQ,EACpBD,OAAQlB,EAAKkB,OAAS,OAG1BuH,EAASjB,QAAUoH,EACnB9E,EAAatC,QAAU,CACrBmF,MAAOiC,EAAWxW,OAClBwU,IAAKgC,EAAWxW,QAElBiP,EAASuH,GACT/E,EAAe+E,EACjB,IACC,CAAC/L,KAEJ,MAAMgM,IAAgBvD,EAAAA,EAAAA,cACnBwD,IAAyB,IAAAC,EACxB,MAAMC,EAAU,IAAIF,EAAO/B,QACrB1M,EAAS,GAAGoI,EAASjB,QAAQjN,MAAM,EAAGmO,EAAgBgE,MAAMC,SAASqC,IACrEC,EAAW,GAAG5O,IAASoI,EAASjB,QAAQjN,MAAMmO,EAAgBgE,MAAME,OAC1EnE,EAASjB,QAAUyH,EACnBnF,EAAatC,QAAU,CAAEmF,MAAOtM,EAAOjI,OAAQwU,IAAKvM,EAAOjI,QAC3DiP,EAAS4H,GACTlG,EAAiBiG,GACjBrG,EAAkB,MAClBY,EAAcuF,EAAiC9B,KAAMZ,YAClC,QAAnB2C,EAAAxG,EAAYf,eAAO,IAAAuH,GAAnBA,EAAqB5D,OAAO,GAE9B,CAACzC,IAGGwG,IAAsB5D,EAAAA,EAAAA,cACzBwD,IAAkC,IAAAK,EACjC,MAAMC,EACJN,EAAOO,aAAeP,EAAOO,YAAYjX,OAAS,EAC9C2K,EAAU,GAAGmG,EAAcxO,QAAQ,KAAM,QAAQoU,EAAO/B,QACxD1M,EAAS,GAAGoI,EAASjB,QAAQjN,MAAM,EAAGiP,EAAgBkD,MAAMC,SAAS5J,IACrEkM,EAAW,GAAG5O,IAASoI,EAASjB,QAAQjN,MAAMiP,EAAgBkD,MAAME,OAC1EnE,EAASjB,QAAUyH,EACnBnF,EAAatC,QAAU,CAAEmF,MAAOtM,EAAOjI,OAAQwU,IAAKvM,EAAOjI,QAC3DiP,EAAS4H,GACLG,GACEN,EAAOvI,UACTsD,EAAe9G,GACfsG,EAAWyF,EAAOvI,UAEpB6C,EAAY0F,EAAOO,aACnBlG,EAAiBpG,GAEjBuM,YAAW,KACT,MAAM9B,EAAUC,GACdqB,EAAOO,YAAa9U,MAAM,EAjkBX,IAkkBfgO,EAAYf,QAAS9E,QACrBrC,EAAOjI,QAETqR,EAAkB+D,GAClBvE,EAAqB,EAAE,GACtB,OAEHY,EAAe9G,GACfsG,EAAWyF,EAAOvI,SAClBkD,EAAkB,MAClBN,EAAiB,KACjBlB,EAAgB6G,EAAOvI,UAEN,QAAnB4I,EAAA5G,EAAYf,eAAO,IAAA2H,GAAnBA,EAAqBhE,OAAO,GAE9B,CAAC3B,EAAgBN,EAAejB,IAG5BsH,IAAgBjE,EAAAA,EAAAA,cACnBxJ,IACC,OAAQA,EAAElH,KACR,IAAK,SACH,IAAK8N,IAAmBc,EACtB,OAOF,OALA1H,EAAE0N,iBACF1N,EAAE2N,kBACF3N,EAAE4N,YAAYC,2BACdhH,EAAkB,MAClBc,EAAkB,OACX,EACT,IAAK,UACL,IAAK,YACH,IAAKf,IAAmBc,EACtB,OAcF,OAZA1H,EAAE0N,iBACF1N,EAAE2N,kBACF3N,EAAE4N,YAAYC,2BACd1G,GAAsB2G,IACpB,MAAMC,EAAYD,GAAkB,YAAV9N,EAAElH,KAAqB,EAAI,GAI/CkV,EAHoBC,IACvBrH,GAAkBc,GAAiBqD,SAENzU,OAEhC,OADc0X,EAAQD,GAAaC,CACxB,KAEN,EAET,IAAK,QAAS,CACZ,IAAKpH,IAAmBc,EACtB,OAEF1H,EAAE0N,iBACF1N,EAAE2N,kBACF3N,EAAE4N,YAAYC,2BACd,MAAMK,EAAeD,IAClBrH,GAAkBc,GAAiBqD,SACpC7D,GAMF,OALIN,EACFmG,GAAcmB,GAEdd,GAAoBc,IAEf,CACT,CACA,IAAK,SACL,IAAK,YAAa,CAChB,MAAMC,EAAW,CACf,CACEC,WAAYpH,EAAc1Q,OAC1B+X,aAAc,GAEhB,CACED,WAAYtG,EAAYxR,OACxB+X,aAAc,IAIlB,IAAK,MAAM,WAAED,EAAU,aAAEC,KAAkBF,EACzC,GAAIC,EAAY,CACd,IAAI,eAAErE,EAAc,aAAEC,GAAiBhK,EAAE4J,cACrCG,IAAmBC,IACP,cAAVhK,EAAElH,IACJiR,GAAkB,EAElBC,GAAgB,GAGpB,MAAMsE,EAAeD,EACfE,EAAaD,EAAeF,EAClC,GAAIrE,EAAiBwE,GAAcvE,EAAesE,EAAc,CAC9D,MAAMzD,EAAQvQ,KAAKkU,IAAIzE,EAAgBuE,GACjCxD,EAAMxQ,KAAKmU,IAAIzE,EAAcuE,GAC7BpB,EAAW,GAAGxG,EAASjB,QAAQjN,MAAM,EAAGoS,KAASlE,EAASjB,QAAQjN,MAAMqS,KAM9E,OALAnE,EAASjB,QAAUyH,EACnBnF,EAAatC,QAAU,CAAEmF,QAAOC,IAAKD,GACrCtF,EAAS4H,GACTnN,EAAE0N,iBACF1N,EAAE2N,mBACK,CACT,CACF,CAEF,KACF,EACF,GAEF,CACEzG,EACAQ,EACAI,EAAYxR,OACZyW,GACAK,GACAxG,EACAI,EAAc1Q,SAIZoY,IAAkBlI,EAAAA,EAAAA,QAAwB,MAE1CmI,IAAiBnF,EAAAA,EAAAA,cACpBlB,IAAkB,IAAAsG,EACjBpG,GAAYF,GACO,QAAnBsG,EAAAnI,EAAYf,eAAO,IAAAkJ,GAAnBA,EAAqBvF,OAAO,GAE9B,CAACb,KAGH,OACExC,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,OAAK6I,UAAU,QACb7I,IAAAA,cAAA,OAAK6I,UAAU,YAAYpJ,IAAKc,GAC9BP,IAAAA,cAAC8I,EAAAA,EAAkB,CACjBvI,aAAcA,EACdd,IAAKgB,EACL1N,MAAOA,EACPgW,QAAS,GAAK,GACdC,YAAatG,GAAW,IAAM,GAC9BuG,YAAU,EACVnK,SAAUA,EACVI,YAAaA,QAAAA,GAAevN,EAAAA,EAAAA,GAAET,EAAAA,EAAEE,eAChC8X,WAAW,sBACXC,oBAAqBnH,EACrBoH,SAAUzF,GACV0F,SAAUjD,GACVkD,UAAW7B,GACX8B,QAASzG,GACTtJ,MAAO,CACLgQ,WAAY9G,GAAW,GAAK,MAG/BA,IACC1C,IAAAA,cAACyJ,EAAAA,EAAa,CACZnH,MAAOA,GACPoH,SAAUA,CAACC,EAAKC,KACdnH,GAAWkH,GACXC,SAAAA,EAAiBC,OAAO,EAE1BC,MAAOA,KAAM,IAAAC,EACY,QAAvBA,EAAArB,GAAgBhJ,eAAO,IAAAqK,GAAvBA,EAAyBC,eAAe,IAI9ChK,IAAAA,cAAA,OAAK6I,UAAU,eACb7I,IAAAA,cAAA,WACEA,IAAAA,cAAA,QAAMwE,KAAK,aAEbxE,IAAAA,cAAA,OAAK6I,UAAU,WACZ3G,EACClC,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACiK,EAAAA,EAAY,CACXxK,IAAKiJ,GACLrG,OAAQD,GACRtD,SAAU+D,GACVwG,SAAW/G,IAAU,IAAA4H,EACnB1H,GAAYF,GACO,QAAnB4H,EAAAzJ,EAAYf,eAAO,IAAAwK,GAAnBA,EAAqB7G,OAAO,IAGhCrD,IAAAA,cAAA,OAAK6I,UAAU,iBAEf,KACJ7I,IAAAA,cAAA,UACE6I,UAAU,WACV/J,SAAUwE,GACV6G,QAAS9D,IAETrG,IAAAA,cAAClO,EAAAA,GAAW,CAACsY,IAAI,KAAK7R,OAAO,MAAM8R,KAAK,gBAI7CvJ,aAAc,EAAdA,EAAgBkE,KAAI,CAACsF,EAASrT,IAC7B+I,IAAAA,cAAA,OAAKlN,IAAKmE,EAAO4R,UAAU,kBAAkBrP,MAAO8Q,MAErD1I,aAAc,EAAdA,EAAgBoD,KAAI,CAACsF,EAASrT,IAC7B+I,IAAAA,cAAA,OAAKlN,IAAKmE,EAAO4R,UAAU,kBAAkBrP,MAAO8Q,MAErD1J,IACC2J,EAAAA,EAAAA,cACEvK,IAAAA,cAAChO,EAAAA,GAAc,CACb+S,QAASnE,EAAemE,QACxBvL,MAAOoH,EAAepH,MACtBgR,WAAYC,GACV7J,EAAemE,QACf7D,GAEFwJ,YAAY/Y,EAAAA,EAAAA,GAAET,EAAAA,EAAEI,cAChBW,cAAgB+H,GAAM+M,GAAc/M,EAAE2Q,UAExCjb,SAASoI,MAEZ4J,IACC6I,EAAAA,EAAAA,cACEvK,IAAAA,cAAChO,EAAAA,GAAc,CACb+S,QAASrD,EAAeqD,QACxBvL,MAAOkI,EAAelI,MACtBgR,WAAYC,GACV/I,EAAeqD,QACf7D,GAEFwJ,WACoB,MAAlBtJ,GACIzP,EAAAA,EAAAA,GAAET,EAAAA,EAAEI,eACJK,EAAAA,EAAAA,GAAET,EAAAA,EAAEK,qBAAsB,CAAE8E,MAnyBvB,KAqyBXpE,cAAgB+H,GACdoN,GAAoBpN,EAAE2Q,UAG1Bjb,SAASoI,QAIjBkI,IAAAA,cAAC4K,EAAAA,EAAiB,CAChB9L,UAAWoD,GAAiBW,GAC5BvD,cAAeA,EACfqJ,eAAgBA,KAIxB,CAEA,SAASV,GACPlD,GAEA,OAAOA,EAAQX,QACZ4C,GAC0B,UAAxBA,EAAerS,MAA6C,YAAxBqS,EAAerS,MAE1D,CAEA,SAAS8V,GACP1F,EACA9N,GAGA,MAAO,CADmBgR,GAAqBlD,GACrB9N,GAAOnE,IACnC,CAEA,SAAS6S,GACPtG,EACAzH,EACAmM,GAEA,MAAMU,GAAW9M,EAAAA,EAAAA,GAA2BC,EAAUmM,GAChDW,EAAe9M,EAASO,wBAC9B,MAAO,CACLqB,MAAO,CACLnB,KAAMoM,EAASpM,KAAO,GAAKqM,EAAarM,KACxCD,IAAKqM,EAASrM,IAAM,GAAKsM,EAAatM,IACtCqM,SAAU,WACVE,OAAQ,GAEVC,MAAO,CAAEC,MAAO,EAAGC,IAAKf,GACxBgB,QAAS8F,GAAyBxL,GAEtC,CAEA,SAASwL,GACPxL,GAGA,GADgBA,EAASyL,OAAOrH,GAAQA,EAAIsH,UAAYtH,EAAIgC,aAC/C,CACX,MAAMuF,EAAS,IAAIjX,IACnB,IAAK,MAAMkH,KAAWoE,EAAU,CAC9B,MAAM0L,EAAW9P,EAAQ8P,SACzB,IAAIE,EAAQD,EAAOvV,IAAIsV,GAClBE,GACHD,EAAOE,IACLH,EACCE,EAAQ,CACPzF,MAAOvK,EAAQwK,WACfpG,SAAU,KAIhB4L,EAAM5L,SAAS1L,KAAKsH,EACtB,CACA,MAAO,IAAI+P,EAAOG,UAAUC,SAASH,GAAU,CAC7C,CACEtW,KAAM,QACNsQ,KAAMgG,EAAMzF,UAEX6F,GAAkBJ,EAAM5L,YAE/B,CAEA,OAAOgM,GAAkBhM,EAC3B,CAEA,SAASgM,GAAkBhM,GACzB,OAAOA,EAAS2F,KAAK/J,IAAO,CAC1BnI,IAAKmI,EAAQlI,MACbkS,KAAMhK,EAAQuK,MACd+B,YAAatM,EAAQsM,YACrB9I,QAASxD,EAAQwD,WAErB,CAjwBC6M,EAAAvO,KAAA/C,GAAAsD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAG,EAAAkN,EAAApN,EAAAI,EAAAG,EAAA8M,EAAAhN,EAAAG,EAAAE,EAAA4M,GAAA7M,GAAAzB,GAAAuO,GAAA3P,GAAA4P,KAAAC,EAAAA,EAAAA,GAAAN,EAAA,CAnFA/P,GAAc,qBAAsB,CACnCsQ,WAAY,CAACC,EAAAA,EAAWC,EAAAA,GACxBC,cAAe,CACbC,gBAAgB,MAElB,EAICzQ,GAAS,CAAE7G,KAAMuX,UAAU,eAG3B1Q,KAAU,kBAGVA,GAAS,CAAE7G,KAAMuX,UAAU,gBAG3B1Q,GAAS,CAAE2Q,WAAW,IAAQ,kBAG9B3Q,GAAS,CAAE2Q,WAAW,IAAQ,eAG9B3Q,GAAS,CAAE2Q,WAAW,IAAQ,oBAM9B1Q,GAAM,CAAE9G,KAAM,mBAAmB,kBAAAyX,IAAArN,EAAAA,EAAAA,GAAAxC,GAAA6P,GAAA,CAAAA,EAAApN,KAAAC,EAAAA,EAAAA,GAAA1C,GAAA6P,EAAApN,IAAA,CAOjCvD,GAAM,CAAE9G,KAAM,gBAAgB,eAAAyX,IAAArN,EAAAA,EAAAA,GAAApC,GAAAyP,GAAA,CAAAA,EAAApN,KAAAC,EAAAA,EAAAA,GAAAtC,GAAAyP,EAAApN,IAAA,CAO9BvD,GAAM,CAAE9G,KAAM,mBAAmB,kBAAAyX,IAAArN,EAAAA,EAAAA,GAAAlC,GAAAuP,GAAA,CAAAA,EAAApN,KAAAC,EAAAA,EAAAA,GAAApC,GAAAuP,EAAApN,IAAA,CAOjCtD,KAAQ,eAKRA,KAAQ,eAKRA,KAAQ,sBAAA2Q,GAAAvP,GAAAwP,KAAAC,EAAAA,EAAAA,GAAAF,KAvDWrP,EAAAA,mBAAgB2O,G","sources":["webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/bricks.ts","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/cruise-canvas/utils/file.ts","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///../../src/getCaretPositionInTextarea.ts","webpack:///../../src/getContentRectsInTextarea.ts","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///./src/data-providers/set-chat-command.ts","webpack:///./src/chat-box/index.tsx"],"sourcesContent":["\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n COMMAND_TIPS = \"COMMAND_TIPS\",\n SEARCH_COMMANDS_TIPS = \"SEARCH_COMMANDS_TIPS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n [K.COMMAND_TIPS]: \"‘@’ AI Employee | ‘/’ Command\",\n [K.SEARCH_COMMANDS_TIPS]:\n \"Showing up to {{count}} items, type keywords to search\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n [K.COMMAND_TIPS]: \"‘@’ 数字人 | ‘/’ 命令\",\n [K.SEARCH_COMMANDS_TIPS]: \"最多显示 {{count}} 条数据,输入关键字搜索\",\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 { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionsEvents,\n ActionsEventsMapping,\n ActionsProps,\n EoActions,\n} from \"@next-bricks/basic/actions\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedActions = wrapBrick<\n EoActions,\n ActionsProps & { activeKeys?: (string | number)[]; footerTips?: string },\n ActionsEvents,\n ActionsEventsMapping\n>(\"eo-actions\", {\n onActionClick: \"action.click\",\n onItemDragEnd: \"item.drag.end\",\n onItemDragStart: \"item.drag.start\",\n});\nexport const WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","// 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;margin:0 -12px}.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:inherit;font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}button:focus,\ntextarea:focus{outline:none}button{margin:0;padding:0;font:inherit;background:none;border:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:6px}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.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}.mention-overlay{position:absolute;border-radius:4px;pointer-events:none;background:rgba(38,45,65,0.1)}.buttons{display:flex;align-items:center;gap:12px}.btn-divider{width:1px;height:16px;background:rgba(0,0,0,0.1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { pipes } from \"@easyops-cn/brick-next-pipes\";\nimport fileText from \"../images/file-text@2x.png\";\nimport filePdf from \"../images/file-pdf@2x.png\";\nimport fileDoc from \"../images/file-doc@2x.png\";\nimport filePpt from \"../images/file-ppt@2x.png\";\nimport fileXls from \"../images/file-xls@2x.png\";\nimport fileOther from \"../images/file-other@2x.png\";\n\nconst MIME_TYPES = new Map<string, string>([\n [\"md\", \"text/markdown\"],\n [\"pdf\", \"application/pdf\"],\n [\"doc\", \"application/msword\"],\n [\n \"docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n ],\n [\"txt\", \"text/plain\"],\n [\"csv\", \"text/csv\"],\n [\"xls\", \"application/vnd.ms-excel\"],\n [\"xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n [\"ppt\", \"application/vnd.ms-powerpoint\"],\n [\n \"pptx\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n ],\n [\"jpg\", \"image/jpeg\"],\n [\"jpeg\", \"image/jpeg\"],\n [\"png\", \"image/png\"],\n [\"gif\", \"image/gif\"],\n [\"bmp\", \"image/bmp\"],\n [\"webp\", \"image/webp\"],\n [\"svg\", \"image/svg+xml\"],\n]);\n\nexport function formatFileSize(size: number) {\n const [value, unit] = pipes.unitFormat(size, \"bytes\", 1);\n const number = +value;\n return `${number > 100 ? Math.round(number) : number} ${unit}`;\n}\n\nexport function getFileTypeAndIcon(\n mimeType: string | undefined,\n filename: string | undefined\n): [type: string, icon: string] {\n const type = mimeType || getMimeTypeByFilename(filename);\n\n if (type.startsWith(\"image/\")) {\n return [\"Image\", fileOther];\n }\n\n switch (type) {\n case \"text/markdown\":\n case \"text/x-markdown\":\n return [\"Markdown\", fileText];\n case \"application/pdf\":\n return [\"PDF\", filePdf];\n case \"application/msword\":\n case \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":\n return [\"Word\", fileDoc];\n case \"application/vnd.ms-excel\":\n case \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n return [\"Excel\", fileXls];\n case \"application/vnd.ms-powerpoint\":\n case \"application/vnd.openxmlformats-officedocument.presentationml.presentation\":\n return [\"PowerPoint\", filePpt];\n }\n\n if (type.startsWith(\"text/\")) {\n return [\"Text\", fileText];\n }\n\n return [\"File\", fileOther];\n}\n\nexport function getMimeTypeByFilename(filename: string | undefined): string {\n let ext = \"\";\n const matches = filename?.match(/\\.([^.]+)$/);\n if (matches) {\n ext = matches[1].toLowerCase();\n }\n return MIME_TYPES.get(ext) ?? \"unknown\";\n}\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getCaretPositionInTextarea(\n textarea: HTMLTextAreaElement,\n index: number\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n hiddenElement.textContent = textarea.value.slice(0, index);\n\n const span = document.createElement(\"span\");\n span.textContent = \"\\u200b\"; // 占位符\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectsInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n): DOMRect[] {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const fullRect = span.getBoundingClientRect();\n span.remove();\n\n if (measureContent.length <= 1) {\n return [fullRect];\n }\n\n const leadingChar = measureContent[0];\n const leadingSpan = document.createElement(\"span\");\n leadingSpan.textContent = leadingChar;\n hiddenElement.appendChild(leadingSpan);\n const leadingRect = leadingSpan.getBoundingClientRect();\n leadingSpan.remove();\n\n hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;\n const trailingChar = measureContent[measureContent.length - 1];\n const trailingSpan = document.createElement(\"span\");\n trailingSpan.textContent = trailingChar;\n hiddenElement.appendChild(trailingSpan);\n const trailingRect = trailingSpan.getBoundingClientRect();\n trailingSpan.remove();\n\n if (leadingRect.top === trailingRect.top) {\n return [fullRect];\n }\n\n const rects: DOMRect[] = [];\n\n // Leading rect\n rects.push(\n new DOMRect(\n leadingRect.left,\n leadingRect.top,\n fullRect.right - leadingRect.left,\n leadingRect.bottom - leadingRect.top\n )\n );\n\n // Middle rect\n const height = trailingRect.top - leadingRect.bottom;\n if (height >= 10) {\n rects.push(\n new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height)\n );\n }\n\n // Trailing rect\n rects.push(\n new DOMRect(\n fullRect.left,\n trailingRect.top,\n trailingRect.right - fullRect.left,\n trailingRect.bottom - trailingRect.top\n )\n );\n\n return rects;\n}\n","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { CommandPayload } from \"../shared/interfaces.js\";\n\nexport interface ChatCommand {\n command: string;\n payload: CommandPayload;\n}\n\nlet chatCommand: ChatCommand | null = null;\n\nexport function setChatCommand(command: ChatCommand | null): void {\n chatCommand = command;\n}\n\nexport function getChatCommand(): ChatCommand | null {\n return chatCommand;\n}\n\ncustomElements.define(\n \"ai-portal.set-chat-command\",\n createProviderClass(setChatCommand)\n);\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n getCaretPositionInTextarea,\n getContentRectsInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { SimpleAction } from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n getChatCommand,\n setChatCommand,\n} from \"../data-providers/set-chat-command.js\";\nimport type {\n ChatPayload,\n CommandPayload,\n UploadOptions,\n} from \"../shared/interfaces.js\";\nimport {\n UploadButton,\n type UploadButtonRef,\n} from \"../shared/FileUpload/UploadButton.js\";\nimport { UploadedFiles } from \"../shared/FileUpload/UploadedFiles.js\";\nimport UploadedFilesStyleText from \"../shared/FileUpload/UploadedFiles.shadow.css\";\nimport { WrappedActions, WrappedIcon } from \"./bricks.js\";\nimport { useFilesUploading } from \"../shared/useFilesUploading.js\";\nimport GlobalDragOverlay from \"../shared/FileUpload/GlobalDragOverlay.js\";\n\ninitializeI18n(NS, locales);\n\nconst MAX_SHOWN_COMMANDS = 10;\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n aiEmployees?: AIEmployee[];\n commands?: Command[];\n uploadOptions?: UploadOptions;\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n focusOnInput: () => void;\n}\n\nexport interface Command {\n label: string;\n value: string;\n groupKey?: string;\n groupLabel?: string;\n subCommands?: Command[];\n payload?: CommandPayload;\n}\n\ntype ActionWithSubCommands = SimpleAction & {\n key: string | number;\n subCommands?: Command[];\n payload?: CommandPayload;\n};\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText, UploadedFilesStyleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\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 @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @property({ attribute: false })\n accessor commands: Command[] | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n /**\n * @deprecated Use `chat.submit` event instead\n */\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"chat.submit\" })\n accessor #chatSubmit!: EventEmitter<ChatPayload>;\n\n #handleChatSubmit = (payload: ChatPayload) => {\n this.#chatSubmit.emit(payload);\n };\n\n @event({ type: \"command.select\" })\n accessor #commandSelect!: EventEmitter<CommandPayload | null>;\n\n #handleCommandSelect = (command: CommandPayload | null) => {\n this.#commandSelect.emit(command);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n @method()\n focusOnInput() {\n return this.ref.current?.focusOnInput();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n aiEmployees={this.aiEmployees}\n commands={this.commands}\n uploadOptions={this.uploadOptions}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onCommandSelect={this.#handleCommandSelect}\n root={this}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n root: HTMLElement;\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onCommandSelect: (command: CommandPayload | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n style: React.CSSProperties;\n range: {\n start: number;\n end: number;\n };\n actions: ActionWithSubCommands[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n root,\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n commands: propCommands,\n uploadOptions,\n onMessageSubmit,\n onChatSubmit,\n onCommandSelect,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [mentionPopover, setMentionPopover] = useState<MentionPopover | null>(\n null\n );\n const [mentionOverlay, setMentionOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const [commandPrefix, setCommandPrefix] = useState(\"/\");\n const [commands, setCommands] = useState<Command[] | undefined>(propCommands);\n const [command, setCommand] = useState<CommandPayload | null>(null);\n const [mentioned, setMentioned] = useState<string | null>(null);\n const [commandPopover, setCommandPopover] = useState<MentionPopover | null>(\n null\n );\n const [commandOverlay, setCommandOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [commandText, setCommandText] = useState(\"\");\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n useEffect(() => {\n setCommands(propCommands);\n }, [propCommands]);\n\n const uploadEnabled = uploadOptions?.enabled;\n const uploadAccept = uploadOptions?.accept;\n const {\n files,\n resetFiles,\n appendFiles,\n removeFile,\n hasFiles,\n allFilesDone,\n fileInfos,\n exceeded,\n paste,\n } = useFilesUploading(uploadOptions);\n\n useEffect(() => {\n if (!uploadEnabled) {\n resetFiles();\n }\n }, [uploadEnabled, resetFiles]);\n\n useEffect(() => {\n const store = window.__elevo_try_it_out;\n if (store) {\n delete window.__elevo_try_it_out;\n }\n if (typeof store?.content === \"string\") {\n valueRef.current = store.content;\n setValue(store.content);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n focusOnInput: () => {\n textareaRef.current?.focus();\n },\n }));\n\n const sendDisabled =\n !value ||\n !allFilesDone ||\n (!!mentionedText && value.length <= mentionedText.length) ||\n (!!commandText && value.length <= commandText.length);\n\n const doSubmit = useCallback(\n (value: string) => {\n if (sendDisabled) {\n return;\n }\n const content = value.slice(commandText.length || mentionedText.length);\n onMessageSubmit(content);\n onChatSubmit({\n content,\n files: fileInfos,\n cmd: command,\n aiEmployeeId: mentioned,\n });\n },\n [\n sendDisabled,\n commandText.length,\n mentionedText.length,\n command,\n fileInfos,\n mentioned,\n onChatSubmit,\n onMessageSubmit,\n ]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n doSubmit(e.currentTarget.value);\n }\n },\n [doSubmit]\n );\n\n const showMentionSuggestions = useCallback(\n (textarea: HTMLTextAreaElement, employees: AIEmployee[] | undefined) => {\n const { value, selectionStart, selectionEnd } = textarea;\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n employees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(\"@\")) {\n const mentionText = previousContent.slice(1).toLowerCase();\n const matchedEmployees = employees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, MAX_SHOWN_COMMANDS);\n if (matchedEmployees.length > 0) {\n const position = getCaretPositionInTextarea(\n textarea,\n selectionStart\n );\n const textareaRect = textarea.getBoundingClientRect();\n setMentionPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: matchedEmployees.map((employee) => ({\n key: employee.employeeId,\n text: employee.name,\n data: employee,\n })),\n });\n setActiveActionIndex(0);\n return true;\n }\n }\n }\n setMentionPopover(null);\n },\n []\n );\n\n const showCommandSuggestions = useCallback(\n (\n textarea: HTMLTextAreaElement,\n commandList: Command[] | undefined,\n prefix: string\n ) => {\n const { value, selectionStart, selectionEnd } = textarea;\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n commandList?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(prefix)) {\n const searchText = previousContent.slice(prefix.length).toLowerCase();\n const matchedCommands = commandList\n .filter(\n (command) =>\n command.label.toLowerCase().includes(searchText) ||\n command.groupLabel?.toLowerCase().includes(searchText)\n )\n .slice(0, MAX_SHOWN_COMMANDS);\n if (matchedCommands.length > 0) {\n const popover = getCommandPopover(\n matchedCommands,\n textarea,\n selectionStart\n );\n setCommandPopover(popover);\n setActiveActionIndex(0);\n return true;\n }\n }\n }\n setCommandPopover(null);\n },\n []\n );\n\n // Show mention/commands suggestions once candidates are loaded\n const mentionInitializedRef = useRef(false);\n useEffect(() => {\n const textarea = textareaRef.current?.element;\n if (\n mentionInitializedRef.current ||\n !aiEmployees ||\n !textarea ||\n document.activeElement !== root ||\n root.shadowRoot?.activeElement !== textarea\n ) {\n return;\n }\n mentionInitializedRef.current = true;\n showMentionSuggestions(textarea, aiEmployees);\n }, [aiEmployees, root, showMentionSuggestions]);\n\n const commandsInitializedRef = useRef(false);\n useEffect(() => {\n const textarea = textareaRef.current?.element;\n if (\n commandsInitializedRef.current ||\n !propCommands ||\n !textarea ||\n document.activeElement !== root ||\n root.shadowRoot?.activeElement !== textarea\n ) {\n return;\n }\n commandsInitializedRef.current = true;\n showCommandSuggestions(textarea, propCommands, \"/\");\n }, [propCommands, root, showCommandSuggestions]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (showMentionSuggestions(e.target, aiEmployees)) {\n return;\n }\n showCommandSuggestions(e.target, commands, commandPrefix);\n },\n [\n aiEmployees,\n commandPrefix,\n commands,\n showCommandSuggestions,\n showMentionSuggestions,\n ]\n );\n\n useEffect(() => {\n if (mentionedText && !value.startsWith(mentionedText)) {\n setMentionedText(\"\");\n setMentioned(null);\n }\n }, [mentionedText, value]);\n\n useEffect(() => {\n if (\n !value.startsWith(commandPrefix) ||\n (commandText && !value.startsWith(commandText))\n ) {\n setCommandText(\"\");\n setCommand(null);\n onCommandSelect(null);\n setCommands(propCommands);\n setCommandPrefix(\"/\");\n setCommandPopover(null);\n }\n }, [commandPrefix, commandText, onCommandSelect, value, propCommands]);\n\n const handleSubmitClick = useCallback(() => {\n doSubmit(valueRef.current);\n }, [doSubmit]);\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 useEffect(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n setMentionOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n setMentionOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [mentionedText, hasFiles]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (!commandText || !element) {\n setCommandOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandText.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [commandText, hasFiles]);\n\n const chatCommand = useMemo(() => {\n const command = getChatCommand();\n if (command) {\n setChatCommand(null);\n }\n return command;\n }, []);\n\n useEffect(() => {\n if (chatCommand) {\n setCommand(chatCommand.payload);\n onCommandSelect(chatCommand.payload);\n }\n }, [chatCommand, onCommandSelect]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (chatCommand && element) {\n const commandStr = `/${chatCommand.command} `;\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandStr.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n valueRef.current = commandStr;\n selectionRef.current = {\n start: commandStr.length,\n end: commandStr.length,\n };\n setValue(commandStr);\n setCommandText(commandStr);\n }\n }, [chatCommand]);\n\n const handleMention = useCallback(\n (action: SimpleAction) => {\n const mention = `@${action.text} `;\n const prefix = `${valueRef.current.slice(0, mentionPopover!.range.start)}${mention}`;\n const newValue = `${prefix}${valueRef.current.slice(mentionPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setMentionedText(mention);\n setMentionPopover(null);\n setMentioned((action as { data?: AIEmployee }).data!.employeeId);\n textareaRef.current?.focus();\n },\n [mentionPopover]\n );\n\n const handleSelectCommand = useCallback(\n (action: ActionWithSubCommands) => {\n const hasSubCommands =\n action.subCommands && action.subCommands.length > 0;\n const command = `${commandPrefix.replace(/ $/, \": \")}${action.text} `;\n const prefix = `${valueRef.current.slice(0, commandPopover!.range.start)}${command}`;\n const newValue = `${prefix}${valueRef.current.slice(commandPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n if (hasSubCommands) {\n if (action.payload) {\n setCommandText(command);\n setCommand(action.payload);\n }\n setCommands(action.subCommands);\n setCommandPrefix(command);\n // Wait for the textarea to update\n setTimeout(() => {\n const popover = getCommandPopover(\n action.subCommands!.slice(0, MAX_SHOWN_COMMANDS),\n textareaRef.current!.element!,\n prefix.length\n );\n setCommandPopover(popover);\n setActiveActionIndex(0);\n }, 100);\n } else {\n setCommandText(command);\n setCommand(action.payload!);\n setCommandPopover(null);\n setCommandPrefix(\"/\");\n onCommandSelect(action.payload!);\n }\n textareaRef.current?.focus();\n },\n [commandPopover, commandPrefix, onCommandSelect]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n setCommandPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setActiveActionIndex((prev) => {\n const nextIndex = prev + (e.key === \"ArrowUp\" ? -1 : 1);\n const meaningfulActions = getMeaningfulActions(\n (mentionPopover || commandPopover)!.actions\n );\n const total = meaningfulActions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n return false;\n }\n case \"Enter\": {\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n const activeAction = getMeaningfulActions(\n (mentionPopover || commandPopover)!.actions\n )[activeActionIndex];\n if (mentionPopover) {\n handleMention(activeAction);\n } else {\n handleSelectCommand(activeAction);\n }\n return false;\n }\n case \"Delete\":\n case \"Backspace\": {\n const popovers = [\n {\n textLength: mentionedText.length,\n prefixLength: 0,\n },\n {\n textLength: commandText.length,\n prefixLength: 0,\n },\n ];\n\n for (const { textLength, prefixLength } of popovers) {\n if (textLength) {\n let { selectionStart, selectionEnd } = e.currentTarget;\n if (selectionStart === selectionEnd) {\n if (e.key === \"Backspace\") {\n selectionStart -= 1;\n } else {\n selectionEnd += 1;\n }\n }\n const currentStart = prefixLength;\n const currentEnd = currentStart + textLength;\n if (selectionStart < currentEnd && selectionEnd > currentStart) {\n const start = Math.min(selectionStart, currentStart);\n const end = Math.max(selectionEnd, currentEnd);\n const newValue = `${valueRef.current.slice(0, start)}${valueRef.current.slice(end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start, end: start };\n setValue(newValue);\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n break;\n }\n }\n },\n [\n activeActionIndex,\n commandPopover,\n commandText.length,\n handleMention,\n handleSelectCommand,\n mentionPopover,\n mentionedText.length,\n ]\n );\n\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles]\n );\n\n return (\n <>\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={hasFiles ? 144 : 60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onPaste={paste}\n style={{\n paddingTop: hasFiles ? 94 : 10,\n }}\n />\n {hasFiles && (\n <UploadedFiles\n files={files!}\n onRemove={(uid, abortController) => {\n removeFile(uid);\n abortController?.abort();\n }}\n onAdd={() => {\n uploadButtonRef.current?.requestUpload();\n }}\n />\n )}\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <div className=\"buttons\">\n {uploadEnabled ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\n accept={uploadAccept}\n disabled={exceeded}\n onChange={(files) => {\n appendFiles(files);\n textareaRef.current?.focus();\n }}\n />\n <div className=\"btn-divider\"></div>\n </>\n ) : null}\n <button\n className=\"btn-send\"\n disabled={sendDisabled}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n {mentionOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {commandOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {mentionPopover &&\n createPortal(\n <WrappedActions\n actions={mentionPopover.actions}\n style={mentionPopover.style}\n activeKeys={getActiveActionKeys(\n mentionPopover.actions,\n activeActionIndex\n )}\n footerTips={t(K.COMMAND_TIPS)}\n onActionClick={(e) => handleMention(e.detail)}\n />,\n document.body\n )}\n {commandPopover &&\n createPortal(\n <WrappedActions\n actions={commandPopover.actions}\n style={commandPopover.style}\n activeKeys={getActiveActionKeys(\n commandPopover.actions,\n activeActionIndex\n )}\n footerTips={\n commandPrefix === \"/\"\n ? t(K.COMMAND_TIPS)\n : t(K.SEARCH_COMMANDS_TIPS, { count: MAX_SHOWN_COMMANDS })\n }\n onActionClick={(e) =>\n handleSelectCommand(e.detail as ActionWithSubCommands)\n }\n />,\n document.body\n )}\n </div>\n </div>\n <GlobalDragOverlay\n disabled={!uploadEnabled || exceeded}\n uploadOptions={uploadOptions}\n onFilesDropped={onFilesDropped}\n />\n </>\n );\n}\n\nfunction getMeaningfulActions(\n actions: ActionWithSubCommands[]\n): ActionWithSubCommands[] {\n return actions.filter(\n (action) =>\n (action as any).type !== \"group\" && (action as any).type !== \"divider\"\n );\n}\n\nfunction getActiveActionKeys(\n actions: ActionWithSubCommands[],\n index: number\n): (string | number)[] {\n const meaningfulActions = getMeaningfulActions(actions);\n return [meaningfulActions[index].key!];\n}\n\nfunction getCommandPopover(\n commands: Command[],\n textarea: HTMLTextAreaElement,\n selectionStart: number\n): MentionPopover {\n const position = getCaretPositionInTextarea(textarea, selectionStart);\n const textareaRect = textarea.getBoundingClientRect();\n return {\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: getGroupedCommandActions(commands),\n };\n}\n\nfunction getGroupedCommandActions(\n commands: Command[]\n): ActionWithSubCommands[] {\n const grouped = commands.every((cmd) => cmd.groupKey && cmd.groupLabel);\n if (grouped) {\n const groups = new Map<string, { label: string; commands: Command[] }>();\n for (const command of commands) {\n const groupKey = command.groupKey!;\n let group = groups.get(groupKey);\n if (!group) {\n groups.set(\n groupKey,\n (group = {\n label: command.groupLabel!,\n commands: [],\n })\n );\n }\n group.commands.push(command);\n }\n return [...groups.values()].flatMap((group) => [\n {\n type: \"group\",\n text: group.label,\n },\n ...getCommandActions(group.commands),\n ]) as ActionWithSubCommands[];\n }\n\n return getCommandActions(commands);\n}\n\nfunction getCommandActions(commands: Command[]): ActionWithSubCommands[] {\n return commands.map((command) => ({\n key: command.value,\n text: command.label,\n subCommands: command.subCommands,\n payload: command.payload,\n }));\n}\n"],"names":["module","exports","options","document","update","remove","styleElement","insertStyleElement","obj","css","supports","concat","media","needLayer","layer","length","sourceMap","btoa","unescape","encodeURIComponent","JSON","stringify","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","K","en","ASK_ANY_THING","COMMON_TASKS","COMMAND_TIPS","SEARCH_COMMANDS_TIPS","zh","NS","locales","t","i18n","getFixedT","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","url","String","__esModule","default","test","slice","hash","needQuotes","replace","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","nonce","setAttribute","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","id","toString","MIME_TYPES","Map","formatFileSize","size","unit","pipes","unitFormat","number","Math","round","getFileTypeAndIcon","mimeType","filename","type","getMimeTypeByFilename","startsWith","fileOther","fileText","filePdf","fileDoc","fileXls","filePpt","_MIME_TYPES$get","ext","matches","match","toLowerCase","get","stylesInDOM","getIndexByIdentifier","identifier","result","i","modulesToDom","list","idCountMap","identifiers","item","base","count","indexByIdentifier","references","updater","addElementStyle","byIndex","splice","api","domAPI","newObj","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","styleSheet","cssText","firstChild","appendChild","createTextNode","hiddenElement","getCaretPositionInTextarea","textarea","createElement","body","getMirroredStyle","textContent","span","rect","getBoundingClientRect","top","left","getContentRectsInTextarea","prefix","measureContent","fullRect","leadingChar","leadingSpan","leadingRect","trailingChar","trailingSpan","trailingRect","rects","DOMRect","right","bottom","height","width","memo","insert","style","target","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","_extends","assign","bind","arguments","source","prototype","hasOwnProperty","call","this","element","setAttributes","attributes","chatCommand","setChatCommand","command","getChatCommand","customElements","define","createProviderClass","initializeI18n","defineElement","property","event","method","createDecorators","ChatBoxComponent","forwardRef","LegacyChatBoxComponent","_ChatBox","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ChatBox_brand","WeakSet","_handleMessageSubmit","_H","_handleChatSubmit","_I","_handleCommandSelect","ChatBox","ReactNextElement","constructor","_classPrivateMethodInitSpec","_initProto","createRef","_classPrivateFieldInitSpec","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_commands","_init_extra_commands","_init_uploadOptions","_init_extra_uploadOptions","_init_messageSubmit","_init_extra_messageSubmit","_classPrivateGetter","_get_messageSubmit","emit","_init_chatSubmit","_init_extra_chatSubmit","payload","_get_chatSubmit","_init_commandSelect","_init_extra_commandSelect","_get_commandSelect","disabled","_classPrivateFieldGet","v","_classPrivateFieldSet","placeholder","autoFocus","aiEmployees","commands","uploadOptions","setValue","_this$ref$current","ref","current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","render","React","onMessageSubmit","onChatSubmit","onCommandSelect","root","_ref","propCommands","containerRef","useRef","textareaRef","useState","valueRef","mentionPopover","setMentionPopover","mentionOverlay","setMentionOverlay","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","commandPrefix","setCommandPrefix","setCommands","setCommand","mentioned","setMentioned","commandPopover","setCommandPopover","commandOverlay","setCommandOverlay","commandText","setCommandText","selectionRef","useEffect","uploadEnabled","enabled","uploadAccept","accept","files","resetFiles","appendFiles","removeFile","hasFiles","allFilesDone","fileInfos","exceeded","paste","useFilesUploading","store","__elevo_try_it_out","content","useImperativeHandle","_textareaRef$current","focus","sendDisabled","doSubmit","useCallback","cmd","aiEmployeeId","handleSubmit","currentTarget","showMentionSuggestions","employees","selectionStart","selectionEnd","previousContent","mentionText","matchedEmployees","filter","employee","employeeId","includes","name","position","textareaRect","zIndex","range","start","end","actions","map","text","data","showCommandSuggestions","commandList","searchText","matchedCommands","_command$groupLabel","label","groupLabel","popover","getCommandPopover","mentionInitializedRef","_textareaRef$current2","_root$shadowRoot","activeElement","shadowRoot","commandsInitializedRef","_textareaRef$current3","_root$shadowRoot2","handleChange","handleSubmitClick","Promise","resolve","then","_textareaRef$current4","_textareaRef$current5","_textareaRef$current6","useMemo","_textareaRef$current7","commandStr","handleMention","action","_textareaRef$current8","mention","newValue","handleSelectCommand","_textareaRef$current9","hasSubCommands","subCommands","setTimeout","handleKeyDown","preventDefault","stopPropagation","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","getMeaningfulActions","activeAction","popovers","textLength","prefixLength","currentStart","currentEnd","min","max","uploadButtonRef","onFilesDropped","_textareaRef$current0","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","desiredSelectionRef","onSubmit","onChange","onKeyDown","onPaste","paddingTop","UploadedFiles","onRemove","uid","abortController","abort","onAdd","_uploadButtonRef$curr","requestUpload","UploadButton","_textareaRef$current1","onClick","lib","icon","overlay","createPortal","activeKeys","getActiveActionKeys","footerTips","detail","GlobalDragOverlay","getGroupedCommandActions","every","groupKey","groups","group","set","values","flatMap","getCommandActions","_ChatBox2","_set_messageSubmit","_set_chatSubmit","_set_commandSelect","c","_initClass","_applyDecs","styleTexts","styleText","UploadedFilesStyleText","shadowOptions","delegatesFocus","Boolean","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|